Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Stevie,
4. Okt 2011
Nope, erst muss das ButtonDown abgearbeitet, dann der Focus gelöscht werden.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Stevie,
4. Okt 2011
Hatte es auf Windows XP gethemed auch nicht. Und unter Windows 7 Classic Design auch nicht. Nur wenn Aero an ist.
Hab mal einen Workaround, den ich noch testen muss:
procedure TDateTimePicker.WMLButtonDown(var Message: TWMLButtonDown);
begin
inherited;
if not Focused then
Perform(WM_KILLFOCUS, 0, 0);
end;
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Stevie,
4. Okt 2011
Scheint, es handelt sich dabei um ein TDateTimePicker spezifisches Problem. Ich hab 2 davon, und bei dem einen will ich verhindern, dass der Fokus verloren geht, wenn kein gültiges Datum eingetragen ist. Klicke ich nun auf den anderen Picker, bekommt der irgendwie den Fokus. Klicke ich auf ein Edit oder einen Button, bekommen diese Controls erwartungsgemäß nicht den Fokus.
Ganz einfach...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Stevie,
4. Okt 2011
Wie kann ich einen Fokuswechsel aus einem Control heraus verhindern? Dabei ist wichtig, dass das Control das selber verhindern kann.
Ich hab mir mal das CMExit genommen und dort ein SetFocus reingesetzt. Das funktioniert auch augenscheinlich wenn man mit Tab das nächste Control anspringen will. Allerdings nicht, wenn ich explizit mit der Maus in ein anderes Control hineinklicke, zumindest...