Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi RadioGroup OnClick Problem (https://www.delphipraxis.net/29000-radiogroup-onclick-problem.html)

Joergie 2. Sep 2004 13:16


RadioGroup OnClick Problem
 
Ich habe eine RadioGroup und habe ein Ereignis auf OnClick hinterlegt. Das Funktioniert auch, wenn ich aber auf das Item clicke, welches selectiert ist, wird dir Prozedur nicht ausgeführt!

Was kann ich machen, damit auch beim clicken auf das gesetzte item der RadioGroup das OnClick-Event ausgeführt wird?

danke
~joerg

yankee 2. Sep 2004 14:06

Re: RadioGroup OnClick Problem
 
habe gerade kein Delphi zu hand und eigentlich auch keine Ahnung, aber gibt es da kein OnMouseDown oder so?

teebee 2. Sep 2004 14:21

Re: RadioGroup OnClick Problem
 
TRadioGroup hat keine Mouse-Events. Die kann man zwar mit einer Cracker-Klasse veröffentlichen und selber setzen, dann hat man aber das Problem, dass das MouseUp nur feuert, wenn man auf dem Control selber ist, d.h. auf dem Rahmen oder der Caption. Sobald man auf einen der Radio-Buttons klickt, fängt der das MouseUp ab und gibt es nicht an die RadioGroup weiter. Da die RadioGroup ihre Buttons selbst verwaltet hat man auf das OnMouseUp der einzelnen Buttons leider keinen Zugriff.
Am einfachsten wäre vielleicht eine normale GroupBox zu nehmen, die RadioButtons alle von Hand draufzupappen und dann das OnMouseUp jedes Buttons selber zu setzen.

Gruß, teebee

Joergie 2. Sep 2004 14:51

Re: RadioGroup OnClick Problem
 
Danke soweit! Das Problem ist, das dass Programm dynamisch die Elemente in die RadioGroup schreibt. So funktioniert das leider nicht mit dem Vorschlag von teebee. :cry:

~joerg

alcaeus 2. Sep 2004 14:55

Re: RadioGroup OnClick Problem
 
Hi joergie!

Du kannst Komponenten auch zur Laufzeit erstellen und aufs Form stellen, verwende dazu einfach mal hier die Suche, das Problem hatten schon mehrere.
Nun zu deinem spezifischen Fall. Warum musst du auch einen Klick auf die ausgewählte RadioBox abfangen? Normalerweise braucht man das nicht. Falls es unbedingt sein muss, kannst du auch die Eigenschaft ItemIndex der RadioGroup auf -1 stellen, somit ist kein Radio ausgewählt. Will der Benutzer nun eins Auswählen, so muss er ja zwangsläufig drauf klicken. Nichtsdestotrotz seh ich keinen Sinn darin, den Klick auf das ausgewählte Radio abzufangen :gruebel:

Greetz
alcaeus

Joergie 2. Sep 2004 15:13

Re: RadioGroup OnClick Problem
 
Sorry, ich habe mich nicht richtig ausgedrückt. Halt neu hier...

soweit läuft mein Programm. Das Problem ist, das der benutzer etwas auswählen kann, damit wird dann was berechnet...
dannach kann er die Radiogroup wieder aufrufen und soll das vorher ausgwählte vorfinden...
sozusagen lasse ich eine routine durchlaufen, die sucht, an welcher stelle das vorher ausgewählte steht.

for i:= 0 to RadioGroup.Items.Count-1 do
begin
if Auswahl = RadioGroup.Itmes[i] then
begin
RadioGroup.ItemsIndex := i;
Label1.Caption := IntToStr(i);
end;
end;

das ItemsIndex wird auch auf den jeweiligen Wert gesetzt (hab ich mit einem label gechecked) aber der Punkt ist nicht da! :wall:

~joerg

teebee 2. Sep 2004 15:25

Re: RadioGroup OnClick Problem
 
Zitat:

Zitat von Joergie
Das Problem ist, das dass Programm dynamisch die Elemente in die RadioGroup schreibt.

Dann müsstest Du halt die RadioButtons einzeln dynamisch erzeugen und selbst in der GroupBox positionieren. Ist ein bisschen aufwendiger, aber so dramatisch auch wieder nicht. Aber anders wirst Du den Effekt IMHO nicht erreichen können.

Gruß, teebee

yankee 2. Sep 2004 18:03

Re: RadioGroup OnClick Problem
 
Zitat:

Zitat von Joergie
Delphi-Quellcode:
for i:= 0 to RadioGroup.Items.Count-1 do
begin
  if Auswahl = RadioGroup.Itmes[i] then
  begin
    RadioGroup.ItemsIndex := i;
    Label1.Caption := IntToStr(i);
  end;
end;

1. Setze doch mal Delphi-Tags
2. warum nimmst du nicht einfach
Delphi-Quellcode:
RadioGroup.ItemIndex :=Auswahl
Label1.Caption := IntToStr(i);
??????
Wäre doch viel kürzer!

Joergie 3. Sep 2004 09:06

Re: RadioGroup OnClick Problem
 
genau das versuche ich zu machen, aber leider ist kein Item der RadioBox gesetzt! Es ist kein Punkt zu sehen, obwohl
RadioGroup1.ItemIndex ein Wert zugeordnet ist!
Woran kann das liegen?

~joerg


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 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