![]() |
AW: RadioButton seltsames Verhalten
1. ich kompiliere die Exe-Datei
2. ich klicke auf U2 3. ich klicke in U2 auf RB 4. ich klicke in U2 auf CL => RadioButton2 bleibt bei mir Checked und RadioButton1 Unchecked. Sehe da kein Problem. Ist also vielleicht ein Delphi 7-Problem. Unter Tokyo funktioniert es einwandfrei. Was den DoubleClick in ListBox2 angeht: die ListBox muss Einträge enthalten, damit DblClick ausgeführt wird. |
AW: RadioButton seltsames Verhalten
Hmm..
Unter D7 (6) ist das Verhalten von RadioButtons so, das sie Checked werden, wenn sie den Focus erhalten. Nun ist es bei deinem U1 so, dass es kein Control hat, außer dem RadioButton1, welches überhaupt den Focus (TabStop=True) erhalten kann. (Die SpeedButtons können per se kein Focus erhalten) Wenn Du somit U2 schießt, dann erhält das einzige Control auf U1 mit TabStop=True den Focus, somit der Radiobutton1, welcher dann gecheckt wird! Platziere einfach ein Edit auf U1 und setze den Focus darauf, bevor U2 aufgerufen wird.. Siehe da, der Wechsel funktioniert und beim Schließen von U2 auch noch immer vorhanden, da der Focus im Edit steht.. Das mit Der Listbox hat bereits a.def begündet.. |
AW: RadioButton seltsames Verhalten
Zitat:
|
AW: RadioButton seltsames Verhalten
Hallo,
ich danke Euch allen für Eure Tip's und Erklärungen. Das mit dem Focus wusste ich nicht. Die Situation mit Listbox2 in Form2 werde ich ausprobieren. Nochmals Danke Wendelin |
AW: RadioButton seltsames Verhalten
Hallo Wendelin
danke für dein Minimalprojekt. Ich kann das von dir beschriebene Verhalten für XE6 bestätigen. Wie du beschreibst: 1a. u2 - rb => r2 checked - ich klick auf form 1 => radio 1 checked [nicht gut] 1b. u2 - rb => r2 checked - f2 schliessen => radio 1 checked [nicht gut] Wenn du zuerst RadioButton2 klickst und dann 1a oder 1b ausführst, dann bleibt RadioButton2 wie erwartet aktiv: 2a. r2 checken - u2 - rb - r2 checked - ich klick auf form 1 => radio 2 bleibt aktiv [gut] 2b. r2 checken - u2 - rb => r2 checked - f2 schliessen => radio 2 bleibt aktiv [gut] Ich empfehle dir diesen Workaround: Füge in unit1 für Form1 hinzu:
Delphi-Quellcode:
Ändere in unit2 für Form 2:
procedure TForm1.RadioButton1Click(Sender: TObject);
begin RadioButton1.SetFocus; end; procedure TForm1.RadioButton2Click(Sender: TObject); begin RadioButton2.SetFocus; end;
Delphi-Quellcode:
procedure TForm2.SpeedButton2Click(Sender: TObject);
begin Form1.RadioButton2Click( self ); // NEU // Form1.RadioButton2.Checked := True; // BISHER end; In XE6 funktioniert es so - ich habe gerade keine Zeit für Tests in Delphi 7. NEU 1a. u2 - rb => r2 checked - ich klick auf form 1 => radio 2 checked [gut] 1b. u2 - rb => r2 checked - f2 schliessen => radio 2 checked [gut] Ich hoffe es funktioniert auch bei dir. Gruss Michael |
AW: RadioButton seltsames Verhalten
Oder einfach nach DX10.2 Starter wechseln :stupid:
|
AW: RadioButton seltsames Verhalten
Zitat:
In seinem Beispiel hatte er nur die Speedbuttons (können keinen Focus kriegen) und die Radiobuttons (Nur Nr 1 hatte TabStop=True) und Panels (auch kein Focus). Deshalb hat das einzige vorhandene Control mit Focusmöglichkeit diesen bekommen, wie das Formular wieder aktiviert wurde. Und zwar der RadioButton1... Der Einfachheit halber könnte er die Speedbuttons gegen Buttons austauschen und gut wärs.. |
AW: RadioButton seltsames Verhalten
Das Formular kann aber auch den Fokus annehmen oder irre ich mich? Ein einfaches SetFocus;
|
AW: RadioButton seltsames Verhalten
Holger Hallo
ja, ich weiss, was du meinst - Wendelin hat die TabStops gesetzt wie du schreibst. Wendelin kann aber wie beschrieben den Fokus auf RadioButton2 setzen und dann funktioniert's sicher auch mit seinem alten Delphi und RadioButton2 bleibt gecheckt, wenn Form2 geschlossen wird. Oder Wendelin schreibt seine Killer App und finanziert sich damit seine Weiterreise nach Tokyo :-D. Gruss Ich bin raus. Thema kocht über... |
AW: RadioButton seltsames Verhalten
Hm...
Zitat:
Du kannst zwar setFocus machen, aber wenn ein Control mit TabStop=true vorhanden ist, wird an dieses dann vom Container der Focus weiter gereicht. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz