Thema: Delphi properties

Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.351 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: propertys

  Alt 9. Aug 2009, 16:29
Laut der gewählten Sparte möchtest du also einen neuen Beitrag für die Code-Library vorschlagen?

Zur Frage:
Im Grunde funktioniert das so, dass die Klasse intern die Fehler abfängt und nur das Event auslöst statt die Fehler direkt als Exception an den Aufrufer weiterzuleiten.

Beispiel:
Delphi-Quellcode:
type
  TOnLogEvent = procedure(Sender: TObject; ALogText: String) of object;

  TBla = class
  private
    FOnLog: TOnLogEvent;
    procedure DoLog(AText: String);
  public
    property OnLog: TOnLogEvent read FOnLog write FOnLog;
  end;

  TBlaForm = class(TForm)
  ...
  private
    procedure TestLogEvent(Sender: TObject; ALogText: String);
  end;

omplementation

procedure TBla.DoLog(AText: String);
begin
  if Assigned(FOnLog) then
    FOnLog(Self, AText);
end;

procedure TBla.Something...
begin
  ...
  try
    ...
  except
    DoLog('Fehler');
  end;
end;

procedure TBlaForm.TestLogEvent(Sender: TObject; ALogText: String);
begin

end;

...

MyBla.OnLog := TestLogEvent;
...
Du deklarierst also eine entsprechende Eigenschaft und weist der eine entsprechende Methode zu.

// EDIT:
String als Typ? Du willst doch eine entsprechende Methode zuweisen, die aufgerufen wird, wenn das Event ausgelöst wird...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat