Einzelnen Beitrag anzeigen

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, 17: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