Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Radiobutton-abfrage (https://www.delphipraxis.net/129294-radiobutton-abfrage.html)

Tailer 16. Feb 2009 16:26


Radiobutton-abfrage
 
Hi,

ich habe ein kleines Problem und hoffe, das mir jmd helfen kann, weil ich in der SuFu nichts gefunden habe.
Ich habe mit Delphi eine kleinen taschenrechner gebastelt. Dieser Funktioniert auch sehr gut. Jetzt habe ich mir überlegt, das ganze über RadioButtons zu gestallten, da man hier nur einen "berechnen" button benötigt und die ganzen funktionen in die "Auswahlliste"packen kann.

Jetzt zu meiner frage:
Wie kann ich die abfrage gestallten, welcher Punkt gewählt wurde und somit, welche Funktion wird ausgeführt.

Mein erster gedanke war für jeden Button eine extra If-Abfrage zu schreiben, da er dann aber bei der ersten schon feststellt, das diese nicht erfüllt ist sind somit die anderen auch falsch.

das habe ich bisher
Delphi-Quellcode:
function TForm1.Explode(var a: TStrArray; Border, S: string): Integer;
var
  S2: string;
begin
  Result := 0;
  S2 := S + Border;
  repeat
    SetLength(A, Length(A) + 1);
    a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);
    Delete(S2, 1,Length(a[Result] + Border));
    Inc(Result);
  until S2 = '';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  close;
end;

procedure TForm1.Button1Click(Sender: TObject);
var zahl1, zahl2, erg : Double;
begin
  Anz:=Explode(A,';',Edit1.Text);
  zahl1:= StrToFloat (A[0]);
  zahl2:= StrToFloat (A[1]);
  If RadioButton1.Checked = true then begin erg:=zahl1 / zahl2; end
  else begin erg:= zahl1 * zahl2; end;
  Label1.Caption:= '= '+FloatToStr(erg);
end;

end.
würd mich über Antworten sehr freuen.

MFG Patrick

DeddyH 16. Feb 2009 16:32

Re: Radiobutton-abfrage
 
Hallo und Willkommen in der DP :dp:,

wenn Du eine Radiogroup auf Deinem Formular und die Radiobuttons über deren Eigenschaft Items angelegt hast, kannst Du den ItemIndex mit case abfragen.
Delphi-Quellcode:
case rgTest.ItemIndex of
  0: ShowMessage('Erster Radiobutton');
  1: ShowMessage('Zweiter Radiobutton');
  2: ShowMessage('Dritter Radiobutton');
  //usw.
end;
[edit] Vielleicht auch 2 Sekunden :mrgreen: [/edit]

Cyf 16. Feb 2009 16:32

Re: Radiobutton-abfrage
 
ItemIndex der RadioGroup und statt verschachtelter if-Abfragen einmal case ItemIndex of

[Edit]Hmm, eine Sekunde :wink:

Tailer 16. Feb 2009 16:35

Re: Radiobutton-abfrage
 
Ahso, un woher weis delphi, die reihenfolge der items, bezieht sich das nur auf die radiobuttons?

danke

DeddyH 16. Feb 2009 16:40

Re: Radiobutton-abfrage
 
Die Reihenfolge legst Du doch selbst fest, das erste Item bekommt den Index 0, das zweite Index 1 usw.

nuclearping 16. Feb 2009 16:42

Re: Radiobutton-abfrage
 
In einer RadioGroup beziehen sich die Indexe nur auf die RadioButtons, die darin liegen.

Ansonsten vergib ALLEN RadioButtons einen aufsteigenden "Tag"-Wert. Dann mache EINEN OnClick Event für alle RadioButtons. Dort merkst du dir in einer (globalen) Variable den Tag des Senders (ClickedButtonTag := (Sender as TRadioButton).Tag) und kannst dann in deiner letztendlichen Funktion diese Variable per case abfragen.

DeddyH 16. Feb 2009 16:45

Re: Radiobutton-abfrage
 
Und was ich noch gerade sehe:
Zitat:

Delphi-Quellcode:
If RadioButton1.Checked = true

Bitte nie auf true abfragen, das kann fürchterlich daneben gehen. Stattdessen einfach die Kurzform verwenden:
Delphi-Quellcode:
If RadioButton1.Checked

DP-Maintenance 16. Feb 2009 17:04

DP-Maintenance
 
Dieses Thema wurde von "fkerber" von "Neuen Beitrag zur Code-Library hinzufügen" nach "VCL / WinForms / Controls" verschoben.
Diese Rubrik dient dem Vorschlagen neuer, fertiger Code-Schnipsel für die Code-Library. Da es sich hier um eine Frage handelt -> verschoben.
Bitte nächstes Mal darauf achten ;)

Tailer 16. Feb 2009 17:13

Re: Radiobutton-abfrage
 
Entweder ich find den itemindex nicht oder man hat ihn mir geklaut :-(

der sollte doch in den eigenschaften links stehn.

EDIT: hab zwar den item index von der Group gefunden, aber der steht auf -1 und ändern lässt sich der auch net.

DeddyH 16. Feb 2009 17:20

Re: Radiobutton-abfrage
 
Sind denn Items enthalten?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 Uhr.
Seite 1 von 2  1 2      

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