Inkompatible Typen: Char und String
Guten Abend,
habe heute angefangen meinen Taschenrechner zu programmieren und komme direkt nicht mehr weiter.. Hier der Quellcode:
Delphi-Quellcode:
Bei der Zeile
procedure TForm1.Button4Click(Sender: TObject);
var eingabe,loesung: string; ergebnis: double; zeichen:char; begin ergebnis:= 0; loesung:= edit2.text; eingabe:=edit1.Text; zeichen:= copy(loesung,length(loesung),1); delete(loesung,length(loesung),1); case zeichen of '+': ergebnis:=strtofloat(loesung)+strtofloat(eingabe); '-': ergebnis:=strtofloat(loesung)-strtofloat(eingabe); end; edit2.text:=floattostr(ergebnis); end; end.
Delphi-Quellcode:
zeigt es mir den oben genannten Fehlercode an. Wie könnte ich es anders schreiben, damit der Fehler beseitigt wird?
zeichen:= copy(loesung,length(loesung),1);
Danke im voraus für die Antworten. Delp |
AW: Inkompatible Typen: Char und String
Versuch mal
Delphi-Quellcode:
bei älteren Delphiversionen sollte auch
Zeichen:= Char(copy(loesung,length(loesung),1));
Delphi-Quellcode:
funktionieren
Zeichen:= copy(loesung,length(loesung),1)[0];
|
AW: Inkompatible Typen: Char und String
Danke für die fixe Antwort.
Beides funktioniert leider nicht. Bei erster Variante erscheint die Fehlermeldung "Ungültige Typumwandlung" und bei der zweiten Variante: "[Fehler] Unit1.pas(65): E2157 Auf Element 0 kann nicht zugegriffen werden - 'Length' oder 'SetLength' verwenden". Habe übrigens Delphi 2005 |
AW: Inkompatible Typen: Char und String
Du willst das letzte Zeichen haben?
Delphi-Quellcode:
Zeichen:= loesung[length(loesung)]
|
AW: Inkompatible Typen: Char und String
Danke Bernhard, hat geklappt!
Hab irgendwo gelesen gehabt, dass man dafür copy verwendet. schönen Abend noch |
AW: Inkompatible Typen: Char und String
Zitat:
Delphi-Quellcode:
lauten :oops:
Zeichen:= copy(loesung,length(loesung),1)[1];
|
AW: Inkompatible Typen: Char und String
Stimmt, dass hätte jetzt auch geklappt :D
Danke euch beiden |
AW: Inkompatible Typen: Char und String
Nur mal so aus Interesse: wo liegt denn in neueren Delphi-Versionen der Unterschied zwischen
Delphi-Quellcode:
und
Copy(EinString, Length(EinString), 1)[1]
Delphi-Quellcode:
:?: Nach meinem Verständnis ist das Ergebnis der Copy-Funktion ein String, ob ich nun auf den indiziert zugreife oder auf das Original, welche Rolle spielt das?
EinString[Length(EinString)]
|
AW: Inkompatible Typen: Char und String
Hab da noch eine Frage zu den Fehler: [Fehler] Unit1.pas(61): E2012 Ausdruckstyp muss BOOLEAN sein
Meine Plus-Taste:
Delphi-Quellcode:
Wie ihr vielleicht schon mitbekommen habt, will ich einen Rechner mit 2 Edit-Feldern programmieren. (ähnlich dem Windows-Rechner)
procedure TForm1.Button1Click(Sender: TObject);
var eingabe,loesung: string; ergebnis: double; zeichen: char; begin eingabe:=edit1.text; if edit2.Text:='' then begin edit2.Text:=edit1.Text+'+'; edit1.text:='' end else ergebnis:=0; loesung:= edit2.text; zeichen:= copy(loesung,length(loesung),1)[1]; delete(loesung,length(loesung),1); case zeichen of '+': ergebnis:=strtofloat(loesung)+strtofloat(eingabe); '-': ergebnis:=strtofloat(loesung)-strtofloat(eingabe); '*': ergebnis:=strtofloat(loesung)*strtofloat(eingabe); '/': ergebnis:=strtofloat(loesung)/strtofloat(eingabe); end; case zeichen of '+': edit2.Text:=floattostr(ergebnis)+ '+'; '-': edit2.Text:=floattostr(ergebnis)+ '-'; '*': edit2.Text:=floattostr(ergebnis)+ '*'; '/': edit2.Text:=floattostr(ergebnis)+ '/'; end; edit1.Text:=floattostr(ergebnis); end; Nun soll geprüft werden, ob in den oberen Feld bereits eine Zahl mit Operator steht. Wenn ja, dann soll mit einem erneuten drücken eines Operators bereits das Ergebnis in das untere Feld eingetragen werden. Ich glaube das Programm dürfte somit laufen, nur wie bekomme ich diese Zeile
Delphi-Quellcode:
so hin, dass kein Fehler mit Boolean auftritt?
if edit2.Text:='' then
Edit: Habs selber hinbekommen. Einfach ne Variable drauß gemacht :) |
AW: Inkompatible Typen: Char und String
Was steht in Zeile 61?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz