AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RadioButton seltsames Verhalten

Ein Thema von wendelin · begonnen am 25. Apr 2017 · letzter Beitrag vom 27. Apr 2017
Antwort Antwort
Seite 2 von 2     12   
a.def
(Gast)

n/a Beiträge
 
#11

AW: RadioButton seltsames Verhalten

  Alt 26. Apr 2017, 12:03
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.

Geändert von a.def (26. Apr 2017 um 12:07 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#12

AW: RadioButton seltsames Verhalten

  Alt 26. Apr 2017, 15:59
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..
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#13

AW: RadioButton seltsames Verhalten

  Alt 26. Apr 2017, 17:50
Zitat:
Platziere einfach ein Edit auf U1 und setze den Focus darauf, bevor U2 aufgerufen wird..
Und was, wenn man das Edit nicht braucht, oder es den Fokus nicht erhalten soll?
  Mit Zitat antworten Zitat
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#14

AW: RadioButton seltsames Verhalten

  Alt 26. Apr 2017, 18:07
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
Wolfgang
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: RadioButton seltsames Verhalten

  Alt 26. Apr 2017, 18:50
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:
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
  RadioButton1.SetFocus;
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
  RadioButton2.SetFocus;
end;
Ändere in unit2 für Form 2:

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
Michael Gasser
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#16

AW: RadioButton seltsames Verhalten

  Alt 26. Apr 2017, 19:14
Oder einfach nach DX10.2 Starter wechseln
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#17

AW: RadioButton seltsames Verhalten

  Alt 26. Apr 2017, 19:37
Zitat:
Platziere einfach ein Edit auf U1 und setze den Focus darauf, bevor U2 aufgerufen wird..
Und was, wenn man das Edit nicht braucht, oder es den Fokus nicht erhalten soll?
Generell sollte EIN Control auf der Form Vorhanden sein, welches den Fokus kriegen kann. Dies kann auch ein Button sein.

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..
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#18

AW: RadioButton seltsames Verhalten

  Alt 26. Apr 2017, 20:09
Das Formular kann aber auch den Fokus annehmen oder irre ich mich? Ein einfaches SetFocus;
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: RadioButton seltsames Verhalten

  Alt 26. Apr 2017, 20:57
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 .

Gruss

Ich bin raus. Thema kocht über...
Michael Gasser
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#20

AW: RadioButton seltsames Verhalten

  Alt 27. Apr 2017, 05:15
Hm...

Das Formular kann aber auch den Fokus annehmen oder irre ich mich? Ein einfaches SetFocus;
Die Form ist ein Container.
Du kannst zwar setFocus machen, aber wenn ein Control mit TabStop=true vorhanden ist, wird an dieses dann vom Container der Focus weiter gereicht.


Oder Wendelin schreibt seine Killer App und finanziert sich damit seine Weiterreise nach Tokyo .
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz