Delphi-PRAXiS

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.

Nicodius 20. Mai 2007 14:42

Re: access violation beim beenden
 
danke dir christian

lg nico

Muetze1 20. Mai 2007 21:02

Re: access violation beim beenden
 
Zitat:

Zitat von Nicodius
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

So einen trivialen Fehler hätte dir Delphi auch gesagt, wenn du einfach die Bereichsprüfung bei den Compileroptionen in deinem Projekt eingeschaltet und das Projekt einmalig neu erstellt hättest.

Nicodius 21. Mai 2007 14:08

Re: access violation beim beenden
 
delphi 3 auch? hab leider schule gewechselt und somit die lizens nicht mehr gehabt vom siebener so dass ich wechseln musste.

lg nico


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr.

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