![]() |
RadioButtonArray
Hallo
Ich habe 6 Radio Buttons. Die habe ich zu einem Array zusammengefasst. Jetzt möchte ich gern wissn wenn beliebig eins selectiere welches das ist sprich die nummer bekomme. |
AW: RadioButtonArray
Also ich habs jetzt mal mit einer schleife probier aber geht das nicht einfacher
for-schleif-Variante:
Delphi-Quellcode:
var
a: Integer; begin for a := 0 to 5 do begin if RadioButtonArray[a].Checked = True then ShowMessage('RadioButton: '+IntToStr(a)); end; |
AW: RadioButtonArray
.. Du könntest jedem Radiobutton als Tag die Position im Array geben.
Den Tag kannst Du dann später wieder auslesen. edit: eine gleiche onClick Ereignisbehandlung für alle Radiobuttons. In der onClick Routine:
Delphi-Quellcode:
Grüße
showMessage('Radiobutton: '+IntToStr((sender as TRadiobutton).tag));
Klaus |
AW: RadioButtonArray
Also ich hätte eine RadioGroup nehmen können und dann mit .ItemIndex abfragen, aber die Reihenfolge konnt ich in der RadioGroup nicht mit dem Indexwert beeinflussen (andere geschichte).
Jetzt habe ich ein eigenes Panel mit RadioButtons und ich bräuchte halt so eine funktion mit .ItemIndex |
AW: RadioButtonArray
Zitat:
|
AW: RadioButtonArray
Zitat:
Um z.B. die ersten beiden Eintröge zu vertauschen:
Delphi-Quellcode:
Sortieren wäre über einen kleinen Umweg auch möglich.
RadioGroup1.Items.Exchange(0,1);
Man müsste halt wissen wozu du die Reihenfolge ändern musst... |
AW: RadioButtonArray
@shima leider nicht das was ich suche.. kennt die option schon.
Eine andere Frage ich habe diese RadioButtons auf einem Panel jetzt möcht eich halt wenn ich einen von diesen RadioButtons anklicke das eine Prozedure angearbeitet wird. Das Problem is ich müsste meine Prozedur bei jedem OnKlick-Ereignis von den RadioButtons reinschreiben aber das möcht ich nicht. ich such sowas wie bei RadioGroup das OnKlick ereignis für meine "selbstgebastelte" RadioGroup. |
AW: RadioButtonArray
Zitat:
|
AW: RadioButtonArray
Mein Vorschlag wäre:
Alle RadioButtons in eine Liste (TList) packen
Delphi-Quellcode:
TForm1 = class( TFrom )
... procedure MyRadioButtonsClick( Sender : TObject ); private fRadioList : TList; ... end; procedure TForm1.FormCreate( Sender : TObject ); begin fRadioList := TList.Create; // Alle RadioButtons in die Liste aufnehmen, dabei auf die gewünschte Reihenfolge achten fRadioList.Add( MyRadioButton1 ); MyRadioButton1.OnClick := MyRadioButtonsClick; fRadioList.Add( MyRadioButton2 ); MyRadioButton2.OnClick := MyRadioButtonsClick; ... end; procedure TForm1.FormDestroy( Sender : TObject ); begin // Die RadioButtons werden über den Owner freigegeben, wir müssen also nur die Instanz der Liste befreien fRadioList.Free; end; procedure TForm1.MyRadioButtonsClick( Sender : TObject ); var RadioButtonIndex : Integer; begin // Als Sender wird die Instanz mitgegeben, die dieses Event aufruft - also einer von den RadioButtons // Und da die in der Liste stehen sollten, bekommen wir nun so den Index heraus RadioButtonIndex := fRadioList.IndeOf( Sender ); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 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