AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Exception beim Erstellen eines Menüs

Ein Thema von Alexander · begonnen am 20. Jun 2006 · letzter Beitrag vom 25. Jun 2006
Antwort Antwort
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

Exception beim Erstellen eines Menüs

  Alt 20. Jun 2006, 18:07
Hallo,
ich erstelle dynamisch ein Submenü, bevor dieses aufpoppt. Beim ersten Anzeigen geht das auch gut, dann klicke ich ein Item an und das Menü geht logischer Weise wieder zu. Beim zweiten Anzeigen, kommt es dann zu der Exception:
Zitat:
Der Objektverweis wurde nicht auf eine Objectinstanz festgelegt.
Der Fehler tritt nicht auf, wenn ich das Click-Event des Sub-Items leer lasse.
Aber auch eine try-except Behandlung nützt im Click-Event nichts . Der Fehler tritt dennoch auf.

Hier mal der Source:
Delphi-Quellcode:
procedure TMainFrm.MenuItem21_Popup(sender: System.Object; e: System.EventArgs);
var
  filelist : StringCollection;
  i : Integer;
  anItem : MenuItem;
begin
  filelist := LastFiles.TLastFile.getFileList(System.IO.Path.GetDirectoryName(Application.ExecutablePath) + '\settings.xml');
  if (filelist <> nil) then
  begin
    MenuItem21.MenuItems.Clear;
    for i:=0 to filelist.Count-1 do
    begin
      anItem := MenuItem.Create(filelist[i], MenuItemLastFiles_Click);
      MenuItem21.MenuItems.add(anItem);
    end;
  end;
end;

procedure TMainFrm.MenuItemLastFiles_Click(sender: System.Object; e: System.EventArgs);
begin
  try
    if (Sender <> nil) then
      MDIHelper.TMDIHelper.CreateMDIChild((Sender as MenuItem).Text, Self, Self.LView_Dok);
  except
     on ex: Exception do MessageBox.Show(ex.message, 'Fehler');
  end;
end;
Den Fehler kann ich übrigens beliebig oft reproduzieren. Außerdem scheinen beide Methoden durchzulaufen, erst danach tritt der Fehler auf. Das Debugging klappt leider auch nicht so super, da jedes Mal bei der Rückkehr zu Delphi (zum Debugging) das Submenü des Mainmenüs wieder geschlossen wird. Und der Fehler tritt ja nur auf, wenn ein Item angeklickt wurde

Es weiß nicht zufällig, warum dieser Fehler auftritt?

Nachtrag: Die FileList ist übrigens i.O.. Der Fehler tritt auch nicht in der CreateMDIChild-Methode auf...
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Exception beim Erstellen eines Menüs

  Alt 21. Jun 2006, 08:32
die Definition von TMainFrm.MenuItemLastFiles_Click sieht für mich arg seltsam aus.
Ich kenne "Sender" bisher als TObject.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Exception beim Erstellen eines Menüs

  Alt 21. Jun 2006, 08:46
Hallo,
Zitat von RavenIV:
die Definition von TMainFrm.MenuItemLastFiles_Click sieht für mich arg seltsam aus.
Ich kenne "Sender" bisher als TObject.
wir sind hier bei .Net, da gilt: System.Object = TObject.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Exception beim Erstellen eines Menüs

  Alt 21. Jun 2006, 09:17
Zitat von xaromz:
wir sind hier bei .Net, da gilt: System.Object = TObject.
ups. Das .net hab ich total übersehen.
dann nehme ich alles zurück und halte mich raus.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#5

Re: Exception beim Erstellen eines Menüs

  Alt 25. Jun 2006, 14:33
Geht hier ja wirklich um .NET. Was könnte ich denn falsch gemacht haben?
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Exception beim Erstellen eines Menüs

  Alt 25. Jun 2006, 14:45
Hm, wird denn keine Codezeile vom Debugger markiert, wenn die Exception geworfen wurde?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#7

Re: Exception beim Erstellen eines Menüs

  Alt 25. Jun 2006, 14:58
Nicht wirklich. Er markiert schlauer Weise "Application.Run(TMainFrm.Create);" in der DPR ...
Kann man also eigentlich vergessen...
Alexander
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:58 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