| Autor |
Beitrag |
01Detlef 
      
Beiträge: 85
|
Verfasst: 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??
Quelltext 1:
| Label_Frage.Caption:=Frage[nummer].Frage; |
im array habe ich das so gemacht:
Quelltext 1:
| TFrage[0].Frage:= 'Was ist ...'; |
Hast du eine Idee?
Danke Detlef
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: 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 
      
Beiträge: 85
|
Verfasst: Fr 17.01.03 19:00
natürlich!
also,
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.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 17.01.03 19:20
Und das akzeptiert er so? Das wundert mich. Denn der Befehl
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:
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 
      
Beiträge: 85
|
Verfasst: 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
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.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: 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 
      
Beiträge: 85
|
Verfasst: Sa 18.01.03 19:00
So weit ist es in ordnung, nun akzepiert der Compiler nicht die Klammern:
Quelltext 1:
| Frage[nummer].Frage... |
er möchte () diese Klammern haben?
detlef
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: 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 
      
Beiträge: 85
|
Verfasst: So 19.01.03 13:51
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 
      
Beiträge: 85
|
Verfasst: So 19.01.03 14:02
Ach der Fehler leigt glaube ich darin, dass ich das array nicht global deklariert habe?!?!?
Detlef
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: 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 
      
Beiträge: 85
|
Verfasst: 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.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: 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 
      
Beiträge: 85
|
Verfasst: Fr 31.01.03 15:11
hallo,
ich habe jetzt noch ein problem, wenn ich das programm starte erscheint die erste Frage nicht!?!?!?
Also:
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.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: 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".
|
|