Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi access violation beim beenden (https://www.delphipraxis.net/92461-access-violation-beim-beenden.html)

Nicodius 20. Mai 2007 09:35


access violation beim beenden
 
hi leute

beim beenden von meinem programm kommt folgender fehler wenn ich nur in einer combobox werte eingefügt habe
wie kann das sein? wenn ich in keiner bzw beiden was eingebe gehts?


Zitat:

access violation at 0xfffffff: read of address 0xfffffff
C4 BC 4D 00 CC BC 4D 00 00 00 00 00
code ist leider zu umfangreich - im close steht eigentlich nur eine abfrage zum speichern drinnen.

lg nico

Sharky 20. Mai 2007 09:45

Re: access violation beim beenden
 
Zitat:

Zitat von Nicodius
... code ist leider zu umfangreich - im close steht eigentlich nur eine abfrage zum speichern drinnen....

Hai Nico,

steht im OnClose jetzt "nur" Code zum speichern oder "eigentlich nur Code" zum speichern?
Zeige doch mal zumindest diesen Codeabschnitt?

Bist Du schon einmal mit dem Debugger durch dein OnClose gelaufen?

Nicodius 20. Mai 2007 09:48

Re: access violation beim beenden
 
servus ;)

onclose :

Delphi-Quellcode:
  if saved = false then
    if Application.MessageBox(
        'Datei wurde noch nicht gespeichert. Wirklich beenden?', 'Fehler!', MB_YesNo) = IDYes then close else
        Speichern1Click(Sender)
  else close;
speichern1 :

Delphi-Quellcode:
var FaDatei: file of Talles;
begin
  if SaveDialog1.Execute then // Dialog zum Speichern anzeigen
  begin
    AssignFile(FaDatei, SaveDialog1.FileName);
    Rewrite(FaDatei); // Ausgabedatei öffnen
    Write(FaDatei, Alles);
    CloseFile(FaDatei);
  end;
  saved := true;
danke für deine zeit

nico

fwsp 20. Mai 2007 09:50

Re: access violation beim beenden
 
was ist
Delphi-Quellcode:
Alles
ist das beim speichern noch vorhanden?

Matze 20. Mai 2007 09:53

Re: access violation beim beenden
 
Mir erscheint es sehr unlogisch, im OnClose nochmals Close aufzurufen, das wäre dann ja eine Art Rekursion. Lass das mal weg. ;)

Nicodius 20. Mai 2007 09:54

Re: access violation beim beenden
 
der fehler passiert auch wenn vorher gespeichert wurde(es komtm also gar nicht den ablauf dort rein) - kan nalso damit nix zu tun haben

lg nico

Nicodius 20. Mai 2007 09:55

Re: access violation beim beenden
 
Zitat:

Zitat von Matze
Mir erscheint es sehr unlogisch, im OnClose nochmals Close aufzurufen, das wäre dann ja eine Art Rekursion. Lass das mal weg. ;)

hat damit nix zu tun weils nur passiert wenn die eine combobox nur gefüllt is - aber vielen dank das is zusätzlich unsinn gewesen ;D


edit es passiert jetzt irgendwie doch auch wenn beide beschrieben sind ich glaub ich geh den ganzen code nochmal durch :(
hat wahrscheinlich irgendwas mit den werten im alles zu tun(das ist ein record )

wenn ich daten nämlich per laden aus einer vorher erstellten datei drinnen habe passiert nix und es läuft wie gewünscht

lg nico

Nachteule 20. Mai 2007 10:01

Re: access violation beim beenden
 
Auszug aus der Delphi Hilfe
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin
  if MessageDlg('Close application ?', mtConfirmation,
    [mbYes, mbNo], 0) = mrYes then
    Action := caFree
  else
    Action := caNone;
end;
siehe Action

Nicodius 20. Mai 2007 10:05

Re: access violation beim beenden
 
so vielen dank

habs herausgefunden hab bei der ersten combobox dummerweise den itemindex von combo2 verlangt und der war wenn da nix drinnensteht ja -1 und das hat mein array im record nicht gerne gesehn ;D

lg nico

Christian Seehase 20. Mai 2007 12:35

Re: access violation beim beenden
 
Moin Nico,

so eine Abfrage gehört besser in das OnCloseQuery.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 Uhr.
Seite 1 von 2  1 2      

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