Soyez le premier à donner votre avis sur cette source.
Vue 7 583 fois - Téléchargée 514 fois
program WinMain; uses Forms, Dialogs, Windows, SysUtils, Messages; {$R *.RES} {$R ressource.RES} // Ressource Menu const IDNEW = 101; IDOPEN = 102; function WndProc(hWnd : HWND; Msg : UINT; WParam : WPARAM; LParam: LPARAM): UINT; stdcall; var hdc : Integer; ps : TPaintStruct; Rect : TRect; begin case Msg of WM_PAINT : begin hdc := BeginPaint(hWnd, ps); SetBkMode(hdc, TRANSPARENT); GetClientRect(hWnd, Rect); DrawText(hdc, 'My program in Delphi with API style.', -1, Rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER); EndPaint(hwnd, ps); end; WM_COMMAND: begin case wParam of IDNEW : ShowMessage('Vous avez cliqué sur "Nouveau"'); IDOPEN : ShowMessage('Vous avez cliqué sur "Ouvrir"'); end; end; WM_DESTROY: PostQuitMessage(0); end; Result := DefWindowProc(hwnd, Msg, wParam, lParam); end; var Msg : TMsg; hwnd, hAccel : Integer; szAppName : LPSTR = 'lpFetraDelphi'; nCmdShow : Integer = SW_SHOWNORMAL; TempClass, UtilWindowClass : TWndClass; ClassRegistered : Boolean; begin with UtilWindowClass do begin style := CS_HREDRAW or CS_VREDRAW; lpfnWndProc := @DefWindowProc; cbClsExtra := 0; cbWndExtra := 0; hInstance := 0; hIcon := LoadIcon(0, IDI_APPLICATION); hCursor := LoadCursor(0, IDC_ARROW); hbrBackground := GetStockObject(WHITE_BRUSH); lpszMenuName := 'FETRA'; // Menu dans le ressource.res lpszClassName := szAppName; end; UtilWindowClass.hInstance := hInstance; ClassRegistered := GetClassInfo(hInstance, UtilWindowClass.lpszClassName, TempClass); if not ClassRegistered or (TempClass.lpfnWndProc <> @DefWindowProc) then begin if ClassRegistered then Windows.UnregisterClass(UtilWindowClass.lpszClassName, hInstance); end; Windows.RegisterClass(UtilWindowClass); // Créer la fenêtre principale hWnd := CreateWindow(UtilWindowClass.lpszClassName, '', WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, hInstance, nil); // Procédure de fenêtre SetWindowLong(hwnd, GWL_WNDPROC, LongInt(@WndProc)); // Titre de la fenêtre SetWindowText(hwnd, 'Création dynamique de Form en Delphi'); ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); // Boucle de message while (GetMessage(Msg, 0, 0, 0)) do begin TranslateMessage(Msg); DispatchMessage (Msg); end; end.
20 juin 2003 à 18:54
Mais utiliser Forms et Dialogs, ca ajoute 200 ko à l'exécutable juste pour un simple Windows.MessageBox
8 févr. 2003 à 09:03
é ;)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.