![]() |
RadioButton seltsames Verhalten
Hallo,
ich habe zwei Units. In Form1 sind unter anderem RadioButton1 und Radiobutton2 vorhanden. RadioButton1 ist auf
Delphi-Quellcode:
und Radiobutton2 auf
Checked := True
Delphi-Quellcode:
eingestellt.
Checked := False
In Form2 versuche ich nun mit
Delphi-Quellcode:
die Einstellungen von RB1 & RB2 zu ändern.
Form1.Radiobutton2.Checked := True
Solange Form2 nur verschoben wird (damit ich Form1 besser sehe) hat alles in meinem Sinn funktioniert! Wenn ich aber Form2 schließe, ist die ursprüngliche Einstellung der RB's wieder da. Warum , oder was mache ich falsch? Wendelin |
AW: RadioButton seltsames Verhalten
.. wann/wo werden denn die "Startwerte" der Radiobuttons in Form1 gesetzt?
Grüße Klaus |
AW: RadioButton seltsames Verhalten
zwei Form1? :stupid:
|
AW: RadioButton seltsames Verhalten
Zitat:
|
AW: RadioButton seltsames Verhalten
Zitat:
|
AW: RadioButton seltsames Verhalten
Zitat:
|
AW: RadioButton seltsames Verhalten
Hallo Klaus01,
beide Radiobuttons(Properties)in Form1 sind direkt im Objektinspektor gesetzt worden. Interessant ist der Umstand, daß in der selben Procedur (in Form2), aus der heraus die Radiobuttons(Properties) in Form1 geändert werden sollen zwei weitere Buttons in Form1 angesprochen werden und die darunterliegenden Procs korrect ausgeführt werden, auch wenn am Ende der Proc Form2 geschlossen bzw. Form2 mit
Delphi-Quellcode:
nicht sichtbar ist.
Form2.visible := False
Wendelin |
AW: RadioButton seltsames Verhalten
In welcher Form und in welcher Prozedur genau werden die RadioButtons denn gesetzt? Ist es ein Standardevent des Formulars?
Sicher, dass es nur eine Stelle gibt an denen die gesetzt werden? |
AW: RadioButton seltsames Verhalten
Diese Diskussion tönt eher nach Quizsendung. A ist passiert und nun raten die LeserInnen eine Geschichte dazu ;-).
Könntest du nicht ein minimales Projekt erstellen mit diesen RadioButtons und dann checken, ob es immer noch passiert? Und wenn es geschieht: Welche Delphiversion/Buildnummer verwendest du? Poste deinen Code - oder lade dein Minimalprojekt rauf und es gibt sicher mindestens drei Leute, welche dein Projekt laden. Hast du's mit Debuggen versucht? Du könntest doch einen Breakpoint setzen genau dort, wo der Wert "checked" gesetzt (BM_SETCHECK) wird. Ich nehme an, dass du dadurch dem Problem sehr rasch auf die Spur kommen wirst. Nebenbei: Ich würde darauf verzichten, in einer "Formular A Unit" Komponenten eines anderen Formulars B aufzurufen. Ich weiss, das hat nix mit dem von dir geschilderten Problem zu tun. |
AW: RadioButton seltsames Verhalten
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Michael II,
ich habe ein kleines Testprogramm geschrieben, welches die Situation relativ gut wiedergibt. Allerdings klappt es jetzt auf Form2 - Listbox2 - DoubleKlick überhaupt nicht. Ich habe daher noch auf Form2 den Speedbutton RB gesetzt (nur zum Test).Jetzt wird RB2 umgeschaltet auf TRUE. Wenn ich aber Form2 schließe -> RB2 := FALSE. Wendelin |
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 21:10 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