Einzelnen Beitrag anzeigen

schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#1

Menüeintrag in bestehendes Menü einfügen?

  Alt 27. Dez 2009, 22:25
Hallo,

ich habe folgendes Problem:

Ein MainMenu nach folgendem Muster:
Delphi-Quellcode:
// Datei Bearbeiten Tools Hilfe
// -Neu -Rückgängig -Tools einrichten -Verwenden der Hilfe
// -Öffnen -<ein weiterer Eintrag> -Index
// -Beenden
Nun will ich vor <ein weiterer Eintrag> das angemeldete Dienstprogramm einfügen, faktisch zwischen
"Tools einrichten" und "<ein witerer Eintrag>".


So sieht mein Quelltext aus:
Delphi-Quellcode:
   if ToolsOptDlg.Execute then
   begin
      //Hier wird der neue Menüpunkt angelegt;
      // := ToolsOptDlg.Menuname;
      // := ToolsOptDlg.CommandLine;
      if MainMenu.Items.Items[IDE_MEMU_TOOLS_COMMANDS].Count > IDE_MENU_TOOLS_BASE then
      for Index := MainMenu.Items.Items[IDE_MEMU_TOOLS_COMMANDS].Count-1 downto IDE_MENU_TOOLS_BASE do
      MainMenu.Items.Items[IDE_MEMU_TOOLS_COMMANDS].Delete(Index);
      FCommandTools.Assign( ToolsOptDlg.Tools );
      //Die folgenden Zeilen entsprechen der Methode AddToolsToMenu
      //Aber hier kommt nur ein neues Tool hinzu
      CommandTool := TMenuItem.Create(self);
      CommandTool.Caption := GetMenuName(0);
      CommandTool.OnClick := CommandToolClick;
      MainMenu.Items.Items[IDE_MEMU_TOOLS_COMMANDS].Insert(1, CommandTool);
   end;
Mein Menüeintrag, der das Dienstprogramm beschreibt, überschreibt jedoch den Menüeintrag namens <"ein weiterer Eintrag>", der hierdurch verschwindet.

Wenn ich die Add Methode verwende, habe ich das gleiche Problem, obwohl ich mit Add() erwarte der Name meines Dienstprogrammes dann an das Ende dieses Menüs angehängt wird.

Was muss ich anders machen?

"<ein weiterer Eintrag>" steht nur bespielhaft für eine nachfolgende Funktion meines Programmes.
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat