Skocz do zawartości

Nemo

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Wszystko napisane przez Nemo

  1. Zreszta - topic byl o tym jak do kontroli wstawic 3 zmienne typu word wiec moj sposob jest idelany. W sumei na wstawienie jednego bajta jets jeszcze latwiejszy sposob: BYTE b; SetWindowLong(hWnd, GWL_USERDATA, (long)&b); //gdzies tam dalej w programie BYTE *tmp = (BYTE*)GetWindowLong(hWnd, GWL_USERDATA);
  2. No ot jeszcze latwiej BYTE b; SetWindowLong(hWnd, GWL_USERDATA, MAKELONG(MAKEWORD(b,0),0)); //gdzies tam dalej w programie long lon = GetWindowLong(hWnd, GWL_USERDATA); BYTE tmp = HIBYTE(HIWORD(lon));
  3. Nemo

    Blad

    Eh, ja od poczatku bylem za innym projektem 8) No ale nadal jestem tylko ze narazie nic nei robie - zekam az sie skonczy ten i sie wezme za prace nad nowym projektem o ile bedzie mnie interesowal. Bo w sumie mam jako taki pomysl. Zrobic cos co by przechowywalo artykuly - tzn. formatowany text + grafika - zeby dzialal jak word ;) Juz cos takiego widzialem ale ma jakies dziwne czasme bledy :D
  4. Eh, ludzie, ludzie. Robi sie to tak: Przypuscmy ze mamy do zapamietania jakas klase, np.: class CKlasa { public: char imie[16], nazwisko[32], nr_telefonu[20]; void JakasFunkcja(void) {}; }; tworzymy sobie jakis obiekt; zapisujemy adres tego obiektu go do danych okna; i potem odczytujemy; CKlasa klasa; // zapis SetWindowLong(hWnd, GWL_USERDATA, (LONG)&klasa); [...] // i gdzies indziej w programie: CKlasa *tmp = (CKlasa) GetWindowLong(hWnd, GWL_USERDATA); //i teraz tak sie tym poslugujemy: tmp->JakasFunkcja(); i po sprawie ;)
  5. A czy ja powiedzialem ze zabronione ? ;) Napisałem sobie tak offtopicowo bo ja jestem master of post++ 8)
  6. Offtopic: Pan artisto na dwa fronty leci: https://warsztat.mmogspot.com/forum/viewtopic.php?t=4880 https://warsztat.mmogspot.com/forum/viewtopic.php?t=4881
  7. Nemo

    Sprawdzanie czasu...

    Eh, napsialem timer albo pobranie aktualnego czasu nacisniecia i opuszczenia klawisza do zmiennej globalnej i potem porownaie tych wartosci :D Eh, czemu ci ludzie nie czytaja dokladnie. ps ale mam fajny numer posta (222) ;)
  8. Nemo

    Sprawdzanie czasu...

    Nie wiem o co dokladnie chodzi ale jesli odbierzesz komunikat WM_LBUTTONDOWN (subclassing) to zalaczasz timer(co np 100ms) lub spisujesz do jakiejs zmiennej aktualny czas i potem odbierasz komunikat WM_LBUTTONUP i sprawdzasz aktualny czas i porownujesz lub w tiemrze zwiekszasz jakas zmienna co "tykniecie" timera i jak siej zu pusci ten guzik (WM_LBUTTONUP) to konczysz tiemra i wynik jzu masz.
  9. Nemo

    Re: Ścieżka do programu

    Bierzesz tego stringa i sprawdzasz znak po znaku od tylu az natrafisz na "\" i wtedy kopiujesz sobie wszystko od poczatku az do tego znaku (oczywisice bez niego). Mozna to wyciagnac z parametrów głównej funkcji programu WinMain ;)
  10. Nemo

    Blad

    Ja niestety nie moge - mam prace i czasu prawie wogole nie mam. To co zrobilem to jest na serwerze bo ja juz tego nie mam bo mi dysk niedawno padl i nic nie mam 8)
  11. Z tego co pamietam to jzu gdzies w C++ ktos opisal jak uzupelnic te pola. Chyba to bylo w jakims arcie na winapi.org lub na forum lub mozliwe ze na innym forum otwidzialem. Ale napewno w ksiazce petzloda to jest. A raczej nie ma roznicy w wypelnianiu pol w c++ a w delphim.
  12. Prosto: MCI & plik pomocy & PlgBlt & TOpenFilename lub proostu nazwiesz temat MCI a przy okazji zapytasz o ta reszte ;) Nie ma rzeczy niemozliwych ;) pozdrawiam ;] ps co do plików pomocy to wraz z delphi jest dolanczany darmowy kompilatorek plików pomocy "Microsoft Help Workshop", który u mnie znajduej się tutaj: C:\Program Files\Borland\Delphi6\Help\Tools
  13. Nemo

    Duzy problem ! Serio

    Nie wiem czy o to chodzi ale moze zmien to "c:\dupa.txt" na to "c:\\dupa.txt" ;)
  14. Nie wiem ajk kto zrozumial mnie ale mi chodzi o to ze zrobic tablice intow i traktowac ja jako jedna wielka liczbe - czyli zabawa z bitami czy cos takiego ;] glebiej nad tym nie myslallem bo nie potrzebowalem tak wielkich liczb - 2 do 64 w zupelnosci wystarcza ;) (int64)
  15. Nemo

    Re: Kilka pytań

    case WM_CLOSE: return 0; He he jak zrobsiz tak to na 100% ci sie nei wyłączy :D
  16. Nemo

    bool

    Według mnie bool "zajmuje" 1bajt mimo ze mozna go zapisac w jednym bicie ;)
  17. Nemo

    Parę pytań :)

    Ja off-topic. Ludzie nauczcie się tytułować swoje problemy z jakims sensem bo jak ktoś kto przegląda forum ma wiedziec mniewiecej o co wam chodzi jak zatytulujecie to tak "Parę pytań :)".
  18. Nemo

    Kilka pytań

    Ja off-topic. Ludzie nauczcie się tytułować swoje problemy z jakims sensem bo jak ktoś kto przegląda forum ma wiedziec mniewiecej o co wam chodzi jak zatytulujecie to tak "Kilka pytań".
  19. Proste, w momecie pokazania okna modalnego uruchom timer i ustaw go na 2 sekundy i po pierwszym odebranu komunikatu WM_TIMER zamknij te okno i po wszystkim. Jak nei wiesz co to Timer to popatrz na artykuly na winapi.org bo chyba tam jest taki jeden.
  20. Po pierwsze uzywasz WinSOcket czy komponetów C++Bulidera?? Zreszta idea jest taka. W momecie gdy klient polaczy sie z serwerem to klient powinien wyslac paczke z potrzebnymi informacjami np z ksywka, swoj nr itp. Gdy serwer dostanie taka paczke sprawdza w bazie (np tablica struktur) czy taki klient o tym numerze isnieje jesli istnieje to wysyla teraz do wszystkich zalogowanych klientow (lub tylko tym ktorzy maja go dodanego do listy komunikatora) paczke z informacja ze ktos sie dolaczyl wraz z jego numerem. Jak sprawdzic czy jaksi klient jest zalogowany? Prosto - przeszukujesz swoja baze danych (np tablice) i sprawdzasz który klient jest zalogowany (bo przy kazdym zalogowaniu klienta, serwer powinien uaktualniac baze i zmieniac jakas wartosc ktora jest odpowiedzialna za to czy klient jest zalogowany czy nie, np BOOL Zalogowany; - jesli ta zmienna jest TRUE to jest zalogowany a jak nie to nie) i potem mozesz spokojnie wysylac paczki tylko do tego który jest zalogowqany czyli do tego który ma np zmienna Zalogowany ustawiona na TRUE. Aha i w tej strukturce najlepiej jeszcze przechowywac jaksi uchwyt do połączenia klienta. Walne tutaj taki troche pseudokod: typedef struct UZYTKOWNIK { Ksywka char[16]; nr: int; bool zalogowany; JakisUchyt; }; UZYTKOWNIK users[10]; UZYTKOWNIK user; [...] WM_ODBIERZ_PACZKE: bool UzytkownikOKej = FALSE; odczytaj_paczke(&user); for(int i=0; i<10; i++) if(user.nr==users[i].nr) { users[i].zalogowany = true; UzytkownikOKej = TRUE; break; } if(UzytkownikOKej) { for(i=0; i<10; i++) if(user.nr!=users[i].nr && users[i].zalogowany) WyslijPaczke(users[i].JakisUchwyt, JakasPaczkaZInformacjamiOZalogowaniuNowegoUsera); { } }
  21. Skoro i tak bedzie mial serwer to nei widze sensu rozglaszanie sie broadcastem. Porostu kazdy kilent zna adres serwera to po wlaczeniu laczy sie z serwerem i po polaczeniu serwer automatycznie rozsyla jakas konkretna wiadomosc do innych dostepnych klientow.
  22. Nemo

    Okno na srodku ekranu

    Jak juz Bialy wyzej napisal sam narazasz sie na smiesznosc. Ha ha ha
  23. Nemo

    Okno na srodku ekranu

    Eh wystarczy pomsylec. Jak tworzysz okno za pomoac CreateWindows to podajesz X,Y,szeroskoc i wysokosc okna - wiec wystarczy pobrac wielskoc ekranu i okno odpwoeidnio ustawic.
  24. Nemo

    OpenGLTextury

    Ja tez wtrace swoej 3 slowa. To nie jest chyba forum o programwoaniu gier tylko o tworzeniu programow w winapi. Ale to tylko taka moja goopia wtraczka. Jak masz pytanai tgeo typu to zadawaj je na tym forum https://warsztat.pac.pl
  25. Nemo

    Setup Wizard

    eh jakos nie pomysalem
×
×
  • Utwórz nowe...