Hi zusammen
Damit versuche ich, in meinem Basisframe (TOpenFileFrame) ein da über den
OI erstelltes PopUpMenue um Untermenues zu ergänzen. Diese benennen jeweils bestimmte Dateiendungen, die ich wie folgt deklariert habe:
Delphi-Quellcode:
Const
ExtendedArray : array[0..7] of string =('alle Dateien', '.pdf', '.sqlite', '.Docx', '.bmp', '.nef', '.jpg', '.png'); //
Um Flüchtigkeitsfehler zu vermeiden, wollte ich diese Array per Code durchlaufen und die einzelnen Strings dem PopUpMenue als Items zuweisen. Da ich das bislang noch nie gemacht habe, wollte ich mit meiner Prozedur NewPopUpItem erstmal einen Versuchsballon starten:
Delphi-Quellcode:
constructor TOpenFileFrame.Create(AOwner: TComponent);
begin
inherited;
FReportlist := TStringlist.Create;
FPopUpModeList:= TStringlist.Create;
DisplayAllFiles;
FPathlist := TStringlist.Create;
FPopUpItemList := TStringlist.Create;
PnlLookOut.Align := alClient;
FCmbxItem := False;
FFileType := 'Alle Dateien';
FPopUpNode := NIL;
NewPopUpItem;
end;
procedure TOpenFileFrame.NewPopUpItem;
var NewItem: TMenuItem;
begin
Self.PopupMenu1.Items.Add(NewItem);
NewItem.Caption := 'Dateierweiterungen 2 ';
NewItem.Name := 'DateiExtension ' + IntToStr(NewItem.Count);
// NewItem.Tag := 1;
// NewItem.OnClick := PopupMenuItemsClick; // Assign it an event handler.
end;
Das aber passt Delphi gar nicht. Die erste Zeile in NewPopUpItem erzeugt dabei folgende Fehlermeldung:
Zitat:
---------------------------
Im Projekt HomeOfficerFEProject.exe ist eine
Exception der Klasse EMenuError mit der Meldung 'Menü zweimal eingefügt' aufgetreten.
---------------------------
Ich habe bis gerade eben 2 Instanzen dieses Frames verwendet und nun die zweite Instanz aus dem Projekt entfernt. Des weiteren habe ich für die DCUs einen eigenen Ordner im Projektpfad angelegt (und alle DCUs gelöscht). Die Fehlermeldung bleibt dieselbe.
Ein MenueItem mit der Caption 'Dateierweiterungen' exisiert bereits; desshalb nennt sich die neue Caption auch 'Dateierweiterungen 2 '...
Was mache ich falsch?
Gruss
Delbor