AGB  ·  Datenschutz  ·  Impressum  







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

Variablen Problem

Ein Thema von Luki206 · begonnen am 26. Nov 2013 · letzter Beitrag vom 26. Nov 2013
Antwort Antwort
Seite 1 von 2  1 2      
Luki206
(Gast)

n/a Beiträge
 
#1

Variablen Problem

  Alt 26. Nov 2013, 18:16
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:
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;
Danke
Luki

PS: Variablennamen sind abgeändert
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Variablen Problem

  Alt 26. Nov 2013, 18:27
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#3

AW: Variablen Problem

  Alt 26. Nov 2013, 18:29
Kann es sein, dass das eine Klassenmethode deiner Form sein soll. Demnach musste es heißen:

procedure TIrgendeineForm.ZuBestell(var fisch : String; preis:Real);

Geändert von bcvs (26. Nov 2013 um 18:30 Uhr) Grund: DeddyH was mal wieder schneller
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Variablen Problem

  Alt 26. Nov 2013, 18:34
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;

Geändert von Natcree (26. Nov 2013 um 18:37 Uhr)
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#5

AW: Variablen Problem

  Alt 26. Nov 2013, 18:53
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?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: Variablen Problem

  Alt 26. Nov 2013, 19:37
Japp.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 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
Luki206
(Gast)

n/a Beiträge
 
#8

AW: Variablen Problem

  Alt 26. Nov 2013, 21:12
@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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

AW: Variablen Problem

  Alt 26. Nov 2013, 21:46
Ich frage mich, wieso fisch als Variablen-Parameter übergeben, dann aber nirgends geändert wird.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Variablen Problem

  Alt 26. Nov 2013, 22:06
Ich frage mich, wieso fisch als Variablen-Parameter übergeben, dann aber nirgends geändert wird.
Das wird verwendet, aber man übersieht es wohl zu leicht
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:06 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