AW: tedit.onchange schluckt ersten Wert bei Iteration
3. Apr 2012, 08:04
Mal grundsätzlich: Wenn ich verhindern möchte, das z.B. OnChange aufgerufen wird, habe ich zwei Möglichkeiten:
1. Ich kann, wie schon gezeigt, die Events kurz abschnippeln, dann das tun, was ich tun will und wieder anbepseln
oder
2. Ich verwende ein privates Feld 'Silent' oder wie auch immer
2.1 Prüfe in jedem Event If Silent then exit;
.
2.2 Setze vor dem, was ich machen will 'Silent := True' und hinterher wieder auf false.
Sinnvoll ist das z.B. beim erstmaligen Initialisieren von Eingabefeldern oder wenn ich kaskadierte oder schlimmer: rekursive aufrufende Events befürchten muss.
(1) verwende ich, wenn alle OnChange-Events auf ein zentrales Event zeigen. Dann habe ich eine Routine zum wegschnippeln und eine zum anbepseln. Die zum Anbepseln rufe ich im FormCreate auf.
(2) verwende ich, wenn die Events alle unterschiedlich sind. denn dann würde die Anbepsel-Routine schnell ziemlich lang und langweilig werden.
|