![]() |
Fehlermeldung beim beenden
Code:
---------------------------
Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Military.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00438B2C in Modul 'Military.exe'. Lesen von Adresse 00000180'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. --------------------------- OK Hilfe --------------------------- ... ^^ kommt nur wenn ich ein form generiere ... (ich klick auf ein bild - es generiert ein form) wenn ich nicht auf das bild klicke und beende kommt die nachricht nicht .. |
Re: Fehlermeldung beim beenden
Wie wärs mit nem bisschen Code?
|
Re: Fehlermeldung beim beenden
tja ohne deinen quelltext werden wir dir da auch nicht weiterhelfen können :roll: ...
|
Re: Fehlermeldung beim beenden
Vielleicht solltest du beim verlassen des Programms erstmal alle zur Laufzeit erzeugten Formulare zerstören, womöglich liegt dort der Fehler.
|
Re: Fehlermeldung beim beenden
hab ich auch schon probiert ...
code
Delphi-Quellcode:
unit Info;
interface uses Graphics,Forms, Main, ExtCtrls, ComCtrls, StdCtrls; type TAusgabe = class Text : String; Titel : String; Bild : String; The_Sender : TObject; public procedure ShowIt(Sender : TObject); procedure OnFormClose(Sender: TObject; var Action: TCloseAction); end; implementation { TAusgabe } procedure TAusgabe.OnFormClose(Sender: TObject; var Action: TCloseAction); begin TForm(Sender).Destroy; end; procedure TAusgabe.ShowIt; var Ausgabe_Form : TForm; AusgabeLabel : TLabel; AusgabeImage : TImage; begin if TImage(Sender) <> nil then begin Ausgabe_Form := TForm.Create(TImage(Sender).Parent); Ausgabe_Form.BorderStyle := bsdialog; Ausgabe_Form.FormStyle := fsstayontop; Ausgabe_Form.Width := 250; Ausgabe_Form.Height := 400; Ausgabe_Form.Left := Main_Form.Left + TImage(Sender).Left; Ausgabe_Form.Top := Main_Form.Top + TImage(Sender).Top + TImage(Sender).Height; Ausgabe_Form.Caption := Titel; Ausgabe_Form.Visible := true; Ausgabe_Form.Parent := TImage(Sender).Parent; AusgabeImage := TImage.Create(Ausgabe_Form); AusgabeImage.Picture := TImage(Sender).Picture; AusgabeImage.AutoSize := true; AusgabeImage.Left := (Ausgabe_Form.Width div 2) - (AusgabeImage.Width div 2); AusgabeImage.Top := 0; AusgabeImage.Visible := true; AusgabeImage.Parent := Ausgabe_Form; AusgabeLabel := TLabel.Create(Ausgabe_Form); AusgabeLabel.Caption := Text; AusgabeLabel.Font.Style := [fsbold]; AusgabeLabel.AutoSize := true; AusgabeLabel.WordWrap := true; AusgabeLabel.Left := 0; AusgabeLabel.Top := AusgabeImage.Height+10; AusgabeLabel.Visible := true; AusgabeLabel.Parent := Ausgabe_Form; Ausgabe_Form.OnClose := OnFormClose; end; end; end. aufruf
Delphi-Quellcode:
procedure TMain_Form.ImageClick(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var Ausgabe : Info.TAusgabe; begin //if TProgressbar(Sender) = nil //then //begin case button of mbleft : begin Ausgabe.Titel := TImage(Sender).Hint; Ausgabe.Text := 'TEST'; Ausgabe.ShowIt(Sender); end; mbmiddle : Showmessage('Mittlere'); mbright : If Auftrag < 1 then begin MSender := Sender; if TImage(Sender).Hint = 'unbebaut' then ImagePopup.Items[1].Enabled := false else ImagePopup.Items[1].Enabled := true; if (TImage(Sender).Hint <> 'unbebaut') or (Auftrag > 0) then ImagePopup.Items[0].Enabled := false else ImagePopup.Items[0].Enabled := true; ImagePopup.Popup(Main_Form.Left + TImage(Sender).Left,Main_Form.Top + TImage(Sender).Top + Y); end; end; ImagePopup.Items[0].Enabled := false; //end //else // Showmessage(TImage(MSender).Hint); end; |
Re: Fehlermeldung beim beenden
Delphi-Quellcode:
Wofür ist den dieser Code gedacht?
procedure TAusgabe.OnFormClose(Sender: TObject; var Action: TCloseAction);
begin TForm(Sender).Destroy; end; |
Re: Fehlermeldung beim beenden
Das IST der Fehler, oder?
Das Formular kann sich doch nach dem OnDestroy nicht nochmals zerstören.... |
Re: Fehlermeldung beim beenden
Das sollte sich von alleine zerstören - Code raus und es geht, würde ich sagen.
|
Re: Fehlermeldung beim beenden
das tut nichts zur sache ... weil das hab ich nur auf reaktion auf diesen fehelr geschrieben
habs jetzt gelöscht .... aber ich kann ja öfters auf ein bild klicken(bild klick - fenster wird generiert - close - wieder ein bild klicken - fenster wird generiert - close) .... Wenn ich das HAUPTPROGRAMM beende kommt die meldung ... aber nur wenn ich vorher mindestens einmal auf ein bild geklickt habe :cry: |
Re: Fehlermeldung beim beenden
Liste der Anhänge anzeigen (Anzahl: 1)
Code:
der code kommt direkt beim schließen der exe wenn ich mal auf ein bild geklickt habe(bleibt da was im speicher?)
---------------------------
Anwendungsfehler --------------------------- Exception EAccessViolation in Modul Military.exe bei 0001BCD2. Zugriffsverletzung bei Adresse 0041BCD2 in Modul 'Military.exe'. Lesen von Adresse 54534574. --------------------------- OK --------------------------- hier das programm damit ihr seht was ich mein ... klickt einmal auf ein bild .. und dann schließt und einmal gleich schließen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 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