Law Napisano Marzec 19, 2019 Autor Zgłoś 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
Nemo Napisano Marzec 19, 2019 Zgłoś 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
Visage Napisano Marzec 19, 2019 Zgłoś 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
Omega Napisano Marzec 19, 2019 Zgłoś Napisano Marzec 19, 2019 Zainteresuj sie taka stala jak CS_GLOBALCLASS w rejestrwaniu klasy. Cytuj
Law Napisano Marzec 19, 2019 Autor Zgłoś 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
Law Napisano Marzec 24, 2019 Autor Zgłoś 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
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.