| Autor |
Beitrag |
mhxcm
      
Beiträge: 54
|
Verfasst: Mi 06.02.08 09:40
Moin mal wieder...
In meinem Mathe-Lern-Programm wird mir nach der Berechnung der Aufgaben innerhalb von zwei Labels angezeigt, wieviele richtig und wieviele falsch gelöst wurden. Jetzt möchte ich zu Statistik - Zwecken die Anzahl der insgesamt richtig und falsch gelösten Aufgaben in meinem Hauptmenü anzeigen lassen. Hier der kleine Quellcode wo dies an die Unit Hauptmenue übergeben werden soll:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| begin edtergebnis.enabled:=false; btnnaechsteaufgabe.Enabled := false; lblrichtig.caption := 'Richtig gelöst: '+inttostr(richtig); lblfalsch.caption := 'Falsch gelöst: '+inttostr(falsch); lblrichtig.visible := true; lblfalsch.visible := true; end; |
Laufe leider dann in dem Bereich den ich einfach mal als "Comment" rausgenommen hab auf einen Fehler, wenn ich ihn halt im Prog laufen lasse. Das Programm läuft bis zu dem Zeitpunkt wo diese Werte übergeben werden sollen. Nehme ich den "Ausgegrenzten" Teil raus läuft es ohne Probleme.
Kann mir jemand helfen?
mfg Markus
_________________ 1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101")
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Mi 06.02.08 09:45
Hallo
Du willst uns den genauen Fehler nicht zufälligerweise auch verraten  ?
Gruß Frank
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
mhxcm 
      
Beiträge: 54
|
Verfasst: Mi 06.02.08 09:49
Na klar doch^^ voll verpeilt....
Also nach dem Aufgabenblock, wo das was im obigen Quellcode druchgeführt werden soll, bekommme ich folgende Meldung:
" Im Projekt.... ist eine Exception der Klasse EConvertError aufgetreten. Meldung: "" ist kein gültiger Integerwert.
Weiß nicht warum... dachte hätte alles richtig konvertiert....??? 
_________________ 1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101")
|
|
Miri
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Mi 06.02.08 09:49
Delphi-Quelltext 1: 2:
| Hauptmenue.lblstatrichtig.caption:= 'Richtig gelöst: ' + inttostr((strtoint(Hauptmenue.lblstatrichtig.caption)) + richtig); |
Die eine Klammer könnte zu viel sein...
Sonst wäre halt echt der Fehler mal interessant...
Edit:
Sorry, stimmt nicht, hast ja vorne zwei... das hatte ich übersehen...
_________________ Anonymes Eckenkind
|
|
mhxcm 
      
Beiträge: 54
|
Verfasst: Mi 06.02.08 09:52
Miri hat folgendes geschrieben: |
Die eine Klammer könnte zu viel sein...
|
Moin, wenn ich die Klammer entferne meckert Delphi direkt beim Compiler das ne Klammer fehlen würde :" ( erwartet aber ; gefunden"
_________________ 1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101")
|
|
Miri
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Mi 06.02.08 09:53
mhxcm hat folgendes geschrieben: |
"Im Projekt.... ist eine Exception der Klasse EConvertError aufgetreten. Meldung: "" ist kein gültiger Integerwert.
|
Dann steht zu der Zeit in der Caption nichts drin... und "", also nix, ist halt auch nix, was man in Integer konvertieren könnte...
Versuch's mit TryStrToInt oder StrToIntDef...
_________________ Anonymes Eckenkind
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 06.02.08 09:54
Dann wird wohl in Hauptmenue.lblstatrichtig.caption einfach kein gültiger Integer-Wert, sondern "" drin stehen 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
FSS
      
Beiträge: 83
Win 7 Professional 64Bit
Delphi 7 PE, Delphi 2005 PE, Turbo Delphi Explorer 2006
|
Verfasst: Mi 06.02.08 09:54
Kann es sein, dass in dem Label schon etwas steht wie "Richtig gelöst: 25"?
Wenn du dann versuchst das mit StrToInt() umzuwandeln geht das nicht, da der Teil "Rictig gelöst: " kein gültiger Integerwert ist.
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Mi 06.02.08 09:55
kann ja auch nicht gehen:
Delphi-Quelltext 1:
| Hauptmenue.lblstatrichtig.caption := 'richtig' + Zahl; |
Das ist nunmal durhc den String am Anfang keine zahl, die du mit strtoint wandeln kannst.
Leg dir eine public-Var an, die nur deine Gesamtanzhal der richtigen Elemente enthält, mit der kannst du dann problemlos rechnen und zusammen mit einem Text in ein Label schreiben.
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
mhxcm 
      
Beiträge: 54
|
Verfasst: Mi 06.02.08 09:59
@FSS: Ja steht es wenn ich den zweiten Block löse.... bin ja auch doof^^
@Keldorn: das werde ich dann jetzt mal versuchen.... was man alles so übersehen kann....
_________________ 1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101")
|
|
mhxcm 
      
Beiträge: 54
|
Verfasst: Mi 06.02.08 10:13
Danke für eure Antworten, da war der nötige Denkanstoß dabei ^^
habs jetzt so gelöst.... in meiner unit wo die berechnungen stattfinden hab ich eine variable "statrichtig" und eine "statfalsch":
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| begin edtergebnis.enabled:=false; btnnaechsteaufgabe.Enabled := false; lblrichtig.caption := 'Richtig gelöst: '+inttostr(richtig); lblfalsch.caption := 'Falsch gelöst: '+inttostr(falsch); [b] statrichtig:= statrichtig + richtig; statfalsch:= statfalsch + falsch;[/b] |
dort gebe ich dann die werte rein.... also anzahl richtig anzahl falsch und im Hauptmenü dann wieder aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure THauptmenue.btnstatClick(Sender: TObject); begin [b]lblstatrichtig.Caption := '0'; lblstatrichtig.caption := 'Richtig gelöst: ' + inttostr(statrichtig);[/b] lblstatrichtig.visible := true; lblstatfalsch.visible :=true; end; |
weiß zwar nicht ob das eine Elegante lösung ist, aber mit TryStrToInt oder StrToIntDef kann ich leider nichts anfangen....
mfg
_________________ 1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101")
|
|
Miri
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Mi 06.02.08 10:42
mhxcm hat folgendes geschrieben: |
weiß zwar nicht ob das eine Elegante lösung ist, aber mit TryStrToInt oder StrToIntDef kann ich leider nichts anfangen....
|
Na, jetzt hast du ja eine Lösung... aber als Hinweis für die Zukunft: Befehle eintippen und F1 drücken... alternativ hier im Forum suchen, die Begriffe tauchen ständig auf 
_________________ Anonymes Eckenkind
|
|
mhxcm 
      
Beiträge: 54
|
Verfasst: Mi 06.02.08 10:54
ok, ich werde es mir merken.... die F1 Taste steht ja schließlich nicht unter "vom aussterben bedrohte Tasten" oder wie war das noch?^^
_________________ 1100101 heißt ich Liebe dich ich möchte bei dir sein! (search Song:"Das Modul - 1100101")
|
|