Einzelnen Beitrag anzeigen

Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#6
  Alt 1. Jul 2003, 09:02
Hallo,

ich habs auch mit einer Prozedur probiert, die direkt in der Klassendefinition steht(wie Ereignisprozeduren).
Damit funktionierts auch:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure pProbe(Text: String);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var aPointer: Pointer;
begin
  aPointer := MethodAddress('pProbe');
end;
Wenn ich jetzt aPointer aufrufen will, muss ich aber erst einen Typ deklarieren, der der Originalprozedur entspricht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
type
  TProbe = procedure(Text: String);
var
  aProbe: TProbe;
begin
  aProbe := MethodAddress('pProbe');
  aProbe('irgendein Text');
end;
Oder gleich der direkte Weg(ohne type):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  aProbe: procedure(Text: String);
begin
  aProbe := MethodAddress('pProbe');
  aProbe('irgendein Text');
end;
Die Frage ist: kann ich aProbe so deklarieren, damit ich mehrere Prozedurtypen aufrufen kann(z.B. meherere Parameter). Die Parameteranzahl(und Typen) sind mir bekannt.

Ich hoffe so ists klar
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat