Autor Beitrag
01Detlef Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85



BeitragVerfasst: Fr 17.01.03 17:24 
hallo,

ich habe jetzt mal zum testen versucht das array "auf meine art" zu füllen,
doch nun nach dem compilieren zeigt das from weder fragen noch den Button an?????

also das keine Fragen angezeigt werden, leigt vielleicht daran, dass die nummer nicht übergeben wird??

ausblenden Quelltext
1:
Label_Frage.Caption:=Frage[nummer].Frage;					


im array habe ich das so gemacht:
ausblenden Quelltext
1:
TFrage[0].Frage:= 'Was ist ...';					


Hast du eine Idee?

Danke Detlef
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 17.01.03 18:05 
Kannst Du evtl. noch was mehr Quelltext posten? Auf jeden Fall aber mal eine Info, wo der von Dir gepostete Quelltext aufgerufen wird.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
01Detlef Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85



BeitragVerfasst: Fr 17.01.03 19:00 
natürlich!

also,
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var Frage array[0..14] of TFrage; // global gespeichert


  TFrage[0].Frage:= 'Was ist ...'; 
  TFrage[0].a:='...'; 
  TFrage[0].b:='..'; 
  TFrage[0].c:='..'; 
  TFrage[0].d:='..'; 
  TFrage[0].antwort:=a; 
// in oncreate Prozedur

Label_Frage.Caption:=Frage[nummer].Frage; // in der buttonprozedur, mit den zwei versuchen verbunden


ich hoffe das reicht, wenn nicht musste dich melden!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 17.01.03 19:20 
Und das akzeptiert er so? Das wundert mich. Denn der Befehl

ausblenden Quelltext
1:
TFrage[0].Frage:='...';					


ergibt eigentlich keinen Sinn, denn damit weist Du nicht einem Element des Arrays einen Wert zu, sondern sprichst mit TFrage den Datentyp an. Was TFrage[0] in dem Zusammenhang sein könnte, ist mir völlig schleierhaft. Auf jeden Fall sollte es heißen:

ausblenden Quelltext
1:
Frage[0].Frage:='...';					


Und bei den übrigen natürlich ebenfalls das 'T' weg.

An den richtigen Stellen steht das ganze meiner Meinung schon. Interessant wäre es noch, welche Werte Du in OnCreate und dem ButtonClich der Variable 'nummer' zuweist. Im OnCreate solltest Du der 'nummer' den Wert zuweisen und beim ButtonClick jedesmal, wenn Du eine neue Frage anzeigen willst, um eines erhöhen, bevor Du die Labels neu befüllst.

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
01Detlef Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85



BeitragVerfasst: Sa 18.01.03 14:44 
also,

wenn ich das T von TFrage wegnehme, weiss er nicht mehr was a..d sein soll und zeigt immer Fehler an!
(das verstehe ich nicht, dein argument das t wegzulassen ist logisch!)

z.B
ausblenden Quelltext
1:
Frage[0].Antwort:=a;// er weiss nicht was a ist! muss es vielleicht 'a' heißen?					


Und Nummer weise ich in oncreate den wert null zu und in der button-prozedur wird es um eins erhöht!
ich bin mir nicht sicher, wie das programm weiss, dass die 'nummer'
das in den Klammern ist Frage[5].Frage....; ich habe nummer nur als integer deklariert!

Danke Detlef
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 18.01.03 14:56 
Dass er nicht weiß, was a ist, ist klar. Woher auch? Es ist ja nirgends definiert. Es muss wirklich 'a' heißen.

Zitat:
ich bin mir nicht sicher, wie das programm weiss, dass die 'nummer'
das in den Klammern ist Frage[5].Frage....; ich habe nummer nur als integer deklariert!
Im ButtonClick muss es doch auch Frage[nummer] und nicht Frage[5] heißen. Nur im OnCreate verwendets Du "richtige" Zahlen!

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
01Detlef Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85



BeitragVerfasst: Sa 18.01.03 19:00 
So weit ist es in ordnung, nun akzepiert der Compiler nicht die Klammern:
ausblenden Quelltext
1:
Frage[nummer].Frage...					


