Taste nach aktivierung, während des Proesses inaktive bekom

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Foxi1896
Beiträge: 87
Registriert: Mo 10. Jun 2013, 09:06

Taste nach aktivierung, während des Proesses inaktive bekom

Beitrag von Foxi1896 »

Hey,

Ich lasse mir von einem Messgerät daten liefern und in Edits eintragen.
Immer wenn ich Drücke misst er einen Wert und trägt ihn ein. Nun möchte ich das Programm sicher machen, weil wenn man z.B. 5mal auf die Taste drückt trägt er den selben Wert in die 5 Felder.
Ich möchte die Taste erst wieder gedrückt werden kann wenn das eine Feld bzw Schleife rum ist.

hier der Code:

Code: Alles auswählen

begin
  if (y_wert>0.1) and (n_wert<7) then    {Schleife 6-Teil}
     begin
     inc(n_wert);
     if n_wert=1 then EditR1.Text:=   FormatFloat('0.00',y_wert);
     if n_wert=2 then EditR2.Text:=   FormatFloat('0.00',y_wert);
     if n_wert=3 then EditR3.Text:=   FormatFloat('0.00',y_wert);
     if n_wert=4 then EditR4.Text:=   FormatFloat('0.00',y_wert);
     if n_wert=5 then EditR5.Text:=   FormatFloat('0.00',y_wert);
     if n_wert=6 then EditR6.Text:=   FormatFloat('0.00',y_wert);
     if n_wert=7 then EditRA.Text:=   FormatFloat('0.00',y_wert);
     end;
 
  if n_wert<7 then Label2.Caption:='Messung: OK';
  if n_wert=7 then Label2.Caption:='!!! FERTIG !!!';
 
  end;    

Hier hatte ich die gleich Frage schonmal mit einer anderen Verbunden. http://www.lazarusforum.de/viewtopic.php?f=55&t=7032

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

Re: Taste nach aktivierung, während des Proesses inaktive be

Beitrag von Michl »

Na ein bischen solltest du selber mal probieren!

Lösungen stellen eine Variable (z.B. Eingabe_moeglich:boolean -> nach Schleife "true", davor "false"), Timer, Status des Messgeräts oder eine Menge anderer Möglichkeiten dar (Verhindern des Ausführens deiner Abruf-Procedure)!

Notfalls im OnKeydown den Key auf null stellen.
Zuletzt geändert von Michl am Do 11. Jul 2013, 17:32, insgesamt 1-mal geändert.

Code: Alles auswählen

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

Foxi1896
Beiträge: 87
Registriert: Mo 10. Jun 2013, 09:06

Re: Taste nach aktivierung, während des Proesses inaktive be

Beitrag von Foxi1896 »

Weiß jetzt nicht ob du den link unten gesehen hast in meinem Beitrag?
Da hab ich schon etwas versucht (mit nem Tipp).

Da habe ich es mit Button.Enabled. ture false versucht.
Nur das hat ihn nicht gejuckt. Daher Frag ich mich ob Windows sich die Mausstelle merkt und die Clicks im Puffer speichert?

Aber gibt es sowas wie Windowspuffer ... der da mitspielt?

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

Re: Taste nach aktivierung, während des Proesses inaktive be

Beitrag von Michl »

Hatte ich gerade gelesen, daher hatte ich den vorherigen Post in der Zwischenzeit geändert:

Im Event OnKeydown den Key:=0 (damit überschreibst du die gedrückte Taste im Puffer).

Find ich persönlich keine saubere Lösung, ich würde wie gesagt, das Einlesen der Daten verhindern! Mit einer boolischen Variable z.B. Eingabe_moeglich!
Da habe ich es mit Button.Enabled. ture false versucht.
Nur das hat ihn nicht gejuckt. Daher Frag ich mich ob Windows sich die Mausstelle merkt und die Clicks im Puffer speichert?
OnKeyDown bezieht sich nur auf die Tastatur, hat nichts mit der Maus zu tun. War aber eigentlich auch nicht die anfängliche Frage! Nicht desto trotz, könnest du das einfach über eine boolische Variable "Eingabe_moeglich" generell prüfen!

Code: Alles auswählen

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

Antworten