Thema: Delphi Gleiche Variablen-Namen

Einzelnen Beitrag anzeigen

Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#40

AW: Gleiche Variablen-Namen

  Alt 9. Mai 2017, 17:42
@Uwe Raabe
Zitat:
Entschuldige, aber das ist Blödsinn! Die Deklaration eines Events ist die Stelle, an der die Parameternamen festgelegt werden.
Sorry, aber ich fürchte, du hast mich fallsch verstanden. Um es mal anders auszudrücken:
Delphi-Quellcode:
procedure Tfoo.xxx
begin
  GetNamen(Strasse, Hausnummer)
end

function Getnamen(Street, Number)
Begin
  End
End;
Natürlich müssen die Deklarationen jeder der beiden Methoden dabei gleich lauten und die Reihenfolge und Typen der Parameter übereinstimmen.
Damit das jetzt nicht missverstanden wird, mache ich mal ein etwas ausführlicheres Beispiel:

Delphi-Quellcode:
type
  // Deklaration des Events
  TMyEvent = procedure(Street: string; Country: string) of object;
  
  TMyClass = class
  private
    FOnReport: TMyEvent;
  public
    procedure DoSomethingAndReport();
    property OnReport: TMyEvent read FOnReport write FOnReport;
  end;
  
  TForm1 = class(TForm)
  private
    procedure ReportHandler(Street: string; Country: string);
  end;
  
  
 implementation
 
 procedure TMyClass.DoSomethingAndReport();
 var
   tmpStreet, tmpCountry: string;
 begin
   tmpStreet := GetStreet(); // Irgendeine Methode ausführen
   tmpStreet := GetCountry(); // Irgendeine Methode ausführen
   
   if Assigned(FOnReport) then
     FOnReport(tmpStreet, tmpCountry); // Hier wird das Event ausgelöst
 end;
 
 
 // EventHandler für TMyClass.OnReport
 // Hier könnten die Parameter Bezeichner sogar schon von der Event-Deklaration abweichen
 // Wichtig sind die Datentypen. Die müssen in Reihenfolge und Typ mit der Event-Deklaration übereinstimmen
 procedure TForm1.ReportHandler(Street: string; Country: string);
 begin
   ShowMessage(Street + sLineBreak + Country);
 end;
  Mit Zitat antworten Zitat