Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi GUI per DLL (https://www.delphipraxis.net/50358-gui-per-dll.html)

VT-DA 24. Jul 2005 13:29


GUI per DLL
 
Hi,

ich versuche z.Z. eine kleine GUI für eine andere programmiersprache zu schreiben.
Dabei habe ich mir gedacht einfach die Delphibefehle in eine DLL zu schreiben und dann einzusetzen.
Bis jetzt habe ich mit der Hilfe geschaft eine DLL zu machen womit man ein Form erstellen kann.
Doch da ein Form leider nicht reicht, möchte ich gerne noch ein paar Buttons und so rein haben.
Jetzt meine Frage. Wie lauten die Befehle zum erstellen eines buttons oder einer Memo?
Oder gibt es vielleicht sogar eine Sektion in der Hilfe die ich noch nicht gesehen habe wo alle Befehle aufgelistet sind?
Hier mal mein derzeitiger code der in der dll steht.

Delphi-Quellcode:
library Project2;

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs;

procedure DLLFormShow;
var Form: Tform;
begin
Application.CreateForm(Tform, form);
  Form.Show;
end;

exports
  DLLFormShow;
{$R *.res}


begin
end.
Mfg

BenjaminH 24. Jul 2005 13:42

Re: GUI per DLL
 
Einen Button erstellst du so:
Delphi-Quellcode:
Button:TButton;

Button:=TButton.Create(Form);

new32 24. Jul 2005 13:49

Re: GUI per DLL
 
Delphi-Quellcode:
...

var button1:Tbutton;

...

button1:=Tbutton.create(form);
button1.parent:=form;
button1.show;
...
MfG NEW32!

ste_ett 24. Jul 2005 13:56

Re: GUI per DLL
 
Code:
library Project2;

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  StdCtrls;

var
  Form: TForm;
  Button: TButton;
  Memo: TMemo;

procedure DLLFormShow; stdcall;
begin
  Form := TForm.Create(nil);
  Memo := TMemo.Create(Form);
  Button := TButton.Create(Form);
  Form.Show;
end;

procedure DLLFormFree; stdcall;
begin
  Memo.Free;
  Button.Free;
  Form.Free;
end;

exports
  DLLFormShow,
  DLLFormFree;
{$R *.res}


begin
end.

VT-DA 24. Jul 2005 14:29

Re: GUI per DLL
 
Hi,

Danke für eure Hilfe. Doch leider komm ich schon wieder nicht weiter.
Ich versuche einen procedure auszuführen doch der gibt mir wie fast immer nur Fehler aus.
Hier nochmal der derzeitige Code:

Delphi-Quellcode:
library form;

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  StdCtrls;

var
  Form1: TForm;
  Button1: TButton;
  Memo1: TMemo;

procedure DLLFormShow; stdcall;
begin
  Form1 := TForm.Create(nil);
  Memo1 := TMemo.Create(Form1);
  Memo1.Parent := Form1;
  Button1 := TButton.Create(Form1);
  Button1.Parent := Form1;
  Button1.Width := 100;
  Button1.Height := 100;
  Form1.Show;
  Memo1.Show;
  Button1.Show;

end;

procedure Form1.Button1Click(Sender: TObject); stdcall;
begin
  DLLFormFree;
end;

procedure DLLFormFree; stdcall;
begin
  Memo1.Free;
  Button1.Free;
  Form.1Free;
end;

exports
  DLLFormShow,
  DLLFormFree;
{$R *.res}


begin
end.
Mfg

MrKnogge 24. Jul 2005 14:33

Re: GUI per DLL
 
Delphi-Quellcode:
Button.Show
und
Delphi-Quellcode:
Memo.Show
gibt es nicht :wink:

VT-DA 24. Jul 2005 14:40

Re: GUI per DLL
 
Moin,

hmm. Klappt aber trodzdem damit. Naja. :)
Hab aber trodzdem noch den gleichen Fehler an dieser Stelle:
Delphi-Quellcode:
procedure Form1.Button1Click(Sender: TObject); stdcall;
Mfg

gsh 24. Jul 2005 14:53

Re: GUI per DLL
 
Wenn dann so:
Delphi-Quellcode:
procedure Button1Click(Sender: TObject);
Außerdem musst du diese prozedure dem Button zuweissen:

Delphi-Quellcode:
procedure DLLFormShow; stdcall;
begin
  Form1 := TForm.Create(nil);
  Form1.Top := 0;
  Form1.left := 0;
  Form1.Width := 100;
  Form1.Height := 200;
  Memo1 := TMemo.Create(Form1);
  Memo1.Top := 100;
  Memo1.left := 0;
  Memo1.Width := 100;
  Memo1.Height := 100;
  Memo1.Parent := Form1;
  Button1 := TButton.Create(Form1);
  Button1.Top := 0;
  Button1.left := 0;
  Button1.Width := 100;
  Button1.Height := 100;
  Button1.Caption := 'FreeMe';
  Button1.OnClick := Button1Click; //Hier, weiss aber nicht ob des genau so heisst
  Button1.Parent := Form1;
  Form1.Show;
end;
Ungetestet

//edit: Fehler ausgebessert

VT-DA 24. Jul 2005 15:02

Re: GUI per DLL
 
Hi,

hmm. Ne klappt nicht.
Fehler bei Button1.OnClick := Button1Click; //Hier, weiss aber nicht ob des genau so heisst
Hab auch nochmal so gekuckt. Der befehl scheint aber richtig zu sein.
Komisch. :|

Mfg

MrKnogge 24. Jul 2005 15:16

Re: GUI per DLL
 
Versuch mal

Delphi-Quellcode:
procedure DLLFormShow(app: TApplication); stdcall;
begin
  Form1 := TForm.Create(app);
...
gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz