![]() |
Variablen Problem
Hi,
ich hatte einige Zeit, zum testen, Lazarus benutzt nur jetzt habe ich mir die Starter Version von Delphi XE5 zugelegt. Jetzt mein Problem: ich wollte eigentlich nichts anderes machen als ein paar Variablen zuweisen aus einem Edit nur bekomme ich einen Fehler: [dcc32 Fehler] haupt.pas(128): E2003 Undeklarierter Bezeichner: 'EdPreis'. Da ich auch noch zwei Checkboxen auswerten wollte kam mir ein ähnlicher Fehler obwohl ich es eigentlich genau so gemacht habe wie in Lazarus.. Code:
Delphi-Quellcode:
Danke
procedure ZuBestell(var fisch : String; preis:Real);
var schon, zu : Real; begin schon := StrToFloat(EdPreis.Text); if (CbEinsatz.Checked = true) then Bestell.Lines.Add('*'+fisch+'[Helfer Einsatz]*'); else if CbPrivat.Checked then Bestell.Lines.Add('*'+fisch+'[Helfer Privat]*'); zu := schon+0.50; EdPreis.Text := FloatToStr(zu); else Bestell.Lines.Add('*'+fisch+'*'); zu := schon+preis; EdPreis.Text := FloatToStr(zu); end; Luki :) PS: Variablennamen sind abgeändert ;) |
AW: Variablen Problem
Wenn Du in einer regulären Routine auf Komponenten zugreifen willst, musst Du schon die Formularinstanz, zu der die Komponenten gehören, mit angeben. Die bessere Alternative wäre aber IMO, daraus eine Methode des Formulars zu machen.
|
AW: Variablen Problem
Kann es sein, dass das eine Klassenmethode deiner Form sein soll. Demnach musste es heißen:
Delphi-Quellcode:
procedure TIrgendeineForm.ZuBestell(var fisch : String; preis:Real);
|
AW: Variablen Problem
Schau mal ob es edpreis.text in deiner Form Gibt !!! Ich schätzemal es ist ein Editfeld richtig? wenn nicht dann das editfeld auf deine form ziehen und dementsprechend umbenennen. oder als als var hinzufügen
Delphi-Quellcode:
var
edpreis:tedit; |
AW: Variablen Problem
Ok hat sich erledigt. Das von bcvs hat geklappt. Danke ;) @DaddyH: war das, was du mir beschrieben hast, eigentlich zum Teil das selbe was auch bcvs geschrieben hat?
|
AW: Variablen Problem
Japp.
|
AW: Variablen Problem
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. - ![]() ![]() ![]() Den Vergleich auf True und False solltest du dir besser abgewöhnen.
Delphi-Quellcode:
statt
if x then
Delphi-Quellcode:
und
if x = true then
Delphi-Quellcode:
statt
if not x then
Delphi-Quellcode:
.
if x = false then
Das hier geht ja so nicht:
Delphi-Quellcode:
Ich vermute aber mal, du wolltest es in etwa so haben?
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;
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; |
AW: Variablen Problem
@himitsu: ich hatte gemerkt, das es so wie ich es hier rein gestellt hatte, das es so nicht geht ;) ich hatte es nach dem zweiten Beispiel von dir gemacht
Danke :) |
AW: Variablen Problem
Ich frage mich, wieso fisch als Variablen-Parameter übergeben, dann aber nirgends geändert wird.
|
AW: Variablen Problem
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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