Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
Ja, das würde mich auch interessieren. Ich habe zwar auch keinen Schimmer, wie man das am leichtesten realisieren könnte, aber ich könnte mir vorstellen, vielleicht <b>jeden</b> Menüeintrag irgendwie zu überwachen. Quasi: "Wann wurdest du zuletzt geklickt? Wat 3 Monate ist das her? Dann raus aus´m Menü."
Wäre ein Ansatz, aber so wie ich die Experten hier kenne, hauen die uns drei Zeilen Code um die Ohren, die das auch regeln.
*g*
Hi,
So direkt kenne ich keinen Weg. Aber...
Wenn Sie mit Aktionslisten (TAction) arbeiten, bietet es sich an folgendes Prinzip nachzubauen:
1) jeder Menüpunkt ist mit 1 Action verknüpft !!!
2) Jede Aktion hinterlegt in einer globalen Variable (in etwa MenuActionUpdate: Integer) ihre eigene eindeutige Kennung (Tag oder so). 1 Variable reicht, da nicht mehrere Aktionen gleichzeitig ausgelösst werden können...
3) Im Event <b>Update</b> der Aktionsliste wird die Variable geprüft und event. Anpassungen (MeineAction. / MeinMenupunkt.Visible:=True /False) durchgeführt. Anschließend wird die Variable zurückgesetzt (:=-1).
4) ...
Das mit den Actions sollte man nur fuer Menuepunkte machen die nicht auch mit anderen Elementen wie Speedbuttons verbunden sind. Solche Menuepunkte sind ja durch Zuordnung eines Speedbuttons als besonders wichtig heraiusgehoben.
Letztlich musst du fuer jeden Menuepunkt eine Statistik fuehren und diese persistent halten. Es bietet sich an den Menuebaum in einen registry-Baum abzubilden und dort die Statistik abzulegen.
Persoenlich halte ich personalisierte Menues fuer Mist. Es zeigt nur das jemand kein vernuenftig strukturiertes Programm hinbekommt
Einfach WM_COMMAND abfangen, gewähltes menuitem auslesen, in die reg schreiben ... bei programmstart reg-auslesen und menuitems dementsprechend setzen.
das einzig kritische ist bisher das Expand des Menüs ... dauert zumindest das zu implementieren (oder ich habs interface noch nicht gefunden
Comment