Hallo,
ich versuche mich gerade daran, sich häufig ändernden Code in eine
DLL auszulagern. Zu diesem Zweck betreibe ich natürlich tests. Allerdings komme ich nicht wirklich weiter. Ich habe eine
Library
und ein
Program
und würde das gern testen. Das Programm wird kompiliert, lässt sich aber nicht ausführen, weil die
DLL-Datei nicht erstellt wird.
Wie macht man das?
Ich habe bereits im Internet einige Tutorials zum Thema
DLL angeschaut. Auf diese Frage wird nirgends eingegangen. Ich gehe deshalb davon aus, dass sich die
DLL mehr oder weniger automatisch kompilieren sollte.
Da es aber evtl. auch am Code liegen könnte, habe ich diesen hier angefügt:
Delphi-Quellcode:
Library DLLForm;
Uses Classes, Controls, Forms, StdCtrls, ExtCtrls;
Type
TaDLLForm = Class(TForm)
Btn1 : TButton;
Btn2 : TButton;
Timer1: TTimer;
Procedure DoSomething(Sender: TObject);
End;
{$R *.dfm}
Procedure TaDLLForm.DoSomething(Sender: TObject);
Begin
Timer1.Enabled:=False;
If (Sender = Btn1 ) Then Caption:='Button 1 gedrückt.'
Else If (Sender = Btn2 ) Then Caption:='Button 2 gedrückt.'
Else If (Sender = Timer1) Then Caption:='Lange nichts gedrückt.'
Else Caption:='Was war das denn?';
Timer1.Enabled:=True;
End;
Procedure DLLFormular; StdCall;
Var
aDLLForm : TaDLLForm;
Begin
aDLLForm:=aDLLForm.Create(Application);
Try
aDLLForm.ShowModal;
Finally
aDLLForm.Release;
End;
End;
Exports
DLLFormular;
Begin
End.
und das "Haupt"programm sieht dann so aus:
Delphi-Quellcode:
Unit _main;
Interface
Uses Classes, Controls, Forms, StdCtrls;
Type
TAppForm =
Class(TForm)
Button1: TButton;
Procedure Button1Click(Sender: TObject);
End;
Var
AppForm : TAppForm;
Procedure DLLFormular;
Stdcall;
External '
DLLForm.dll';
Implementation
{$R *.dfm}
Procedure TAppForm.Button1Click(Sender: TObject);
Begin
DLLFormular;
End;
End.
Sollten schon jetzt grobe Schnitzer drin sein, freue ich mich über Hinweise, bevor ich dann später irgend welche schlimmeren Dinge ausbaden muss.
Gruß & Dank, Alex