@ffgorcky
Danke für Deine PN. Aus irgendwelchen Gründen habe ich keine Benachrichtigung bei Euren Postings bekommen...
Zur "MenuRight"-Funktion:
Scheint in die richtige Richtung zu gehen, aber funktioniert irgendwie nicht so wirklich...
Ich habe zum Testen eine neue Form mit einem MainMenu und drei Items und jeweils einem SubItem erstellt. Dann einen Button platziert und ihm die Funktion wie folgt zugewiesen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| procedure TForm1.FormCreate(Sender: TObject); procedure MenuRight(const Value: Byte); var m: TMenuItemInfo; h: hMenu; s: String; begin with Form1 do begin h := GetMenu(Handle); m.cbSize := SizeOf(m); m.cch := SizeOf(s); m.dwTypeData := PChar(@s[1]); m.fMask := MIIM_TYPE;
GetMenuItemInfo(h,Value,true,m); m.ftype := m.ftype or MFT_RIGHTJUSTIFY; SetMenuItemInfo(h,Value,true,m); Refresh; end; end; begin MenuRight(1); end; |
Nach einem Klick auf den Button scheint erstmal nichts zu passieren. Schiebt man jedoch das Fenster aus dem Bildschirmanzeigebereich heraus und wieder herein, sieht man dass der mittlere Menüeintrag verschwunden ist. Die anderen beiden funktionieren normal. Die nicht aktualisierte Anzeige ist durch das Refresh wohl nicht getan und auch ein Repaint brachte nichts.
Bei einem erneuten Klick auf den Button (und wieder Fenster durch Verschieben aktualisieren) befindet sich der dritte Menüeintrag ganz rechts. Der zweite fehlt nachwievor.
Wenn jetzt also der mittlere Menüeintrag (also die übergebene 1) nicht verschwindet und das ganze auch richtig aktualisiert wird, dann wärs top.
Edit: Getestet mit Vista
Luckie hat folgendes geschrieben : |
Menüs haben Menüeinträge. Toolbars haben Schaltflächen. Um was geht es jetzt? |
Es geht um ein TMainMenu. Ob da jetzt ein einzelner Menüeintrag ganz rechts angeordnet wird oder ob es irgendwie möglich ist einen Button auf das Menü ganz rechts zu positionieren, ist mir egal. Hauptsache, da ist ein klickbarer Text.