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
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Programm "Waren"

  Alt 14. Jan 2017, 17:46
Da ich nur D7 habe muß ich mich auf den Sourcecode beschränken:
Delphi-Quellcode:
   begin
          if Waren.Warenverkauf>=10 then
            checkboxRabatt.Checked:=true;
         if checkboxRabatt.Checked then
            Waren.StPreis:=((Waren.StPreis)-1);
            checkboxRabatt.Checked:=false;
        MessageDlg(format(Preismeldung,[(Waren.Verkaufspreis),(Waren.Nettopreis),(Waren.MWSt)]),mtInformation,[mbOk],0);
        end;
das checkboxRabatt.Checked:=false; gehört auf den ersten Blick noch zu if checkboxRabatt.Checked then was nach genauerem hinschauen Blödsinn ist, aber warum unnötig verkomplizieren?
Warum diese "Checkboxrabatt"-Orgie?
Wenn Du mehr als 10Stk verkaufst gibt es Rabatt egal ob die Checkbox gecheckt ist oder nicht?
Wenn ein Rabatt gewährt werden soll, dann sollte dies die Checkbox ändern. Es könnte sein, daß die Rabattgewährung nicht möglich ist. Das weiß aber Waren daher sollte Waren den Status der Checkbox setzen.
Delphi-Quellcode:
        if (Waren.aktBestand)<0 then
         begin
           showMessage(mehrWaren);
           checkbox1.Checked:=true;exit;
         end;
Showmessage soll informieren, daß es nicht mehr genug Waren gibt. Warum überprüft die Oberfläche dies und nicht die Klasse Waren?
Und wer ist checkbox1 Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Programm "Waren"

  Alt 14. Jan 2017, 19:03
Ich glaube, du begehst die gleichen Fehler wieder, wie bei deinem anderen Programm.

Aber Hut ab für deinen Mut so was hier vor zu stellen. Aber nur so lernt man, aus Fehlern. Weiter so.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#3

AW: Programm "Waren"

  Alt 15. Jan 2017, 07:26
Moin...
Zitat:
Aber Hut ab für deinen Mut so was hier vor zu stellen. Aber nur so lernt man, aus Fehlern. Weiter so.
...so sehe ich das auch. Alle haben mal angefangen...bei den meisten war Eisenhower noch President. Du mußt nur darauf achten, das du alte Fehler nicht wieder einbaust.

Die Tage schaue ich auch mal rein.

Geändert von haentschman (15. Jan 2017 um 07:28 Uhr)
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Programm "Waren"

  Alt 15. Jan 2017, 13:26
Hallo zusammen, Danke für Eure Anregungen. Da ich zurückliegend durch eure Anregungen mehr gelernt habe als aus den schlauen Delphibüchern wage ich es, hoffentlich ohne aufdringlich zu wirken, immer mal wieder ein Programmchen hier vorzustellen und den "Spezis" aus Eisenhowers Zeiten Futter für Kritiken zu geben. Die alten Fehler(globale Variable, sinnentlehrte Checkboxen)lassen sich erkenntlich nicht so leicht abstellen - doch ich arbeite daran. Leider wird in den Büchern auf die Frage des Setzens von globalen oder lokalen Variablen nicht so der Schwerpunkt gesetzt und mal schnell eine globale gewählt. So habe ich das kritiklos akzeptiert.
Als Truman regierte erblickte ich das Licht der Welt, doch bis zu Turbo Pascal und Delphi vergingen noch ein paar Jahre und die Programmiererei ist nur mein Hobby, denn ich habe in meinem zurückliegenden Berufsleben eher Paragraphen verbogen als Bits und Bytes gestreichelt, so mag man mir diesen oder jenen Fehler verzeihen.
Also P80286 (er lebt vermutlich nach Eisenhowers Regentschaft in der Zeit der 286-iger PC's): Und wer ist checkbox1 ? - das ist ein Opfer der checkbox-Orgie und es gibt ihn so nicht mehr.
Danke Sebastian für den Hinweis auf die MWSt. Das ist mir peinlich, doch ich habe es hoffentlich verbessert, denn nun wird Bruttopreis, Nettopreis und MWSt so angezeigt, wie es die verbindliche
Berechnung verlangt.
HolgerX, auch Dir vielen Dank und ich hoffe Deine Anregungen umgesetzt zu haben. Das Einfügen der globalen Variablen in OOP unter Form1:TForm1 dann Waren:TWaren zu setzen geschah fast automatisch, weil die das alle so gemacht haben in meinen Büchern. Man soll tatsächlich alles hinterfragen und Eure Argumentation ist diesbezüglich überzeugend.
So nun also eine verbesserte Version
Angehängte Dateien
Dateityp: zip waren2.zip (2,72 MB, 16x aufgerufen)
Norbert

Geändert von EdAdvokat (15. Jan 2017 um 15:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Programm "Waren"

  Alt 16. Jan 2017, 08:09
Kann der Stückpreis nur in ganzen Euro-Beträgen festgelegt werden?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Programm "Waren"

  Alt 16. Jan 2017, 09:26
Gut zu wissen wer auf der "anderen" Seite sitzt, willkommen bei den alten Säcken, als Kennedy in Dallas war, habe ich die Grundrechenarten gelernt.

Delphi-Quellcode:
      if (FWaren.aktBestand)>=0 thenif checkboxverfuegbar.Checked then
    begin
      showMessage(Warenbest);
    exit end
    else if not checkboxverfuegbar.Checked then

        begin
          if FWaren.Warenverkauf>=10 then
            FWaren.StPreis:=((FWaren.StPreis)-1);
            MessageDlg(format(Preismeldung,[(FWaren.Verkaufspreis),(FWaren.Nettopreis),(FWaren.MWSt)]),mtInformation,[mbOk],0);
        end;
        if (FWaren.aktBestand)<0 then
         begin
           checkboxverfuegbar.Checked:=true;exit;
         end;
Dieses Exit; end mag ein gewollter Stolperstein sein, aber
Delphi-Quellcode:
begin
  //irgendwas
  Exit;
end
liest sich doch besser.

Fällt Dir hier etwas auf:
Delphi-Quellcode:
if checkboxverfuegbar.Checked then
    .......
    else if not checkboxverfuegbar.Checked then
(falls wider Erwarten nicht, else ist schon das gleiche wie not checkboxverfuegbar.Checked )

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Programm "Waren"

  Alt 16. Jan 2017, 14:11
Für den Stückpreis war eigentlich nur vorgesehen einen geraden Europreis zu wählen, doch es geht nun auch anders: Jetzt können auch Kommawerte eingegeben werden.
Danke für die Hinweise, die so hoffe ich berücksichtigt wurden. Nur den Teil ...else if not... konnte ich nicht verändern, wie es K.H (P80286)vorgeschlagen hat, denn dann gibt er trotz fehlenden Bestand eine Rechnung aus, statt den Sperrhinweis.
Angehängte Dateien
Dateityp: zip waren3.zip (2,73 MB, 10x aufgerufen)
Norbert
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:33 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