AGB  ·  Datenschutz  ·  Impressum  







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

Ungültige Zeigeroperation

Ein Thema von Fallenzer · begonnen am 31. Dez 2019 · letzter Beitrag vom 1. Jan 2020
 
Benutzerbild von haentschman
haentschman

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

AW: Ungültige Zeigeroperation

  Alt 1. Jan 2020, 11:57
Hallöle...

Zitat:
Nachdem ich das Programm beendet habe, habe ich nochmal die sämtlichen Textdateien kontrolliert: alles wurde entsprechend dem Code gemacht...
...das halte ich für ein Gerücht.

Wie die anderen schon erwähnten, fehlen dir die wichtigsten Grundlagen. Um zu Helfen sind wir ja da.

Du solltest diesen Link komplett durcharbeiten:
Crashkurs: https://www.delphi-treff.de/tutorial...phi-crashkurs/

Weitere:
Tutorials: https://www.delphi-treff.de/tutorials/
Debugging lernen: https://www.delphipraxis.net/41047-t...ortgeschr.html

Anmerkungen zu deinem Quelltext:

1. Wichtig: Den Delphi StyleGuide benutzen. https://www.delphi-treff.de/object-pascal/styleguide/
2. Sprechende Namen verwenden. (keine Abkürzungen). In 2 Monaten weißt du nicht mehr was die Abkürzungen bedeuten. (Erfahrung)
3. Formatierung nach dem StyleGuide einhalten. Automatische Formatierung im Delphi ... Standard STRG + D
4. Vermeidung globaler Variablen ... sprich keine.
5. KISS https://de.wikipedia.org/wiki/KISS-Prinzip
6. DRY https://de.wikipedia.org/wiki/Don%E2...epeat_yourself
7. Delphi - Referenz als Hilfe verwenden https://www.delphipraxis.net/dp_reference.php
...als Suchmaschine in den Browser integrieren.
8. Bitte kein Denglisch Programmierung vorzugsweise Englisch.

Vorschlag:
...versuche mal den Code zeilenweise zu analysieren.
Delphi-Quellcode:
unit FormCash;

interface

uses
  Winapi.Windows, Winapi.Messages,
  System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,
  FormCashOpen, FormCashSave; // sprechende Namen ... was die Forms darstellen :-)

type
  TfoCash = class(TForm)
    btnCash: TButton;
    lstProducts: TListBox;
    procedure btnCashClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    FBonList, FCashList: TStringList;
    FSession: Integer;
    FSumTotal: Currency;
    FMoneyGive: Currency;
  public

  end;

var
  foCash: TfoCash;

implementation

{$R *.dfm}

procedure TfoCash.FormCreate(Sender: TObject);
begin
  FBonList := TStringList.Create;
  FCashList := TStringList.Create;
end;

procedure TfoCash.FormDestroy(Sender: TObject);
begin
  FBonList.Free;
  FCashList.Free;
end;

procedure TfoCash.btnCashClick(Sender: TObject);
begin
  try
    FBonList.LoadFromFile('.\Market\info.txt');
    try
      FCashList.LoadFromFile('.\Market\lastsession.txt');
    except
      // Fehlerbehandlung laden ergänzen
      Exit;
    end;
  except
    // Fehlerbehandlung laden ergänzen
    Exit;
  end;

  FSession := (StrToInt(FCashList[FCashList.Count - 1]) + 1); // neue Nummer (letzte Nummer aus der Liste + 1)

  FBonList.Add('');
  FBonList.Add('Einkauf-Nr.: ' + IntToStr(FSession));
  FBonList.Add('');
  FBonList.Add('Produkte:');
  FBonList.Add('');
  FBonList.AddStrings(lstProducts.Items);
  FBonList.Add('');
  FBonList.Add('Total: ' + FloatToStrF(FSumTotal, ffCurrency, 4, 2));
  FBonList.Add('Gegeben: ' + FloatToStrF(FMoneyGive, ffCurrency, 4, 2)); // Denglish geändert
  FBonList.Add('Rückgeld: ' + FloatToStrF(FMoneyGive - FSumTotal, ffCurrency, 4, 2)); // Denglish geändert
  FBonList.Add('');
  FBonList.Add('Vielen Dank für Ihren Einkauf.'); // !!! bedeuten "komm ja nicht wieder" :-)
  FBonList.Add('');

  try
    FBonList.SaveToFile('.\Market\Bon\' + IntToStr(FSession) + '.txt');
    try
      FCashList.Add(IntToStr(FSession));
      FCashList.SaveToFile('.\Market\lastsession.txt');
    except
      // Fehlerbehandlung speichern ergänzen
    end;
  except
    // Fehlerbehandlung speichern ergänzen
  end;
end;

end.

Geändert von haentschman ( 1. Jan 2020 um 12:04 Uhr)
  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 23:19 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