![]() |
Ratespiel, Zahlen 1-9 mit RadioButtons
Ich möchte, dass der Wert (Caption) des angeklickten RadioButtons in die Variable radiobutton geschrieben wird.
Wie kann ich da vorgehen? Vielen Dank schonmal!
Delphi-Quellcode:
unit Main;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) LblZahl: TLabel; BtnEnde: TButton; BtnNeu: TButton; BtnPruefe: TButton; LblHeadline: TLabel; RBtn1: TRadioButton; RBtn2: TRadioButton; RBtn5: TRadioButton; RBtn3: TRadioButton; RBtn4: TRadioButton; RBtn6: TRadioButton; RBtn8: TRadioButton; RBtn9: TRadioButton; RBtn7: TRadioButton; procedure FormCreate(Sender: TObject); procedure BtnPruefeClick(Sender: TObject); procedure BtnEndeClick(Sender: TObject); procedure BtnNeuClick(Sender: TObject); private zahl, radiobutton: integer; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin randomize; zahl := random(8) + 1; {Jetzt: Alle RadioButtons entchecken} LblZahl.Caption := 'Errate mich!'; end; procedure TForm1.BtnPruefeClick(Sender: TObject); begin radiobutton := {StrToInt vom RBtn.Caption, wo RBtn.Checked = true ist} if radiobutton < zahl then LblZahl.Caption := IntToStr(radiobutton) + '? Nee, größer' else if radiobutton > zahl then LblZahl.Caption := IntToStr(radiobutton) + '? Nee, kleiner' else begin LblZahl.Caption := 'Richtig! Es ist die ' + IntToStr(zahl); ShowMessage('Alter, du hast es voll drauf!'); end; end; procedure TForm1.BtnNeuClick(Sender: TObject); begin Form(sender); end; procedure TForm1.BtnEndeClick(Sender: TObject); begin close; end; end. |
Re: Ratespiel, Zahlen 1-9 mit RadioButtons
Hi, ich bin selbst neu in Delphi, aber ich denke, dass ich das schaffe.
Übernehme keine Garantie :-D Also ich würde radiobutton erstmal public deklarieren:
Delphi-Quellcode:
Dann würde ich bei jedem RadioButton ne If-Clause machen:
...
end; var Form1: TForm1; radiobutton, zahl: Integer; implementation {$R *.dfm} ...
Delphi-Quellcode:
If RadioButton1.Checked then radiobutton := 1;
If RadioButton2.Checked then radiobutton := 2; ...
Delphi-Quellcode:
Müsste so eigentlich klappen.
procedure TForm1.BtnPruefeClick(Sender: TObject);
begin // Hier zeile entfernt if radiobutton < zahl then LblZahl.Caption := IntToStr(radiobutton) + '? Nee, größer' else if radiobutton > zahl then LblZahl.Caption := IntToStr(radiobutton) + '? Nee, kleiner' else begin LblZahl.Caption := 'Richtig! Es ist die ' + IntToStr(zahl); ShowMessage('Alter, du hast es voll drauf!'); end; end; |
Re: Ratespiel, Zahlen 1-9 mit RadioButtons
So vielleicht?
Delphi-Quellcode:
[edit] Alternativ könntest Du auch eine RadioGroup nehmen, die RadioButtons über die Eigenschaft Items definieren und den ItemIndex der RadioGroup auswerten. [/edit]
type
TForm1 = class(TForm) ... private zahl, radiobutton: integer; procedure SetRadioButton(Sender: TObject); ... end; ... procedure TForm1.SetRadioButton(Sender: TObject); begin radiobutton := StrToInt(TRadioButton(Sender).Caption); end; procedure TForm1.FormCreate(Sender: TObject); var i: integer; begin for i := 0 to ComponentCount - 1 do if (Components[i] is TRadioButton) then TRadioButton(Components[i]).OnClick := SetRadioButton; end; |
Re: Ratespiel, Zahlen 1-9 mit RadioButtons
Hallo,
setze bei jedem Radiobutton das property Tag im Objectinspector, erzeuge eine OnClick für den 1. Radiobutton, setze diese OnClick für alle anderen und dann etwa so
Delphi-Quellcode:
procedure TForm1.OnRadioButton1Click(Sender: TObject);
var RB: TRadioButton; begin if Sender is TRadioButton then begin RB:= TRadioButton(Sender); Label.Caption:= IntToStr(RB.Tag) end; end; Heiko |
Re: Ratespiel, Zahlen 1-9 mit RadioButtons
Das sollten genug Möglichkeiten sein :D
|
Re: Ratespiel, Zahlen 1-9 mit RadioButtons
Heyho!
Danke erstmal, ich werd's gleich mal probieren. @ gasty: Das wollte ich nicht machen, da es zu viel Schreibarbeit ist und es sicher viel einfacher geht ;) Wieso muss ich die Variablen public deklarieren? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 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