witam
Jak się wykonuje programy okienkowe (nie wiem czy się tak to nazywa) w Dev-Pascalu lub Lazurusie ?
W Lazusrusie jest jakiś moduł do którego się to robi metodą przeciągnij i wrzuć ale kompletnie nie wiem gdzie to mam ustawiać ? [glowa]
Z góry dziękuję za każdą pomoc.
0
0
W Dev-Pascalu można używając modułu Windows zrobić prostą aplikację okienkową. Ja skompilowałem ten
kod z Wstęp do programowania w WinAPI - tak jak poniżej. No i jedyne
co dodałem to AppTYPE aby nie pokazywało się okno konsoli oraz usunąłem z sekcji uses moduł Messages.
program WndApp;
{$APPTYPE GUI}
uses
Windows;
function WndProc(Wnd: HWND; uMsg: UINT; wPar: WPARAM; lPar: LPARAM): LRESULT; stdcall;
begin
{ na początek zwracamy wartość 0 - meldunek jest przetwarzany }
Result := 0;
case uMsg of
{ tutaj, w tym miejscu należy obsłużyć należne komunikaty }
{ w funkcji DefWindowProc przekazujemy takie same parametry jak w funkcji okienkowej }
WM_DESTROY: PostQuitMessage(0);
else Result := DefWindowProc(Wnd, uMsg, wPar, lPar);
end;
end;
var
Wnd: TWndClass; // klasa okna
Msg: TMsg;
begin
with Wnd do
begin
lpfnWndProc := @WndProc; // funkcja okienkowa
hInstance := hInstance; // uchwyt do zasobów
lpszClassName := 'My1stApp'; // klasa
hbrBackground := COLOR_WINDOW; // kolor tła
end;
RegisterClass(Wnd); // zarejestruj nowa klasę
// stwórz formę...
CreateWindow('My1stApp', 'Program pierwszy w WinAPI',
WS_VISIBLE or WS_TILEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
0, 0, hInstance, NIL);
while GetMessage(msg, 0, 0, 0) do DispatchMessage(msg);
end.
0
Dzięki trzeba będzie teraz to przeanalizować :-)