AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

OnChange im TEdit verhindern

Ein Thema von technofreak · begonnen am 10. Jun 2008 · letzter Beitrag vom 10. Jun 2008
Antwort Antwort
technofreak

Registriert seit: 14. Dez 2006
11 Beiträge
 
Delphi 2005 Personal
 
#1

OnChange im TEdit verhindern

  Alt 10. Jun 2008, 12:41
Hallo zusammen.

Ich habe da ein kleines Problem. Ich möchte für das Mitlesen an der seriellen Schnittstelle ein kleines Programm schreiben. Dazu soll das Messinterval einstellbar sein. Ich habe für die Eingabe zwei Edit- und zwei Combobox-Elememte verwendet. Es sollen Abtastfrequenz oder -Zeitintevall einstellbar sein. Je ein Edit-Feld für die Eingabe der Zahl für Zeit und Frequenz und je eine ComboBox für die Einheit (s, ms, Hz, kHz ...)beide Edit-Felder stehen zu Anfang auf 1 und die Einheiten sind s und Hz. Bei einer Änderung bei der Zeit soll die entsprechende Frequenz errechnet und in Edit und Combobox übernommen werden. Bei Änderung der Frequenz entsprechend für die Zeit. Die Abfrage der Edit-Felder mache ich über OnChange. Da aber der Inhalt auch durch die Berechnung verändert wird, wird OnChange auch wieder aufgerufen. Daraus folgt wieder eine Änderung des anderen Edit-Feldes und das Spiel geht von vorne los.

Gibt es eine Möglichkeit auf Eingaben zu reagieren (ähnlich wie OnChange) aber bei Änderung durch das Programm nur den Wert in das Feld zu schreiben ohne OnChange aufzurufen?

Silvio
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#2

Re: OnChange im TEdit verhindern

  Alt 10. Jun 2008, 12:49
Du könntest OnChange für die dauer der Berechnung auch ausschalten. Oder im OnChange überprüfen, ob er denn Handeln darf, über eine Boolche Variable oder so.
Ansonsten wäre es vielleicht auch gut mal zu überdenken, ob das was du machst, nicht vielleicht bessr gelöst werden kann.

Gruß,
Chris
Christian
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#3

Re: OnChange im TEdit verhindern

  Alt 10. Jun 2008, 12:55
Hi,

hebe die Zuweisung des/der OnChange Events kurzzeitig auf, damit du diese Endlosschleife verhinderst.
Hier ein Beispiel:


Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var
  ChangeEvent: TNotifyEvent;
begin
  ChangeEvent:= Edit2.OnChange;
  Edit2.OnChange:= nil;
  try
    // deine Änderungen an Edit1
  finally
    Edit2.OnChange:= ChangeEvent;
  end;
end;
Gruß,
Matthias
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz