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...]