![]() |
zeit vor den log
hi
ich will mir einen log basteln, hier erst ma mein code:
Delphi-Quellcode:
also einfach ne memo, wo ich im onchange-ereignis die zeit davor tue
procedure TForm1.memo_LogChange(Sender: TObject);
var a:integer; begin a:=memo_log.Lines.Count-1; memo_log.Lines[a]:=datetimetostr(now)+': '+memo_log.Lines[a]; end; nun wird aber gechanget, er setzt datum davor, und dann isses ja wieder anders und er machts nochmal und so weiter bis zu nem stack overflow (also ne endlosschleife: ändern -> onchange -> ändern -> onchange...) kann man das verhindern? |
Re: zeit vor den log
Hi!
Nimm dir eine globale Variable, meinetwegen aender. Dann prüfst du ob aender=true, wenn ja, dann machst du es, dann setzt du aender grad auf false. Und dann gehst du in nem Timer hin (z.b. alle 5 Sekunden) und setzt aender wieder auf true. Ciao Frederic |
Re: zeit vor den log
setz doch schon beim reinschreiben ins memo die zeit davor, so mach ichs auch.
gruss |
Re: zeit vor den log
ich hab aber keinen bock jetzt an 10 verschiedenen stellen das zu machen
ausserdem fänd ichs einfach besser und man könnt mal ne compo drauss machen.... |
Re: zeit vor den log
du könntest zwar 'ne Globale Variable verwenden
Delphi-Quellcode:
, oder etwas vom Memo misshandeln
var LogChange: Boolean = False;
procedure TForm1.memo_LogChange(Sender: TObject); var a:integer; begin If LogChange Then Exit; LogChange := True; a:=memo_log.Lines.Count-1; memo_log.Lines[a]:=datetimetostr(now)+': '+memo_log.Lines[a]; LogChange := False; end;
Delphi-Quellcode:
und somit dieses verhindern, oder du machst 'ne Prozedure
procedure TForm1.memo_LogChange(Sender: TObject);
var a:integer; begin If memo_log.Tag <> 0 Then Exit; memo_log.Tag := 1; a:=memo_log.Lines.Count-1; memo_log.Lines[a]:=datetimetostr(now)+': '+memo_log.Lines[a]; memo_log.Tag := 0; end;
Delphi-Quellcode:
und verwendest diese überall, wo ein Ereignis eingetragen wird.
Procedure AddLog(S: String);
Begin memo_log.Lines.Add(datetimetostr(now) + ': ' + S; End; |
Re: zeit vor den log
danke, funzt
wozu is denn dieses tag? |
Re: zeit vor den log
aus der OH
Zitat:
|
Re: zeit vor den log
Zitat:
Delphi-Quellcode:
procedure TForm1.memo_logChange(Sender: TObject);
var onchange : TNotifyEvent; a : Integer; begin onChange := (Sender As TMemo).OnChange; // "Merken" der Onchange-Procedure (Sender As TMemo).OnChange := nil; // OnChange abschalten a:=memo_log.Lines.Count-1; memo_log.Lines[a]:=datetimetostr(now)+': '+memo_log.Lines[a]; (Sender As TMemo).OnChange := onChange; // OnChange-Procedure wieder zuweisen. end; |
Re: zeit vor den log
ginge auch..
bin aber froh dasses mit tag funzt :mrgreen: trotzdem danke für die idee |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz