Entwickler-Ecke

Sonstiges (Delphi) - Fragen Programm.


Finaldragon - So 05.11.06 12:24
Titel: Fragen Programm.
Hi,

Ich will ein Programm machen wo verschiedene Fragen kommen also:

Es gibt 10 Fragen wenn man auf ja oder nein drückt kommt man jedoch trotzdem zur gleichen nächsten Frage aber am Ende soll für alles ne Andere Antwort rauskomen das heisst ich habe so geklickt: ja,nein,ja,ja,nein,nein,ja,nein,nein,ja
dann kommt raus sie sind dumm
und zum beispiel bei ja,ja,ja,nein,nein,ja,nein,ja,ja,nein
kommt raus sie sind schlau
dies dient nur zum beispiel

nun mein problem mit ein totaler anfänger der null plan hat also ich weiss zwar wie cih in delphi nen fenster mach und zwei buttons und frage aber was ich bein onclick auf den einen btuton tun muss und bei dem anderen und so weiter hab cih kein plan oder wie dann die andere frage erscheinen soll etc.


GTA-Place - So 05.11.06 12:36

Da würde ich mit einem record arbeiten:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
type
  TQuestion = record
    Quest:  String;
    Answer: Boolean;
  end;

var
  Questions: Array[1..10of TQuestion;

Kurze Erklärung: In einem record kann man während der Laufzeit des Programmes verschiedene Dinge speichern und sie später wieder auslesen. Ich habe nun ein Array genommen, um 10 verschiedene Fragen und deren Antwort zu speichern. Die Antwort ist vom Typ Boolean, d.h. wenn der Spieler ja auswählt, setzt du Answer auf True, ansonsten auf False.

Nun brauchst du noch eine Variable vom Typ Integer (global, also ganz oben bei var), die nennst du ActQuest und setzt sie in OnCreate des Forms auf 1.

Im OnCreate definierst du nun noch deine Fragen und setzt alle Antworten auf False:

Delphi-Quelltext
1:
2:
Questions[1].Quest  := 'Kannst du Programmieren?';
Questions[1].Answer := False;

Anschließend zeigst du die 1. Frage z.B. in einem Label an (Label1.Caption := Questions[1].Quest).

Wenn nun der Spieler auf einen Button klickt, müsste das hier ausgelöst werden (OnClick):

Delphi-Quelltext
1:
2:
inc(ActQuest);
Label1.Caption := Question[ActQuest].Quest;

Davor aber noch das Ergebnis speichern, also Answer auf True setzen, wenn ja angegklickt wurde. Bei nein musst du nichts machen, da Answer ja schon auf False gesetzt wurde.

Soweit mal der Anfang. Vllt. kriegste die Auswertung selbst hin.


Finaldragon - So 05.11.06 12:52

Sorry aber ich hab echt garkeine ahnung ^^ zum beispiel dieses:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
type
  TQuestion = record
    Quest:  String;
    Answer: Boolean;
  end;

var
  Questions: Array[1..10of TQuestion;


wo soll das hin? und wo sollen die anderen hin? jetzt denkste echt warscheinlich was bin ich für ein n00b^^ ich gebs zu!

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt


GTA-Place - So 05.11.06 12:56

Du kannst ja die Suche benutzen: Suche in der Entwickler-Ecke RECORD


Finaldragon - So 05.11.06 13:07

Erstmal : Die Suche hat 1742 Ergebnisse ergeben. öÖ

und Zweitens wenn ich des noch nichtmal kapiere wenn mir jemand auf meine eigene frage antwortet dann kapiere ich es sicher nicht wenn es bei anderen geantwortet wurde die meistens sogar ne andere frage hatten


GTA-Place - So 05.11.06 13:11

Geh doch einfach mal zum 2. Suchergebnis. Weiter unten in dem Thread habe ich ein Beispiel mit einem record. Da siehste genau, wo der record hin muss.


Finaldragon - So 05.11.06 13:35

ok ich glaub du kannst es nich verstehen da du dich mit delphi zu gut auskennst :(


GTA-Place - So 05.11.06 13:41

Jetzt guck doch mal meinen Beitrag in dem anderen Thread an:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
type  
  TUserInfo0 = record  
    usri0_name: LPWSTR;  
  end;  
  PUserInfo0 = ^TUserInfo0;  


  function NetUserGetInfo(servername: LPCWSTR; username: LPCWSTR; level: DWORD; bufptr: Pointer): NET_API_STATUS; stdcall;  

var  
  Form1: TForm1;  

implementation  

function NetUserGetInfo; external 'netapi32.dll' name 'NetUserGetInfo';  

{$R *.dfm}  
 
procedure TForm1.FormCreate(Sender: TObject);  
...

Und da oben siehst du einen record. Wenn du jetzt F12 in Delphi drückst, dann siehst du z.B.

Delphi-Quelltext
1:
2:
var
  Form1: TForm1;

Vergleich das mal mit meinem Beispiel und du siehst, wo der record hin muss.


Logikmensch - Mo 06.11.06 11:04

Finaldragon:

Also, zunächst einmal: Es ist keine Schande, wenn Du etwas nicht weißt. Wir haben alle mal klein angefangen. Aber es macht echt keinen Sinn, wenn Du Deine Pläne höher steckst als Dein Wissen es momentan zulässt.
Resignation bringt Dich nicht weiter, sondern nur fleißiges, ruhiges Auseinandersetzen mit den Grundlagen. Ohne das wird es schwierig, irgendwie zu helfen. Wenn ich eine Buch-Empfehlung aussprechen darf: Es gibt genügend gute Bücher über Delphi-Grundlagen.

Viel Erfolg!


Martok - Mo 06.11.06 11:42

Und es gibt da noch den Crashkurs von Christian, hier:
http://www.christian-stelzmann.de/index_tutorials_crashkurs.html