Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.078 Beiträge
 
Delphi 12 Athens
 
#7

AW: Variablen Problem

  Alt 26. Nov 2013, 20:18
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.
- Delphi-Referenz durchsuchenCurrency, Delphi-Referenz durchsuchenStrToCurr, Delphi-Referenz durchsuchenCurrToStr ...

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;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Nov 2013 um 20:21 Uhr)
  Mit Zitat antworten Zitat