menu/voir/unités/Project1
program Project1;
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Dialogs, Unit1 in 'Unit1.pas';
{$R *.res} var x:Integer; begin x:=0; while x=0 do begin sleep(500); end; end.
note:le programme est répertorié dans le task ,on peut lui faire écouter les messages windows et lui faire exécuter une tâche en fonction d'un message en particulier ,évidemment ici je n'ai pas créer la procédure en question et le programme ne fait rien.
pour créer les fenêtres en runTime , on utilise Win32 Core API , mais cela en vaut-il la peine ...
unit Unit1; interface uses Windows,Classes,Dialogs; procedure CreateW; implementation
function RegisterClass: Boolean; var WindowClass: TWndClass; begin WindowClass.Style := CS_HREDRAW or CS_VREDRAW; WindowClass.lpfnWndProc := @DefWindowProc; WindowClass.cbClsExtra := 0; WindowClass.cbWndExtra := 0; WindowClass.hInstance := hInstance; WindowClass.hIcon := 0; WindowClass.hCursor := 0; WindowClass.hbrBackground := COLOR_WINDOW; WindowClass.lpszMenuName := nil; WindowClass.lpszClassName := 'TestClass'; Result := Windows.RegisterClass(WindowClass) <> 0; end;
procedure CreateW; var hWindow: HWND; begin if not RegisterClass then begin ShowMessage('Erreur Register'); Exit; end;
hWindow := CreateWindowEx( 0, 'TestClass', 'Window', WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, hInstance, nil);
if hWindow <> 0 then begin ShowWindow(hWindow, SW_SHOWNORMAL); UpdateWindow(hWindow); end else begin ShowMessage('Erreur Création'); Exit; end; end;
end.
yve
|