AGB  ·  Datenschutz  ·  Impressum  







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

Wer wird Millionär

Ein Thema von Dilip · begonnen am 9. Mär 2016 · letzter Beitrag vom 13. Mär 2016
Antwort Antwort
Dilip

Registriert seit: 3. Mär 2016
10 Beiträge
 
#1

Wer wird Millionär

  Alt 9. Mär 2016, 17:26
Hey, ich habe vor mit Delphi Wer wird Millionär zu programmieren. Komme aber nicht weiter..

Und zwar hab ich die oberfläche so gestaltet, dass die Frage in ein Label geschrieben werden soll und die Antworten auf den 4 Buttons erscheinen. Auf einem anderen Label wird der momentane Geldbetrag gezeigt. Mit einem BitBtn startet das ganze.
Wenn ich auf den BitBtn klicke, kommt die erste Frage, mit Antwortmöglichkeiten, Geldbetrag 0€

Aber wie schaffe ich es jetzt, wenn ich den Button mit der richtigen Antwort anklicke, das die nächste Frage gestellt wird.
Und wenn ein anderer Button angeklickt wird, mit einer falschen antwort, dass kein geld gewonnen wurde ( oder eben 500€ )

Mein anfang sieht also so aus: ( Beispielfrage )

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Label1.Caption := 'Was ist 2 + 2?';
Button1.Caption := '4';
Button2.Caption := '1';
Button3.Caption := '5';
Button4.Caption := '3';


Ich habe es mit
if Button1.Click then
Label1.Caption := 'Welches chemische Element hat Chlor?'
Button1.Caption := ...
...
..

Aber ich bekomme die Fehlermeldung in der Zeile if Button1.Click then - es muss angeblich Datentyp boolean sein..
Könnte mir jemanden bei einem Ansatz behilflich sein?
Und ich möchte die Frage erstmal mit im Programm haben, nicht einlesen lassen ( auch wenn das wahrscheinlich einfacher ist)
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#2

AW: Wer wird Millionär

  Alt 9. Mär 2016, 18:10
Zu Button(x).Click musst Du eine Ereignisbehandlungsprozedur zuweisen. Die wird dann aufgerufen, wenn der Button gedrückt wird.

In der Prozedur kannst Du dann Deinen Code unterbringen.

Es wäre in der Tat einfacher, Dir zumindest eine Liste mit Fragen und Antwortmöglichkeiten zu machen, in der Du jeweils "weiterschalten" kannst.
  Mit Zitat antworten Zitat
Dilip

Registriert seit: 3. Mär 2016
10 Beiträge
 
#3

AW: Wer wird Millionär

  Alt 9. Mär 2016, 20:56
und was muss ich da dann eingeben
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
721 Beiträge
 
Delphi 12 Athens
 
#4

AW: Wer wird Millionär

  Alt 9. Mär 2016, 21:20
Doppelklick auf den Button. Dann wird die die Ereignisprocedure angelegt. Da kannst du dann reinschreiben, was bei einem Klick auf den Button passieren soll, z.B,. das was du zuerst bei deinem if Button1.Click then probiert hast.
  Mit Zitat antworten Zitat
Headbucket

Registriert seit: 12. Dez 2013
Ort: Dresden
172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Wer wird Millionär

  Alt 10. Mär 2016, 07:27
Die Antworten von Mikkey und bcvs werden aber langfristig nicht zum Ziel führen. Außer du möchtest nur 4 Fragen stellen und legst die Antworten stets auf unterschiedliche Buttons

Du solltest dir also erstmal ein Konzept erstellen. Natürlich brauchst du auch die Ereignisproecedure(n) der Buttons, jedoch darst du dort natürlich nicht die nächste Frage stellen, sondern lediglich bemerkbar machen, dass dieser Button gedrückt wurde. In einer anderen Procedure muss dann entschieden werden, ob der gedrückte Button zu der aktuellen Frage die richtige Antwort enthält.

Überlege dir also erstmal, wie du einen "Katalog" mit Fragen und Antworten erstellen kannst.
Dann überlegst du dir eine Routine, wie du die Frage und die dazugehörigen Antworten auf die Buttons bekommst.
Zuletzt schreibst du z.B. eine Routine, die aufgerufen wird, wenn einer der Buttons gedrückt wird. Hier kannst du z.B. über die "Tag" Eigenschaft herausfinden, welcher Button gedrückt wurde.
Nun muss noch entschieden werden, ob die richtige Antwort gedrückt wurde.

So könnte man das relativ einfach und überschaubar aufziehen. Natürlich gibt es immer noch elegantere Lösungen.

Grüße
  Mit Zitat antworten Zitat
Dilip

Registriert seit: 3. Mär 2016
10 Beiträge
 
#6

AW: Wer wird Millionär

  Alt 10. Mär 2016, 16:14
An die Tag Variante hab ich auch schon gedacht
Das ist doch case ... of , oder?

Aber ich weiß nicht was ich dazwischen schreiben soll
muss ich da Button1.Click Button1 TButton1... hinschreiben? oder eine neue Variable definieren?

ich hab es mal kurz versucht und habe einfach ein Formular 1 Button und 1 Edit


procedure TForm1.Button1Click(Sender: TObject);

begin
case TButton(Sender).Tag of
1: Edit1.Text := 'Falsch';
2: Edit1.Text := 'Falsch' ;
3: Edit1.Text := 'Richtig';
end;
end;

Normalerweise müsste doch mit 1x drücken falsch, beim 2x auch falsch und beim 3x mal richtig in der Edit komponente stehen, das Programm startet auch ohne Fehlermeldung, schreibt aber nichts in die Edit

Geändert von Dilip (10. Mär 2016 um 16:25 Uhr)
  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 04:50 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 by Thomas Breitkreuz