Du kannst eine Funktion oder Prozedur so erstellen:
Entweder, sie gehört dierekt zur
Unit, dann deklarierst du sie ausserhalb irgendwelcher Klassendeklarationen:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 =
class(TForm)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
procedure myprocedure(i:integer);
function myfunction(i:integer):
string;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure myprocedure(i:integer);
begin
dosomething;
end;
function myfunction(i:integer):
string;
begin
dosomethingother;
end;
end.
oder du deklarierst die Funktion/Klasse zu einer Klasse zugehörig, in unserem Falle also TFORM1:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 =
class(TForm)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
procedure myprocedure(i:integer);
function myfunction(i:integer):
string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure tform1.myprocedure(i:integer);
begin
dosomething;
end;
function tform1.myfunction(i:integer):
string;
begin
dosomethingother;
end;
end.
welche Methode von beiden empfehlenswerter ist, überlasse ich dir. Wenn du von der Prozedur/Funktion aus dierekten Zugriff auf die form haben willst (z.B. canvas.rectangle oder label1.caption aufrufen willst, dann solltest du sie in der Form deklarieren, wenn du mehrere Units verwendest, unbedingt ausserhalb der form. Wenn du sie ausserhalb der form deklarierst, musst du label1.caption so aufrufen: form1.label1.caption (da form1 eine Variable ist, die dierekt in der
Unit deklariert ist) oder so:
Delphi-Quellcode:
procedure xy;
begin
with form1 do
begin
dosomething;
end;
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates