Hallo,
ich erlaube mir, diesen Faden aus der Versenkung zu holen, weil ich eine fast identische Problemstellung habe, die durch die Hilfeposts
nicht behoben werden konnte.
Teilaufgabe:
Druck auf Button „Abbrechen” setzt einfach alle Eingabe-Elemente zurück (Ereignis btnAbbrechenClick). Um beim Neueingeben eines Datensatzes diesen Reset ebenfalls durchzuführen, rufe ich ihn in der gezeigten Weise auf - die Versionen mit Nil oder ohne Klammer (wie im vorhergehenden Beitrag) werden vom Compiler moniert.
Der vorgestellte Code funktioniert zwar,
aber: Nach dem Schließen des Programmes wird mir per Messagefenster angezeigt, dass ein Fehler vorliege und zwar eine fehlerhafte Zeigeroperation.
Ich dachte, ich hätte das Problem auf einfache Weise gelöst

Was mache ich denn falsch?
Delphi-Quellcode:
procedure btnAbbrechenClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure btnNeuClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Warentext : String;
const
Bildpfad = …
EN = '0'; ZN = '00'; DN = '000';
implementation
{$R *.dfm}
procedure TForm1.btnAbbrechenClick(Sender: TObject);
begin
edtPfad.Clear;
cbTyp.ItemIndex := 0;
edtPreis.Clear;
edtBezAlt.Clear;
cbMetallFarbe.ItemIndex := 0;
edtSteinFarben.Clear;
edtPerlenFarbe.Clear;
edtHoehe.Clear;
edtLieferant.Clear;
chAktiv.Checked := True;
memBem.Clear;
Image1.Picture.Destroy;
Image2.Picture.Destroy;
Image3.Picture.Destroy;
end;
procedure TForm1.btnNeuClick(Sender: TObject);
var
ArtAnz : Integer;
ArtBez : String;
begin
btnAbbrechenClick(Sender); <-------- Hier steckt der Wurm drin!
.
.…
Für Hinweise dankbar:
Oswald