Wo ist der Fehler in meinem Code?

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);