Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Fehler: Inkompatible Typen: 'string' und 'Integer' (https://www.delphipraxis.net/182955-fehler-inkompatible-typen-string-und-integer.html)

Nashy 29. Nov 2014 10:51

Fehler: Inkompatible Typen: 'string' und 'Integer'
 
Hallo,

ich schreibe gerade an einem Programm, dass in einem Editfeld Zufallszahlen ausgibt. Nach 5 Sekunden verschwindet das Editfeld und der Spieler muss in ein anderes Editfeld die ausgegebene Zahl Eintippen und auf Fertig klicken. Das Programm kontrolliert ob EditAusgabe=Edit1. Sollte die Eingabe nicht stimmen, möchte ich, dass dem Spieler im LabelAusgabe angezeigt wird: Du hast noch y Leben. Dies habe ich wie folgt programmiert:
Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
begin

if y=0 then
begin
  LabelAusgabe.Text := 'Verloren! Keine Leben mehr!' ;
  ButtonGo.Text := 'Nochmal spielen'     ;
  Timer2.Enabled := false;
  EditAusgabe.Text := '';

end
else
begin
  y:= y-1   ;
  Timer2.Enabled:= false;
  InttoStr (y);
  LabelAusgabe.Text:= 'Du hast noch' + y + 'Leben'

end;
end;
y hab ich als globale Variable definiert mit y: integer=3;

Wenn ich versuche das Programm abspielen zu lassen wird mir der Fehler angezeigt, das in der Zeile
Delphi-Quellcode:
LabelAusgabe.Text:= 'Du hast noch' + y + 'Leben'
Inkompatible Typen 'String' und 'Integer' vorkommen. Aber ich habe y ja zuvor mit IntToStr in ein String umgewandelt und somit in dieser Zeile überhaupt kein Integer mehr.. :roll:

Kann mir jemand sagen, wo das Problem ist, bzw. wie ich es beheben kann?

Vielen Dank!

Aviator 29. Nov 2014 10:56

AW: Fehler: Inkompatible Typen: 'string' und 'Integer'
 
IntToStr() gibt immer einen String zurück. Das heißt, dass du das Ergebnis einer Variable zuweisen musst, die vom Typ string ist.

Delphi-Quellcode:
var
  MyStr: string;
begin
  y := 3;
  MyStr := IntToStr(y);
  LabelAusgabe.Text:= 'Du hast noch ' + MyStr + ' Leben';
end;
Oder alternativ noch einfacher, da du nicht zwingend eine Zuweisung benötigst:

Delphi-Quellcode:
begin
  y := 3;
  LabelAusgabe.Text:= 'Du hast noch ' + IntToStr(y) + ' Leben';
end;
Und falls es wirklich ein Label ist, dann verwende bitte die Eigenschaft
Delphi-Quellcode:
LabelAusgabe.Caption
, denn Text gibt es bei einem Label nicht. :wink:

Nashy 29. Nov 2014 10:59

AW: Fehler: Inkompatible Typen: 'string' und 'Integer'
 
Hallo,

Danke für deine schnelle Antwort!

Stimmt, das habe ich übersehen.:oops:

Mein Delphi zeigt kein Problem mit der Eigenschaft Label.Text.. es funktioniert auch (ich benutze dieses Label auch, um Richtig/Falsch anzeigen zu lassen und das Funktioniert auch wenn ich es ablaufen lasse problemlos.

Edit: Habe eben nach der Eigenschaft Caption geschaut, diese gibt es bei meinem Label nicht. (Fehler: TLabel enthält kein Element Namens Caption)

Sir Rufo 29. Nov 2014 11:24

AW: Fehler: Inkompatible Typen: 'string' und 'Integer'
 
Ja, es wäre hilfreich, wenn man angibt mit welcher Delphi-Version und mit welchem Framework (VCL oder FMX) man arbeitet, denn da gibt es teils erhebliche Unterschiede.

Ach ja, wir können weder auf deinen Rechner noch in deinen Kopf schauen

Dejan Vu 29. Nov 2014 11:29

AW: Fehler: Inkompatible Typen: 'string' und 'Integer'
 
Ach, und ob 'LabelText' ein TLabel ist oder nicht, wäre vielleicht auch noch interessant. Nicht überall, wo Label draufsteht, ist auch Label drin.

Sir Rufo 29. Nov 2014 11:32

AW: Fehler: Inkompatible Typen: 'string' und 'Integer'
 
Zitat:

Zitat von Dejan Vu (Beitrag 1281564)
Ach, und ob 'LabelText' ein TLabel ist oder nicht, wäre vielleicht auch noch interessant. Nicht überall, wo Label draufsteht, ist auch Label drin.

Jupp, und dafür schuf man eine Dokumentation auf die man verweisen kann
Delphi-Referenz durchsuchenFMX.StdCtrls.TLabel oder Delphi-Referenz durchsuchenVCL.StdCtrls.TLabel
Im Zweifelsfall gibt man eben an, was man meint, dann wird es - seltsamerweise - klarer

OlafSt 29. Nov 2014 11:45

AW: Fehler: Inkompatible Typen: 'string' und 'Integer'
 
Och leute, nu gebt dem Anfänger doch mal ne Chance.

Ihr tut ja geradezu so, als müßte man mit dem ersten Öffnen eines Compilers (der ja offensichtlich noch reichlich unbekannt ist !) sofort alle Hintergrundinfos wissen, um in einem Forum Hilfe zu bekommen, ohne von oben herab behandelt zu werden.
Mit den geschätzten 3 Wochen Schul-Pascal in den Knochen (wir alle wissen, wie hoch das Niveau dann ist) hat man sowas jedenfalls nicht.

himitsu 29. Nov 2014 11:49

AW: Fehler: Inkompatible Typen: 'string' und 'Integer'
 
@Olaf: Es gibt aber auch nicht umsonst viele Grundlagentutorials und Dergleichen, oder stetzt man sich in der Fahrschule auch sofort ins Auto und fährt Richtung Autobahn?
Typen umwandeln muß man nicht nur in Delphi und grade bei Anfängern denkt man nicht sofort an ein aktuelles Delphi (D5, D7 :stipid:), wo es also schon praktisch wäre das man Dieses mit erwähnt.

Es ist zwar nicht schlimm sowas auch mal nicht zu wissen und zu fragen (jeder hat mal ein Brett vorm Kopf oder sieht den Wald vor lauter Bäumen nicht), aber es gibt auch einfache Wege umindestens die Grundlagen zu erfahren.

Nashy 29. Nov 2014 12:03

AW: Fehler: Inkompatible Typen: 'string' und 'Integer'
 
Entschuldigung. Ich wusste nicht, welche Informationen alles benötigt werden. Das Problem ist gelöst.
Ich benutze Delphi XE7 und Programmieren FXM.
Die Grundlagen haben wir in der Schule gelernt (unter anderem auch diese hier, aber ich hab mich leider nicht mehr daran erinnert).

himitsu 29. Nov 2014 12:15

AW: Fehler: Inkompatible Typen: 'string' und 'Integer'
 
Zitat:

Zitat von Nashy (Beitrag 1281570)
aber ich hab mich leider nicht mehr daran erinnert

In der Schule muß man eh zu viel lernen, da flutscht Unwichtiges halt schnell mal raus.

Schule und ein nagelneues XE7 ... Ist schon irgendwie cool und vom Gefühl her echt selten.
Darf man mal Fragen was das für eine Schule ist (die Art) und wie ihr da das Delphi bekommen habt? (selbstgekauft oder von denen gestellt bekommen, bzw. halt nur auf'm Schulrechner)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf