Autor Beitrag
mhxcm
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 54



BeitragVerfasst: 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:
ausblenden 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); //Anzeige der Anzahl der richtigen Aufgaben
              lblfalsch.caption := 'Falsch gelöst: '+inttostr(falsch);    // Anzeige der Anzahl der falschen Aufgaben
              //Hauptmenue.lblstatrichtig.caption:= 'Richtig gelöst: ' + inttostr((strtoint(Hauptmenue.lblstatrichtig.caption)) + richtig); //<-- mein Problem
              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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 54



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mi 06.02.08 09:49 
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 54



BeitragVerfasst: Mi 06.02.08 09:52 
user profile iconMiri 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mi 06.02.08 09:53 
user profile iconmhxcm 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 06.02.08 09:54 
Dann wird wohl in Hauptmenue.lblstatrichtig.caption einfach kein gültiger Integer-Wert, sondern "" drin stehen :nixweiss:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
FSS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83

Win 7 Professional 64Bit
Delphi 7 PE, Delphi 2005 PE, Turbo Delphi Explorer 2006
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mi 06.02.08 09:55 
kann ja auch nicht gehen:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 54



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 54



BeitragVerfasst: 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":

ausblenden 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:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure THauptmenue.btnstatClick(Sender: TObject);
begin
     [b]lblstatrichtig.Caption := '0';  //zuerst nochmal löschen dann neu schreiben
     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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Mi 06.02.08 10:42 
user profile iconmhxcm 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 54



BeitragVerfasst: 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") ;)