Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
17. Aug 2012
So, mal genauer nachgesehn.
OnExit müßte eigentlich OnBeforeExit heißen, denn u diesem Zeitpunkt liegt der Eingabefokus immernoch beim Control.
Control.SetFocus prüft, ob es nicht schon den Focus besitzt und macht dann nichts, womit im OnExit das SetFocus nie etwas macht, wenn man dieses auf das Control vom OnExit bezieht.
procedure TForm10.Edit1Exit(Sender: TObject);
begin
if...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
16. Aug 2012
Timer, TThread.Queue oder eine Message sollte doch eigentlich klappen, da das so ist, als würde der Benutzer es (etwas später) selber machen :gruebel:
(Timer = überdimensionierte Message)
Wenn da intern nicht ebenfalls was zeitverzögert ausgelöst wird, dann könnte es schon passieren, daß dieses nach unserem Timer/Querue/Message erst zuschlägt.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
15. Aug 2012
Bei FM kann man ja nun ganz leicht einen knallroten Schein um die betreffenden Eingabeelemente machen.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
15. Aug 2012
Wegen der UI-Efekte bräuchte man doch einfach nur ein Neuzeichnen des UI veranlassen. :gruebel:
Ein Problem dabei ist ja, daß man dann anstatt in einem OnExit man nun in allen OnEnter, jeder einzelnen Komponente auf der Form prüfen müßte und das dann womöglich auch noch abhängig von der Komponente, welche davor fokusiert war,
denn man kann ja von Edit1 nicht nur zu Edit2 wechseln....
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
14. Aug 2012
Und so?
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if Edit1.Text<>'xx' then begin
ShowMessage('Error: <>xx');
Edit1.SetFocus();
Abort;
end;
end;