Timer wird nicht deaktiviert?! [Gelöst]

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

Timer wird nicht deaktiviert?! [Gelöst]

Beitrag von mark332 »

Zuerst: Ich habe leider nicht herauslesen können, wo genau mein Problem jetzt hingehört und schreibe es deswegen erstmal in "Sonstiges". ;)

Mein Problem:
Wenn mein Programm startet, öffnet der Timer unbegrenzt den Dialog, bis man manuell alle Dialogfenster mit "OK" geschlossen hat, nun frage ich mich, warum überspringt der Timer scheinbar den Rest in dem zu ihm gehörigen Code?

Der betreffende Timer-Code:

Code: Alles auswählen

 
procedure TForm1.Timer_checkSettingsTimer(Sender: TObject);
begin
  if not FileExists('settings.ini') then
    begin
         MessageDlg('Settings.ini not found, please check your installation!', mtInformation, [mbOK], 0);
    end;
  Timer_checkSettings.Enabled := false;
  Sleep(500);
end; 
 

Sinn dahinter: Der Timer soll testen ob sich die Einstellungs-Datei (settings.ini) im Hauptverzeichnis befindet und, wenn nein, ein Dialog ausgeben, der den User informiert, und sich dann ausschalten, egal ob die Datei existiert oder nicht.


Freue mich auf eure Antworten und hoffe, dass einer mir helfen kann.

MfG mark332
Zuletzt geändert von mark332 am Do 16. Mai 2013, 14:55, insgesamt 1-mal geändert.
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2817
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Timer wird nicht deaktiviert?!

Beitrag von m.fuchs »

Er überspringt ihn nicht, er hat ihn nur nicht erreicht. MessageDlg wartet auf den Klick des Nutzers, das heißt also die folgenden Zeilen werden erst danach abgearbeitet.

1.) Deaktiviere den Timer am Anfang der Methode, also noch vor dem FileExists.

2.) Wozu ist das Sleep da?

3.) Wozu überhaupt ein Timer? Kannst du das Ganze nicht im TForm1.Create machen?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

Re: Timer wird nicht deaktiviert?!

Beitrag von mark332 »

Das mit dem Timer vorher deaktivieren teste ich mal...
Das Sleep...ähh, achso, das ist damit ich beim testen überhaupt in der Lage war die ganzen Fenster wegzuklicken :D

Und mit TForm1.create hab ich mich noch nicht beschäftigt.

Edit: Danke :D das mit dem vorher deaktivieren hat geklappt, allerdings interessiere ich mich nun immernoch dafür, warum er den Rest "übersprungen" hat.
Wenn ich das nämlich weiß, kann ichs später vermeiden. ^^
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2817
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Timer wird nicht deaktiviert?! [Gelöst]

Beitrag von m.fuchs »

Bitte lies noch einmal die erste Zeile meines vorhergehenden Beitrags.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

Re: Timer wird nicht deaktiviert?! [Gelöst]

Beitrag von mark332 »

Ups xD hab ich nicht wahrgenommen ;)

Danke
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

Antworten