![]() |
Probleme beim Einbau des Timers
Hallo,
habe folgende Prozedur :
Delphi-Quellcode:
Wie realisiere ich das "Testen auf Veränderungen der letzten Zeile" mit einem Timer? Weiß nicht wie ich da anfangen kann.
procedure TMomFiles.DreiSekDateiFuellen(const Filename: string);
var LogDatei, DatName, temp1, temp2: string; i : integer; Mom, Sek: TStringList; begin DatName := extractfilepath(application.exename)+'Mom3sek_'+Kennung+'.txt'; Mom := TStringList.Create; Sek := TstringList.Create; try LogDatei := extractfilepath(application.exename)+'mom'+Kennung+'.log'; Mom.LoadFromFile(Logdatei); Sek.Add(Mom[0]); temp1 := Mom.Strings[Mom.Count-1]; temp2 := Sek.Strings[Sek.Count-1]; if temp1 <> temp2 then [b]die letzte Zeile einer vorhandenen Datei soll immer (bei Veränderungen)in die neue begin Datei hinten angehängt werden[/b] Sek.Add(Mom[Mom.Count-1]); end; Sek.SaveToFile(DatName); finally Sek.Free; Mom.Free; end; end; |
Re: Probleme beim Einbau des Timers
Hi,
also du erstellst dir nen Timer den du erstmal auf Enabled:=False setzt und fügst dann deinen Code in das OnTimer-Event ein. Pseudocode wäre: OnTimer begin wenn letzte_Zeile_alt.Text <> letzte_Zeile_neu.Text dann //letzte zeile wurde geändert begin //deine Reaktion darauf end; end; Evl. den Intervall noch nach belieben anpassen. EDIT: natürlich den Timer auch wieder auf Enabled:=True setzen wenn es überprüfen soll. Gruß Stormy |
Re: Probleme beim Einbau des Timers
Ich habe aber keine Form,kann ich trotzdem einfach Timer1 : TTimer einfügen?
|
Re: Probleme beim Einbau des Timers
Kurz ja.
Ansonsten kannst du auch eine Schleife dafür benutzen (while do / repeat until) oder eine Funktion sich selber aufrufen lassen (Rekursion) was ich dann aber in einen anderen Thread auslagern würde. Um den Intervall zu setzen kannst du z.B. Sleep verwenden. Gruß Stormy |
Re: Probleme beim Einbau des Timers
Das ist meine TimerProcedure:
Delphi-Quellcode:
Die will ich jetzt aber in einer anderen Unit aufrufen mit :
procedure TMomFiles.MyTimerEvent;
var Sek, Mom : TStringList; DatName, LogDatei, temp1, temp2 : string; begin DatName := extractfilepath(application.exename)+'Mom3sek_'+Kennung+'.txt'; LogDatei := extractfilepath(application.exename)+'mom'+Kennung+'.log'; Mom := TStringList.Create; Sek := TStringList.Create; try Mom.LoadFromFile(Logdatei); Sek.LoadFromFile(DatName); temp1 := Mom.Strings[Mom.Count-1]; temp2 := Sek.Strings[Sek.Count-1]; if temp1 <> temp2 then begin ShowMessage('verschiedene Strings'); Sek.Add(Mom[Mom.Count-1]); end; Sek.SaveToFile(DatName); finally Sek.Free; Mom.Free; end; end;
Delphi-Quellcode:
//Fehler : Inkompatible Typen 'Lister der parameter unterschiedliche'
MyTimer := TTimer.Create(nil);
MyTimer.Enabled := True; MyTimer.Interval := 1000; MyTimer.OnTimer := MomFiles.MyTimerEvent; |
Re: Probleme beim Einbau des Timers
Ups, was vergessen
Delphi-Quellcode:
muss ja zu
procedure TMomFiles.MyTimerEvent;
Delphi-Quellcode:
werden.
procedure TMomFiles.MyTimerEvent(Sender:TObject);
|
Re: Probleme beim Einbau des Timers
War schon am absenden aber dir ist es schneller aufgefallen. :thumb:
Gruß Stormy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 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