![]() |
Problem mit 'if' 'then'
Ich habe folgendes Problem.
Ich möchte ein 'if' 'then' Befehl erstellen bekomme aber immer einen Fehler, dass Delphi dies nicht compilieren kann. Funktionieren also keine 'if' Befehle mit Zeichen (+,-,*,/)? Mit Zahlen funktioniert es. Wenn es im falschen Forumbereich ist sorry. Mein erster Beitrag in dem Forum. :D
Code:
procedure TForm12.Button15Click(Sender: TObject);
var a,b,c,d: Real; begin a:=StrToFloat(Edit2.Text); b:=StrToFloat(Edit1.Text); c:=StrToFloat(Edit3.Text); if c='+' then d:=a+b; Edit1.Text:=FloatToStr(d); end; |
AW: Problem mit 'if' 'then'
Hallo,
Zitat:
Zitat:
Gruß |
AW: Problem mit 'if' 'then'
... und
herzlich willkommen in der DP:) |
AW: Problem mit 'if' 'then'
c sollte vom Typ String oder Char sein (String ist eine Zeichenkette zwischen 0 und X Zeichen, Char ist immer ein Zeichen).
'+' ist ein String der Länge 1 oder eben ein Char. So wie es jetzt ist, ist c vom Typ Real, so dass du eine Zahl mit einem String vergleichst. Das geht nicht. Es gibt einen Typ der von Sich aus Real auch Strings machen kann, aber den erwähne ich nicht. Der entscheidet immer von alleine was für ein Typ er ist. Aber das will der Lehrer evtl. nicht wissen. |
AW: Problem mit 'if' 'then'
Wie sollte eine Zahl auch + (bzw. '+') sein? Selbst mit dem von Popov genannten würde der Vergleich bestenfalls in einen Konvertierungfehler münden.
|
AW: Problem mit 'if' 'then'
Du hast Recht, selbst da kann man nicht aus + eine Zahl durch StrToFloat machen. Das StrToFloat müßte dann weg.
|
AW: Problem mit 'if' 'then'
Und dann müsste die Variable c, in die Edit3.Text direkt ausgelesen wird, natürlich ein String sein und kein Real :)
Der von Popov genannte Datentyp, der alles (außer Zeigern und strukturierten Daten) fassen kann, ist zwar sehr mächtig, andererseits kann man damit Unsinn anrichten. So heißt es auf einer Website "there are penalties in performance, potentials for run time errors and poor code clarity". Also Finger weg von V…… :) |
AW: Problem mit 'if' 'then'
Zitat:
|
AW: Problem mit 'if' 'then'
Zitat:
Zitat:
Delphi-Quellcode:
und
varUnknown
Delphi-Quellcode:
ist ein
varByRef
Delphi-Quellcode:
,
Pointer
Delphi-Quellcode:
ein
varOleStr
Delphi-Quellcode:
und
PWideChar
Delphi-Quellcode:
ein
varArray
Delphi-Quellcode:
. Alles Zeiger.
PVarArray
Zitat:
Finger weg von PChar, Interface, COM und -ach was sag ich- Programmierung allgemein. Alles mächtig aber gefährlich. Delphi ist zwar sehr mächtig, andererseits kann man damit Unsinn anrichten. Also Finger weg von D…… :) Richtig ist: Ohne Variants keine Datenbankzugriffe, kein Reflection / RTTI-Gedöns, (fast) kein OLE, COM usw. Richtig ist aber auch: Was man mit konkreten Datentypen erledigen kann, sollte und braucht man nicht mit Variants zu erledigen. Übrigens: So richtig langsam sind Variants nun auch nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz