Law Napisano Marzec 19, 2019 Autor Zgłoś Udostępnij Napisano Marzec 19, 2019 Jak stworzyć klasę globalną? Tzn. zarejestrowaną przez program lub bibliotekę, można było używać potem w innych aplikacjach. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Nemo Napisano Marzec 19, 2019 Zgłoś Udostępnij Napisano Marzec 19, 2019 Chodzi ci o klase jakiejs twojej kontrolki czy o zwykła klase ?? Ale podpowiem ci ze ja nie nzma i tak na to odpowiedzi ;) Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Visage Napisano Marzec 19, 2019 Zgłoś Udostępnij Napisano Marzec 19, 2019 Piasiu: z tego "można było używać potem w innych aplikacjach" wynika ze chodzi mu chyba o wlasna kontrolke jesli tak to podaje co nalezalo by zrobic: 1. Stworzyc DLL ke 2. tworzysz swoja klase kontrolki 3. tworzysz funkcje inicjujaca np InitMyCustomControl a w niej a. Sprawdzasz czy jest juz zarejestrowana (GetClassInfoEx) b. wypelniasz strukture WNDCLASSEX c. Jesli nie rejestrujesz (RegisterClassEx) 4. w DllMain przy dolaczaniu sie procesu do DLLki robisz inicjalizacje if (dwReason == DLL_PROCESS_ATTACH) InitMyCustomControl(); W aplikacji klienckiej zaladuj swoj dll (LoadLibrary) i koniec :] Zycze powodzenia Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Omega Napisano Marzec 19, 2019 Zgłoś Udostępnij Napisano Marzec 19, 2019 Zainteresuj sie taka stala jak CS_GLOBALCLASS w rejestrwaniu klasy. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Law Napisano Marzec 19, 2019 Autor Zgłoś Udostępnij Napisano Marzec 19, 2019 Właśnie chodzi o to, żeby funkcja rejestrowała klasę i stworzyła okienko. Jesłi chodzi o CS_GLOBALCLASS, to próbowałem:( Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Law Napisano Marzec 24, 2019 Autor Zgłoś Udostępnij Napisano Marzec 24, 2019 Naprawdę nie ma nikogo, kto potrafiłby by to zrobić? Rzucę trochę kodu: Randomize; NewClass.style:=CS_GLOBALCLASS; NewClass.lpfnWndProc:=@WindowProc; NewClass.hInstance:=HInstance; NewClass.hIcon:=LoadIcon(0, IDI_APPLICATION); NewClass.hCursor:=LoadCursor(0, IDC_ARROW); NewClass.hbrBackground:=COLOR_WINDOW; NewClass.lpszClassName:='zMainWindow'; RegisterClass(NewClass); NewWindow:=CreateWindow(NewClass.lpszClassName, Title, WS_VISIBLE or WS_SYSMENU, 0, 0, Width, Height, 0, 0, HInstance, nil); Result:=NewWindow; while GetMessage(NewMsg, 0, 0, 0) do begin TranslateMessage(NewMsg); DispatchMessage(NewMsg); end; To jest kod funkcji szCreateWindow, ma za zadanie zarejestować klasę i stworzyć okno. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.