AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Programm "Waren"
Thema durchsuchen
Ansicht
Themen-Optionen

Programm "Waren"

Ein Thema von EdAdvokat · begonnen am 12. Jan 2017 · letzter Beitrag vom 16. Jan 2017
 
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
988 Beiträge
 
Delphi 6 Professional
 
#3

AW: Programm "Waren"

  Alt 14. Jan 2017, 16:35
Hmm..

OK, fangen wir an zu zerlegen

Delphi-Quellcode:
procedure TWaren.init;
begin
  FillChar(FWarenbestand,sizeof(FWarenbestand),0);
  FillChar(FWarenverkauf,sizeof(FWarenVerkauf),0);
  FillChar(FaktBestand,sizeof(FaktBestand),0);
  FillChar(FStPreis,sizeof(FStPreis),0);
  FillChar(FVerkPreis,sizeof(FVerkPreis),0);
  FillChar(FNettopreis,sizeof(FNettoPreis),0);
  FillChar(FMWSt,sizeof(FMWSt),0);
  FillChar(FErtrag,sizeof(FErtrag),0);
  FillChar(FAbMWSt,sizeof(FAbMWSt),0);
end;

Wieso benutzt Du FillChar um Integer oder Float Variablen zu initialisieren?
Sollte dies nicht besser nur für arrays ob Byte/Char verwendet werden?

Auch ist es besser lesbar, wenn Du die Variablen mit dem entsprechenden Wert initialisierts...


Delphi-Quellcode:
procedure TWaren.init;
begin
  FWarenbestand := 0;
  FWarenverkauf := 0;
  FaktBestand := 0;
  FStPreis := 0;
  FVerkPreis := 0.0;
  FNettopreis := 0.0;
  FMWSt := 0.0;
  FErtrag := 0.0;
  FAbMWSt := 0.0;
end;

Delphi-Quellcode:
var
  Form1: TForm1;
  Waren: TWaren;

Und was mich immer wieder den Kopf schütteln läst: Unsinnige GLOBALE Variablen!

'Waren' wird nur 'innerhalb' der FormularClasse verwendet, wieso dort nicht als FWaren : TWaren unter 'Private' anlegen?
Dann würde an jeder Stelle in den Methoden der Form erkennbar sein, wo es herkommt ('FWaren' = Membervar).

Wieso hat die Classe TWaren kein eigenes Init, bei dem z.B. Warenbe); //const Warenbe
gesetzt wird?

und beim Form1.Init sollten die Werte aus der Classe Waren (nach dessen Init) genommen werden und nicht wieder eigene Konstanten.

Delphi-Quellcode:
procedure TForm1.init;
begin
  FWaren.Init;

  Warenbestand.Text := IntToStr(FWaren.Warenbestand);
  WarenVerkauf.Text:='0';
  aktBestand.Text := IntToStr(FWaren.aktBestand);
  StPreis.Text := FloatToStr(FWaren.StPreis); //const StkPreis
  VerkaufsPreis.text:= FloatToStr(FWaren.Verkaufspreis);
  Nettopreis.Text := FloatToStr(FWaren.Nettopreis);
  MWSt.Text := FloatToStr(FWaren.MWSt);
  Ertrag.Text := FloatToStr(FWaren.Ertrag);
  AbMWSt.Text := FloatToStr(FWaren.AbMWSt);
  BruttoUmsatz.Text := FloatToStr(FWaren.BruttoUmsatz); // Fehlt

  checkbox1.Checked :=false;
  checkboxRabatt.Checked :=false;
end;
Somit wird nur an einer Stelle Konstanten ver wendet und diese zur Ansicht gebracht.


So, hoffe ein paar Tips geben zu können..

Mal sehen, ob meine Infos jetzt von anderen zerpflückt werden
  Mit Zitat antworten Zitat
 


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 00:02 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