Nach bestimmter Zeit die Eingabe stoppen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Keepi
Beiträge: 6
Registriert: Mi 4. Jun 2014, 11:56

Nach bestimmter Zeit die Eingabe stoppen

Beitrag von Keepi »

Hallo,

Ich programmiere gerade ein Programm, bei dem über einen Tastendruck eine Zahl in einem Editfeld um 1 erhöht.
So weit ist es auch noch kein Problem gewesen, jedoch möchte ich diese Eingabe nach einer gewissen Zeit (die in ein anderes Editfeld eingegeben wird) stoppen. Also wenn Zeit=0, dann kann man drücken wie man will, jedoch passiert nix.
Ich habe schon viel gesucht, allerdings keine passenden Lösungsansetze gefunden und kenne mich mit Lazarus noch nicht so gut aus ;) und habe überlegt einen Timer zu verwenden.
Vielleicht kann mir ja jemand helfen

Gruß Keepi

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Nach bestimmter Zeit die Eingabe stoppen

Beitrag von Michl »

Willst Du nun die Zeit stoppen?! Das kannst Du z.B. mit GetTickCount machen.
Willst Du Dein Edit-Feld für die Eingabe über einen Zeitraum sperren?! Dafür kannst Du tatsächlich einen Timer nehmen z.B. (bei Event "OnEditingDone" des TEdits, Dein TEdit inaktiv stellen "<DeinTEdit>.enabled:=False" und den Timer anstellen. Bei Event "OnTimer" des Timers, den Timer wieder ausstellen und das TEdit wieder aktiv stellen).

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Keepi
Beiträge: 6
Registriert: Mi 4. Jun 2014, 11:56

Re: Nach bestimmter Zeit die Eingabe stoppen

Beitrag von Keepi »

Das TEdit soll nur für eine Kurze Zeit freigeschalten werden. Also wenn ich den Button drücke, ist es für 10 Sekunden möglich, per Tastendruck die Zahl im Editfeld um 1 zu erhöhen, dann soll es gesperrt sein, bis man den Button erneut drückt.
Aber danke schonmal für die Vorschläge :).

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Nach bestimmter Zeit die Eingabe stoppen

Beitrag von Michl »

Keepi hat geschrieben:Aber danke schonmal für die Vorschläge :).
Gern geschehen, müsstest es dann ein bischen anders machen, ein Timer ist trotzdem gut - viel Erfolg!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Keepi
Beiträge: 6
Registriert: Mi 4. Jun 2014, 11:56

Re: Nach bestimmter Zeit die Eingabe stoppen

Beitrag von Keepi »

Ich habe das jetzt soweit geschafft, nur habe ich jetzt ein anderes Problem. Kann sich ein Timer selber Stoppen?
Also der Timer hat zum Beispiel ein Interval von 10.000 und macht zeigt dann eine Nachricht. er soll diese Nachricht aber nur einmal anzeigen und nicht andauernd.... :roll:

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2807
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: Nach bestimmter Zeit die Eingabe stoppen

Beitrag von m.fuchs »

Dann setz seine Enabled-Property auf False kurz bevor du die Meldung anzeigst.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Keepi
Beiträge: 6
Registriert: Mi 4. Jun 2014, 11:56

Re: Nach bestimmter Zeit die Eingabe stoppen

Beitrag von Keepi »

Ahhhh okay cool :D
Vielen Dank an euch beide :)

Antworten