Skocz do zawartości

Nemo

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Posty 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. 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

  3. 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 ;)

  4. Kacz napisał:
    Hehe no właśnie tego się obawaiłem:( tzn., że będe musiał użyć timera:D

    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) ;)

  5. 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.

  6. Proktor napisał:
    Jak (korzystając z WinAPI) można uzyskać ścieżkę do pliku (bez nazwy pliku czyli np. "c:\windows\") znając ścieżkę wraz z nazwą pliku (np. "c:\windows\win.ini").

    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).

    Proktor napisał:
    Jak uzyskać ścieżkę do programu (tego który piszę).

    Mozna to wyciagnac z parametrów głównej funkcji programu WinMain ;)

  7. Kilka pytań (a jak to miałem nazwać:P)

    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

  8. 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)

  9. 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ń :)".

  10. 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ń".

  11. 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);
          {
      }
    }
  12. 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.

  13. RUF3K napisał:
    ale mi to rozwiozanie , na kazdym innym monitorze (z innom rozdzielczosciom oczywiscie)bedzie gdzie indziej !!!!!!!!!!!!!!!!!! hahaha
    help me please!

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

  14. 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

×
×
  • Utwórz nowe...