AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

properties

Ein Thema von Mephisto090 · begonnen am 9. Aug 2009 · letzter Beitrag vom 9. Aug 2009
Antwort Antwort
Mephisto090

Registriert seit: 11. Apr 2009
35 Beiträge
 
Delphi 7 Enterprise
 
#1

properties

  Alt 9. Aug 2009, 17:15
hallo liebe Leute,

Ich will eine Klasse schreiben wo ein Property vorhanden ist was eine Log macht ich kenne sowas in der art wie OnError von anderen klassen sehe aber auch nicht durch wie die das machen das wenn immer irgendein Error kommt das die Procedure im Form getriggert wird

Also ein Property OnLog was immer gefeuert wird wenn ich bei der Klasse was in die Variable FLog rein schreibe.

Delphi-Quellcode:
Procedure TForm1.Log(Log: string);
begin
  mmoLog.Lines.Add(Log);
end;
Ich hoffe ihr versteht was ich schreibe.

soweit habe ich es schon ^^

property OnLog: String read FLog write FLog; mfg
Mephisto

[edit=TBx]Druckfehler + verschoben, das ist kein Vorschlag für die CL! Mfg, TBx[/edit]
  Mit Zitat antworten Zitat
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
Mephisto090

Registriert seit: 11. Apr 2009
35 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: properties

  Alt 9. Aug 2009, 17:52
danke hat mir geholfen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz