Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

TMenueitem mit Basisframe

  Alt 10. Jan 2022, 09:47
Delphi-Version: 10.4 Sydney
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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat