AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit 'if' 'then'

Ein Thema von DanNyy · begonnen am 15. Jan 2013 · letzter Beitrag vom 16. Jan 2013
Antwort Antwort
DanNyy

Registriert seit: 15. Jan 2013
1 Beiträge
 
#1

Problem mit 'if' 'then'

  Alt 15. Jan 2013, 22:12
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.


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;
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: Problem mit 'if' 'then'

  Alt 15. Jan 2013, 22:20
Hallo,

Zitat:
Funktionieren also keine 'if' Befehle mit Zeichen (+,-,*,/)?
Doch das funktioniert schon.

Zitat:
Mit Zahlen funktioniert es.
Schau Dir mal den Datentyp von c an und dann was Du vergleichen möchtest

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#3

AW: Problem mit 'if' 'then'

  Alt 15. Jan 2013, 22:53
... und
herzlich willkommen in der DP
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Problem mit 'if' 'then'

  Alt 15. Jan 2013, 23:32
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.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Problem mit 'if' 'then'

  Alt 16. Jan 2013, 00:34
Wie sollte eine Zahl auch + (bzw. '+') sein? Selbst mit dem von Popov genannten würde der Vergleich bestenfalls in einen Konvertierungfehler münden.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: Problem mit 'if' 'then'

  Alt 16. Jan 2013, 00:41
Du hast Recht, selbst da kann man nicht aus + eine Zahl durch StrToFloat machen. Das StrToFloat müßte dann weg.
  Mit Zitat antworten Zitat
evilboy

Registriert seit: 31. Jul 2004
Ort: Berlin
49 Beiträge
 
Delphi 2009 Enterprise
 
#7

AW: Problem mit 'if' 'then'

  Alt 16. Jan 2013, 03:57
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……
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Problem mit 'if' 'then'

  Alt 16. Jan 2013, 06:28

Der von Popov genannte Datentyp, der alles (außer Zeigern und strukturierten Daten) fassen kann...
Jetzt bin ich aber neugierig geworden, was ist das den für ein Datentyp?
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#9

AW: Problem mit 'if' 'then'

  Alt 16. Jan 2013, 07:42
Jetzt bin ich aber neugierig geworden, was ist das den für ein Datentyp?
Variant.

Der ... Datentyp, der alles (außer Zeigern ... )
Falsch.
varUnknown und varByRef ist ein Pointer , varOleStr ein PWideChar und varArray ein PVarArray . Alles Zeiger.

Zitat:
...ist zwar sehr mächtig, andererseits kann man damit Unsinn anrichten... Also Finger weg von V……
Ne, is klar.
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:02 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