Oppure

Loading
12/06/10 9:02
Saladino
Questo è il link per Borland Pascal.
hotfile.com/dl/25853326/80b366f/…
Non so perchè ,ma quando vengo a creare una app window nel task menager non indica alcuna memoria , ed alla chiusura del programma mi da errore dicendo General Protection Fault.

Ecco un esempio per creare un applicazione windows :
program ciao;
uses
 Owindows;

Type
 Applicazione = Object(TApplication)
  Procedure InitMainwindow; Virtual;
 end;

Var
  App : Applicazione;

Procedure Applicazione.InitMainWindow;
begin
 MainWindow := New( Pwindow ,Init(nil ,'Ciao Borland Pascal'));
end;
begin
 App.Init('Ciao Borland Pascal');
 App.Run;
 App.Done;
end.


Ricordatevi di scaricare questa dll al seguente indirizzo e di metterla in Bin
nodevice.com/dll/BWCC_DLL/…
Ultima modifica effettuata da Phi 13/06/10 6:14
aaa
14/06/10 14:09
Phi
Scusa ho dei problemi con compilatore. Non trova il file della unit owindows.

Comunque non hai detto cosa dovrebbe fare il programma.
Deve aprite una finestra GUI bianca con titolo "CIAO" ?? O ho capito male.
aaa
14/06/10 14:30
Saladino
Vai nella cartella unit e copia tutto in bin.
aaa
14/06/10 16:06
Phi
L'ho fatto ma non la trova comunque. :_doubt:


Ma non basta scrivere:

program CIAO;
{$MODE DELPHI}
uses Windows;

function WindowProc(Window:HWnd; AMessage,WParam,LParam:Longint): Longint; stdcall;
begin
WindowProc := 0;
case AMessage of
 wm_Destroy : begin
  PostQuitMessage(0);
  Exit;
 end;
 end;
 WindowProc := DefWindowProc(Window, AMessage, WParam, LParam);
end;

{ Register the Window Class }
function WinRegister: Boolean;
var WC: WndClass;
begin
with WC do begin
 Style := cs_hRedraw or cs_vRedraw;
 lpfnWndProc := WndProc(@WindowProc);
 cbClsExtra := 0;
 cbWndExtra := 0;
 hInstance := system.MainInstance;
 hIcon := LoadIcon(0, idi_Application);
 hCursor := LoadCursor(0, idc_Arrow);
 hbrBackground := GetStockObject(WHITE_BRUSH);
 lpszMenuName := nil;
 lpszClassName := 'CIAO';
end;
Result := RegisterClass(WC) <> 0;
end;

{ Create the window }
function WinCreate: HWnd;
var hWindow: HWnd;
begin
hWindow:=CreateWindow('CIAO','ciao',ws_OverlappedWindow,cw_UseDefault,cw_UseDefault,
   cw_UseDefault,cw_UseDefault,0,0,system.MainInstance, nil);
if hWindow <> 0 then begin
 ShowWindow(hWindow, CmdShow);
 UpdateWindow(hWindow);
end;
Result := hWindow;
end;

var
AMessage: Msg;
hWindow: HWnd;

Begin
if not WinRegister then begin
 MessageBox(0, 'registrazione fallita', nil, mb_Ok);
 Exit;
end;
hWindow := WinCreate;
if longint(hWindow) = 0 then begin
 MessageBox(0, 'creazione finestra fallita', nil, mb_Ok);
 Exit;
end;
while GetMessage(@AMessage, 0, 0, 0) do begin
 TranslateMessage(AMessage);
 DispatchMessage(AMessage);
end;
End.

aaa
15/06/10 15:03
Saladino
No ,se usi owindows no.
aaa