Thema: Delphi properties

Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

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

Re: propertys

  Alt 9. Aug 2009, 17: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
AppCentral
  Mit Zitat antworten Zitat