Einzelnen Beitrag anzeigen

FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#20

AW: Wie kann ein Zeiger auf eine Funktion als Paramater übergeben werden?

  Alt 1. Dez 2010, 14:16
Genau richtig. Allerdings würde ich persönlich die Methode nicht im Konstruktor übergeben lassen, sondern als Property deklarieren, damit sie sich im weiteren Programmverlauf ggf. ändern lässt, aber das hat mit der Problematik jetzt nichts zu tun.
Dafür wären dann die folgenden Änderungen an obigen Quellcode notwendig:
Delphi-Quellcode:
[...schnipp...]

    Public
// constructor Create(Methode:TBeispiel); //Deklaration Konstruktor mit Methode als Übergabeparameter vom eigenen Typ "TBeispiel"
      constructor Create(); //Deklaration Konstruktor ohne Übergabeparameter
      procedure SetzeBeispielEigenschaft(mMethode: TBeispiel); //Methode für das Setzen der Property/Eigenschaft vom eigenen Typ "TBeispiel"
      property BeispielEigenschaft: TBeispiel read FMethode write SetzeBeispielEigenschaft; //Property/Eigenschaft vom eigenen Typ "TBeispiel"

[...schnipp...]

//constructor TBeispielKlasse.Create(Methode:TBeispiel);
constructor TBeispielKlasse.Create();
begin
  //mache irgendwas...
  FMethode:=nil;
end;

[...schnipp...]

procedure TForm1.FormCreate(Sender: TObject);
begin
// BeispielObjekt_1:=TBeispielKlasse.Create(Prozedur_1);
  BeispielObjekt_1:=TBeispielKlasse.Create();
  BeispielObjekt_1.SetzeBeispielEigenschaft(Prozedur_1);
  BeispielObjekt_1.FMethode;
// BeispielObjekt_2:=TBeispielKlasse.Create(Prozedur_2);
  BeispielObjekt_2:=TBeispielKlasse.Create();
  BeispielObjekt_2.SetzeBeispielEigenschaft(Prozedur_2);
  BeispielObjekt_2.FMethode;
end;

[...schnipp...]
Herzlichen Gruß
FriendOfDelphi

Geändert von FriendOfDelphi ( 1. Dez 2010 um 14:29 Uhr)
  Mit Zitat antworten Zitat