er möchte () diese Klammern haben?

detlef
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 19.01.03 12:34 
Poste mal von der Prozedur, wo der Fehler kommt, den gesamten Quelltext mit Kopf und allem.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
01Detlef Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85



BeitragVerfasst: So 19.01.03 13:51 
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
var
  Form1: TForm1;
  versuche, nummer : Integer;

procedure TForm1.Button1Click(Sender: TObject);
var antwort : String;
begin
  Antwort:= edit1.text[1];
  IF antwort = TFrage[nummer].Antwort THEN
  BEGIN
    Versuche := 0;
    INC (nummer);
    Label1.Caption:= Frage[nummer].Frage;
    with Frage[nummer] do
    BEGIN
      Label2.Caption:=a;
      Label3.Caption:=b;
      Label3.Caption:=c;
      Label4.Caption:=d;
    END;
  END ELSE..
01Detlef Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85



BeitragVerfasst: So 19.01.03 14:02 
Ach der Fehler leigt glaube ich darin, dass ich das array nicht global deklariert habe?!?!?

Detlef
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 19.01.03 14:05 
Ja! Das Array muss auf jeden Fall global deklariert werden. Woher sollten die anderen Prozeduren sonst wissen, dass es überhaupt existiert. Ach ja, in der IF-Abfrage steht noch ein "T" vor der Frage.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
01Detlef Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85



BeitragVerfasst: Mo 20.01.03 20:12 
Also das Programm läuft jetzt, es gibt noch ein paar Problemchen, aber die werde ich versuchen zu beheben!

Nun mich reizt es trotzdem, mit dem einlesen der datei zu arbeiten!
kannste mir vielleicht mal ein paar stichwörter sagen, was ich mir mal angucken sollte, um mir das nötige wissen anzutrainieren?? Weil, wenn ich jetzt alles fragen muss, ist für keinen vorteilhaft!

Aber auf jeden Fall schon mal vielen Dank für deine Hilfe bis hier hin, ich habe dadurch viel neues gelernt!
Danke Detlef
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 20.01.03 20:21 
Schön, dass es jetzt klappt.

Das Wichtigste, was Du brauchst, um die Daten in deinem Quiz einzlesen und mit einem anderen (noch zu schreibenden) Programm zu schreiben, habe ich schon mal gepostet. Das waren zwei getrennte Quellcodes für das Lesen und das Schreiben einer solchen Datei. Du solltest diese Quellcodes durchgehen und (evtl. mit der Hilfe) verstehen, was dort eigentlich passiert.

Wenn Du irgendwas nicht verstehst, kannst Du hier im Forum suchen und wenn Du dann nichts findest, einfach mal posten.

Wenn Du dann weist, wie die beiden Codes funktionieren, kannst Du Dich dran machen, sie (a) in dein Quizprogramm und (b) in das noch zu schreibende Programm einzubauen.

Wichtig: beschäftige Dich auch mal mit "dynamischen Arrays".

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
01Detlef Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 85



BeitragVerfasst: Fr 31.01.03 15:11 
hallo,

ich habe jetzt noch ein problem, wenn ich das programm starte erscheint die erste Frage nicht!?!?!?

Also:
ausblenden Quelltext
1:
2:
3:
Frage[0].Frage:='...'; 
Frage[0].a:='::';
....


Also die labels werden nicht gefüllt, die Antwort kann ich geben und komme auch zur nächsten Frage, nur halt die Frage steht nicht da??!!?

p.s an den dynamischen arrays bin ich dran
Danke Detlef
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 31.01.03 15:14 
Könnte es daran liegen, dass die Fragen ja erst beim ButtonClick geladen werden (wenn die Antwort richtig war)? Der wird bei der ersten Frage aber nicht ausgeführt, deswegen wird dann das Label nicht gefüllt. Am besten schreibst Du direkt hinter den Code, in dem das Array gefüllt wird noch mal einen Code, der den Labels die erste Frage zuordnet.

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".