AGB  ·  Datenschutz  ·  Impressum  







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

RadioButtonArray

Ein Thema von t0mmy · begonnen am 17. Jan 2012 · letzter Beitrag vom 17. Jan 2012
Antwort Antwort
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#1

RadioButtonArray

  Alt 17. Jan 2012, 15:22
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.
  Mit Zitat antworten Zitat
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#2

AW: RadioButtonArray

  Alt 17. Jan 2012, 15:25
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;
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: RadioButtonArray

  Alt 17. Jan 2012, 15:29
.. 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:

showMessage('Radiobutton: '+IntToStr((sender as TRadiobutton).tag)); Grüße
Klaus
Klaus

Geändert von Klaus01 (17. Jan 2012 um 15:33 Uhr)
  Mit Zitat antworten Zitat
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#4

AW: RadioButtonArray

  Alt 17. Jan 2012, 15:30
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
  Mit Zitat antworten Zitat
Benutzerbild von Coffeecoder
Coffeecoder

Registriert seit: 27. Apr 2011
242 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: RadioButtonArray

  Alt 17. Jan 2012, 15:41
Jetzt habe ich ein eigenes Panel mit RadioButtons und ich bräuchte halt so eine funktion mit .ItemIndex
Du kannst eine eigene Klasse definieren wo du ein Attribut ItemIndex hast.
Coffeecoder
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

AW: RadioButtonArray

  Alt 17. Jan 2012, 15:52
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).
Die Reihenfolge ist ja auch durch die Reihenfolge in RadioGroup.Items definiert.
Um z.B. die ersten beiden Eintröge zu vertauschen:
RadioGroup1.Items.Exchange(0,1); Sortieren wäre über einen kleinen Umweg auch möglich.
Man müsste halt wissen wozu du die Reihenfolge ändern musst...
Andreas
  Mit Zitat antworten Zitat
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#7

AW: RadioButtonArray

  Alt 17. Jan 2012, 16:04
@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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: RadioButtonArray

  Alt 17. Jan 2012, 16:58
Das Problem is ich müsste meine Prozedur bei jedem OnKlick-Ereignis von den RadioButtons reinschreiben
Nein, Du musst das nur einmal schreiben und kannst das Event dann allen RadioButtons zuweisen. Allerdings musst Du dann innerhalb der Methode den Sender auswerten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: RadioButtonArray

  Alt 17. Jan 2012, 18:09
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;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:57 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