![]() |
Hilfe schleifen Ende
ich hab ma ne frage ich möchte eine schleife beenden aber er schreibt :Oparator ist auf diesen Operandentyp nicht anwend bar würde mich freuhen wenn ihr mir helfen könntet eine lösung zu finden :
Delphi-Quellcode:
ps. der fehler muss i-wo am ende sein vielen dank für die antworten im vorraus
procedure TForm1.BerechnenButtonClick(Sender: TObject);
var SeiteA, SeiteB, SeiteC, s, Flaeche, Umfang :Real; begin SeiteA:=StrToFloat(SeiteAEdit.Text); SeiteB:=StrToFloat(SeiteBEdit.Text); SeiteC:=StrToFloat(SeiteCEdit.Text); Umfang:=SeiteA + SeiteB + SeiteC; s:=Umfang/2; if SeiteA+SeiteB<SeiteC then write1.caption:=('Berechnung nicht Möglich') else begin Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC)); FlaecheEdit.Text:=FloatToStr(Flaeche); UmfangEdit.Text:=FloatToStr(Umfang); end and if SeiteA+SeiteC<SeiteB then write1.caption:=('Berechnung nicht Möglich') else begin Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC)); FlaecheEdit.Text:=FloatToStr(Flaeche); UmfangEdit.Text:=FloatToStr(Umfang); end and if SeiteB+SeiteC<SeiteA then write1.caption:=('Berechnung nicht Möglich') else begin Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC)); FlaecheEdit.Text:=FloatToStr(Flaeche); UmfangEdit.Text:=FloatToStr(Umfang); end end; end. [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Re: Hilfe schleifen Ende
Welche Schleife?
|
Re: Hilfe schleifen Ende
Zitat:
der delphi-debugger sagt dir sicher ne Zeile, würde mich wundern, wenn nicht. ansonsten tipp ich mal blind auf die beiden Zeilen:
Delphi-Quellcode:
//edit
and if SeiteA+SeiteC<SeiteB then
... and if SeiteB+SeiteC<SeiteA then Zitat:
![]() HTH Frank |
Re: Hilfe schleifen Ende
wie meinst du das sry ich bin noch son noob xD na ich weiß einfach nich wie ich das ende mache damit ich das compilieren kann
|
Re: Hilfe schleifen Ende
es kommt drauf an, was du machen willst...
"and" verknüpft 2 Bedingen/Werte logisch, willst du einfach nur eine neue If-Abfrage anfangen muss das letzte mit nem Semikolon abgeschlossen werden (also end;). steht aber in jedem Tutorial :) HTH Frank |
Re: Hilfe schleifen Ende
na er sagt:Oparator ist auf diesen Operandentyp nicht anwendbar
und zeigt auf diese zeile: end end;<---- end. na ich will eig das sich die alle auf eine prozedur beziehen und dann funzt das ja nicht mehr oder? |
Re: Hilfe schleifen Ende
mal davon abgesehen, dass bei dem end davor auch das Semikolon fehlt, hast du scheinbar das "and" noch drin
Gruß Frank |
Re: Hilfe schleifen Ende
Ich glaube du willst so etwas:
Delphi-Quellcode:
if (SeiteA+SeiteB<SeiteC) or (SeiteA+SeiteC<SeiteB) or (SeiteB+SeiteC<SeiteA) then
write1.caption:=('Berechnung nicht Möglich') else begin Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC)); FlaecheEdit.Text:=FloatToStr(Flaeche); UmfangEdit.Text:=FloatToStr(Umfang); end; |
Re: Hilfe schleifen Ende
Zitat:
|
DP-Maintenance
Dieses Thema wurde von "SirThornberry" von "Fragen / Anregungen zur DP" nach "Object-Pascal / Delphi-Language" verschoben.
|
Re: Hilfe schleifen Ende
oh danke dayBoy jetzt funzt es aber kannst du mir vllt noch helfen was ich machen muss damit es dann nicht weiter drin stehen bleibt in dem label wenn ich dann wirklich funktionnierende werte hab?
|
Re: Hilfe schleifen Ende
Zitat:
Zitat:
Mitdenken erwünscht :roll: Gruß Frank |
Re: Hilfe schleifen Ende
ok sry divBoy0 ehm nya mein Probs wechseln das habsch jetz alles hingekriegt aber jetzt weiß ich nicht was ich machen soll ich hätte gerne das wenn:
Delphi-Quellcode:
das ich noch mher nach then schreiben könnte also das mehreres geschieht wenn halt die bedingungen für if erfüllt erden z.b das er den umfang trotz dem berechnet sowie in das Flaeche editfenster einen - schreibt geht das denn?
if (SeiteA+SeiteB<SeiteC) or (SeiteB+SeiteC<SeiteA) or (SeiteA+SeiteC<SeiteB) then
write1.caption:=('Berechnung nicht möglich!') else begin Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC)); FlaecheEdit.Text:=FloatToStr(Flaeche); UmfangEdit.Text:=FloatToStr(Umfang); write1.Caption:=(' ') end end; ich dachte mirs so aber funzt nich:
Delphi-Quellcode:
[edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit]
if (SeiteA+SeiteB<SeiteC) or (SeiteB+SeiteC<SeiteA) or (SeiteA+SeiteC<SeiteB) then
write1.caption:=('Berechnung nicht möglich!'); UmfangEdit.Text:=FloatToStr(Umfang); FlaecheEdit.Text:=('-'); else begin Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC)); FlaecheEdit.Text:=FloatToStr(Flaeche); UmfangEdit.Text:=FloatToStr(Umfang); write1.Caption:=(' ') end end; end. |
Re: Hilfe schleifen Ende
Mehrere Befehle (eine Sequenz) werden in Delphi mit begin..end umschlossen.
|
Re: Hilfe schleifen Ende
Delphi-Quellcode:
Dieses von dir geschrieben müsste verändert werden, wie von mkinzler schon gesagt.
if (SeiteA+SeiteB<SeiteC) or (SeiteB+SeiteC<SeiteA) or (SeiteA+SeiteC<SeiteB) then
write1.caption:=('Berechnung nicht möglich!'); UmfangEdit.Text:=FloatToStr(Umfang); FlaecheEdit.Text:=('-'); else begin Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC)); FlaecheEdit.Text:=FloatToStr(Flaeche); UmfangEdit.Text:=FloatToStr(Umfang); write1.Caption:=(' ') end end; end. Du müsstest einfach :
Delphi-Quellcode:
schreiben...
if (SeiteA+SeiteB<SeiteC) or (SeiteB+SeiteC<SeiteA) or (SeiteA+SeiteC<SeiteB) then
begin write1.caption:=('Berechnung nicht möglich!'); UmfangEdit.Text:=FloatToStr(Umfang); FlaecheEdit.Text:=('-'); end else begin Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC)); FlaecheEdit.Text:=FloatToStr(Flaeche); UmfangEdit.Text:=FloatToStr(Umfang); write1.Caption:=(' ') end end; end. (einfach nach der if Bedingung ein begin setzen und vor dem else ein end einfügen ;) Gruß Max |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 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-2025 by Thomas Breitkreuz