Wo ist der Fehler in meinem Code?
Hallo, ich habe ein Problem, ich bin gerade in der Programmiersprache Lazarus am programmieren, ich mache gerade einen Stromkostenvergleichsrechner, nun mein Problem:
IF(realEvu1GeskMitTBonus<realEvu2GeskMitTBonus) Then Begin LBLSparen.Caption := realEvu1GeskMitTBonus-realEvu2GeskMitTBonus end;
(Bei den Fehlermeldungen steht : Error: Incompatible type for arg no.1: Got "Real", expected "TTranslateString")
Was ist daran falsch?
2 Antworten
In dem gegebenen Code wird versucht, den Wert der Variablen
realEvu1GeskMitTBonus
mit dem Wert der Variablen
realEvu2GeskMitTBonus
zu vergleichen. Dabei wird jedoch ein Fehler gemacht, indem der Rückgabetyp der Subtraktion, ein numerischer Typ, als Eingabeparameter für die
LBLSparen.Caption
-Eigenschaft verwendet wird, die einen Texttyp erwartet.
Um den Fehler zu beheben, müssen Sie den numerischen Wert in einen Text konvertieren, bevor Sie ihn als Eingabeparameter für die
LBLSparen.Caption
-Eigenschaft verwenden. Dazu können Sie die
ToString
-Methode verwenden, um den numerischen Wert in einen Text zu konvertieren. Der Code sollte dann wie folgt aussehen:
Copy code
if (realEvu1GeskMitTBonus < realEvu2GeskMitTBonus) { LBLSparen.Caption := (realEvu1GeskMitTBonus - realEvu2GeskMitTBonus).ToString(); }
In diesem Beispiel wird der numerische Wert, der durch die Subtraktion der Variablen
realEvu1GeskMitTBonus
und
realEvu2GeskMitTBonus
berechnet wird,
Lazarus ist eine Entwicklungsumgebung. Die Programmiersprache heißt Object Pascal. Aber das nur am Rande.
Der Fehler ist ja völlig klar. Du hast zwei Real-Werte (die Variablennamen beginnen ja schon mit "real") und willst das Ergebnis einer Caption zuweisen. Eine Caption ist aber ein String und kein Real. Du musst also das Ergebnis der Subtraktion zunächst in einen String umwandeln (FloatToStr-Funktion):
LBLSparen.Caption := FloatToStr(realEvu1GeskMitTBonus-realEvu2GeskMitTBonus);
Kannst du mir den Code bitte schreiben, ich verzweifle echt noch daran.... Währe super!