Autor Beitrag
baka0815
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: Mo 14.06.10 09:35 
Hallo zusammen,

hier hatte ich ja bereits nach dem Popup gesucht und habe auch einen entsprechenden Link gefunden, der mir weiter geholfen hat.

Ich nutze jetzt die Funktion AddMenu() vom Interface INTAProjectMenuCreatorNotifier, die ich per IOTAProjectManager.AddMenuCreatorNotifier() hinzufüge. Das funktioniert auch alles bestens: Das Menü wird erzeugt, korrekt angezeigt und die OnClick-Events funktionieren bestens.

Allerdings benötigt das erzeugen des Menüs ein paar Millisekunden. Das ist beim Rehtsklick nur ein bisschen störend, allerdings wird das Menü auch beim Tastendruck erzeugt. Wenn ich also in der Dateiauswahl ein paar Tasten drücke um schnell zu einer Datei springen zu können, erzeugt Delphi bei jedem Tastendruck das Menü neu, weil immer die Funktion AddMenu() aufgerufen wird. Als Parameter hat diese leider nur den Ident-String, ich weiß also nur auf was für einem Dateityp (Source- oder Projektdatei) der Cursor gerade steht.

Kann man irgendwie verhindern, dass das Menü dann immer erzeugt wird?

Ich habe auch versucht, das Menü nur einmalig zu erzeugen und die Variable dann beim AddMenu() zurückzugeben, allerdings scheint Delphi irgendwann ein .Free aufzurufen - gibt es eine Funktion mit der ich eine Deep-Copy meines Menüs erzeugen kann die dann evtl. schneller ist als das dynamische erzeugen?
baka0815 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: Di 15.06.10 16:14 
hat sich erledigt.

Ich habe zwar keine Lösung zum eigentlichen Problem gefunden, allerdings das Erzeugen des Menüs jetzt so schnell hingekriegt, dass man es nicht mehr bemerkt. Falls trotzdem jemand eine Idee hat, wie man das Menü nicht jedes Mal neu ezeugt, gerne her damit!