Einzelnen Beitrag anzeigen

ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Deklarierung einer "function"

  Alt 8. Jan 2006, 11:09
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
  Mit Zitat antworten Zitat