Dann fehlen in dem Code auch noch ein paar Begin&End.
Und die Codeformatierung ist grauenhaft, bzw. praktisch garnicht vorhanden.
Und du hast einige Codezeilen mehrfach, die man auflösen könnte.
Bei Preisen kannst du dir überlegen, ob Real das Richtige ist und ob nicht vielleicht Currency besser wäre.
-
Currency,
StrToCurr,
CurrToStr ...
Den Vergleich
auf True und False solltest du dir besser abgewöhnen.
if x then
statt
if x = true then
und
if not x then
statt
if x = false then
.
Das hier geht ja so nicht:
Delphi-Quellcode:
procedure ZuBestell(var fisch : String; preis:Real);
var schon, zu : Real;
begin
schon := StrToFloat(EdPreis.Text);
if CbEinsatz.Checked then
Bestell.Lines.Add('*'+fisch+'[Helfer Einsatz]*') // kein semikolon, da ein ELSE direkt folgt
else
if CbPrivat.Checked then
Bestell.Lines.Add('*'+fisch+'[Helfer Privat]*');
zu := schon+0.50;
EdPreis.Text := FloatToStr(zu);
else // das gehört nurgenwo dazu
Bestell.Lines.Add('*'+fisch+'*');
zu := schon+preis;
EdPreis.Text := FloatToStr(zu);
end;
Ich vermute aber mal, du wolltest es in etwa so haben?
Delphi-Quellcode:
procedure ZuBestell(var fisch : String; preis:Real);
var schon, zu : Real;
begin
schon := StrToFloat(EdPreis.Text);
if CbEinsatz.Checked then
Bestell.Lines.Add('*'+fisch+'[Helfer Einsatz]*');
else
if CbPrivat.Checked then begin
Bestell.Lines.Add('*'+fisch+'[Helfer Privat]*');
zu := schon+0.50;
EdPreis.Text := FloatToStr(zu);
end else begin
Bestell.Lines.Add('*'+fisch+'*');
zu := schon+preis;
EdPreis.Text := FloatToStr(zu);
end;
end;
Delphi-Quellcode:
procedure ZuBestell(var fisch : String; preis:Real);
var PreisNeu : Real;
begin
if CbEinsatz.Checked then
Bestell.Lines.Add('*' + fisch + '[Helfer Einsatz]*')
else begin
PreisNeu := StrToFloat(EdPreis.Text); // braucht man natürlich nur auslesen, wenn es benötigt wird
if CbPrivat.Checked then begin
Bestell.Lines.Add('*' + fisch + '[Helfer Privat]*');
PreisNeu := PreisNeu + 0.50;
end else begin
Bestell.Lines.Add('*' + fisch + '*');
PreisNeu := PreisNeu + Preis;
end;
EdPreis.Text := FloatToStr(PreisNeu); // war jetzt zwar nur eine doppelte Zeile, aber man kann ja mal klein anfangen
end;
end;