| |
|
|
Andreas Koch | Hallo zusammen,
vermutlich stehe ich einfach nur auf dem Schlauch, vielleicht geht's auch einfach nicht. Es geht darum, in einem Profanprogramm zwischen verschiedenen Sprachen hin und herschalten zu können. Für normale Buttons, Edits, Textfelder und Tabs ist das auch kein Problem. Die kann ich mit settext einfach ändern. Es hakt bei Menüeinträgen (Popup und Appendmenu) und Toolbarbuttons (Addtextbutton). Kann mir da jemand weiterhelfen?
Danke und schönen Gruß
Andreas Koch |
|
|
| |
|
|
|
Jörg Sellmeyer | Menüs musst du mit RemoveMenue entfernen und neu aufbauen. Ich glaube, per API kann man auch neue Menütexte setzen aber unkomplizierter ist es, sie einfach neu zu erstellen. Deine Popup-Menüs (bei Mausklick rechts als Kontextmenü) musst du dann enttsprechend mit andersprachigen Texten erzeugen. Die werden ja sowieso immer aktuell erzeugt, wo sie aufgerufen werden.
Zur Toolbar fällt mir grad nichts ein, was einem SetText entspricht.. Normalerweise sind sie ja da, um gerade keinen Text zu verwenden. Da wäre es dann sinnvoll, den jeweiligen Tooltip mit SetText anzupassen. Es gibt wohl eine Message, um den Text auszulesen, aber keine, um Text zu ändern. Man könnte ihn bei Bedarf entfernen und mit Toolbar("InsertButton",...) neu erzeugen. Dafür ist aber wieder eine Menge API nötig.
Hier noch ein paar Procs: KompilierenMarkierenSeparieren Einfacher wäre es, die Textbuttons auf der Toolbar in allen Sprachen gleich zu erzeugen und mit Toolbar("ShowButton/HideButton"...) bei Bedarf anzuzeigen.
Das InsertButton wäre vielleicht noch was für künftige Profanversionen (oder sogar noch für die aktuelle Neuausgabe?) |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 31.10.2014 ▲ |
|
|
|
|
Andreas Koch | Danke für deine Antwort, ich kann das jetzt gerade nicht testen und müsste bis Montag warten. Mir fallen aber spontan 2 weitere Fragen ein:
- Wie spreche ich bei RemoveMenu die Menüüberschriften, die mit Popup erzeugt werden, an? RemoveMenu erwartet ja eine Menünummer und das Popupmenü hat meines Wissens keine Nummer.
-Das mit dem show/hide button müsste ich hinkriegen. Bei den Textbuttons kann ich zur Not aber auch auf den Text verzichten. Du schreibst, dass man den Tooltip mit settext anpassen kann. Wie komme ich denn an den Tooltip ran? Schließlich bekomme ich bei dem Befehl toolbar("Addbutton",....) kein Handle von dem Ding.
Schönen Gruß
Andreas Koch |
|
|
| |
|
|
|
Georg Teles | Guten Abend,
für Menü gibt es ModifyMenu [...]
und für Toolbar vllt. mit DestroyWindow(hToolbar&) zu löschen und neu zu definieren ? |
|
|
| |
|
|
|
Jörg Sellmeyer | Dank der neuesten Erweiterungen kann man jetzt einzelne Buttons entfernen und neu einfügen: [...]
Für die Toolbar gibt es einen Tooltip-Speicherbereich in der Buttonstruktur. Ich weiß im Moment auch nicht, ob und wie man darauf Zugriff erhalten kann. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 03.11.2014 ▲ |
|
|
|
|
Andreas Koch | Hallo nochmal,
inzwischen konnte ich ein paar Sachen ausprobieren. Der Befehl ModifyMenu funktioniert. Allerdings musste ich ihn etwas abändern, damit der Menüpunkt auch noch auf die gleiche Nummer anspricht. Den Quellcode habe ich hier angefügt. KompilierenMarkierenSeparieren
Proc ChangeMenu
Parameters m%,nr%,Pos%,Text$, MenuItem&
' m%, bei 0 ist das hMenu gemeint, bei 1 das hSubMenu
' nr%, die Position des hMenu bzw. d MenuItem
' Pos% gibt die Position an für das hSubMenu an
' Text$ enthält den neuen Text
' Menuitem& enthält die Menünummerierung
Declare hSubMenu&, Menu#
Dim Menu#,255
hSubMenu& = ~GetSubMenu(&hMenu,Pos%)
String Menu#,0=Text$
Case m%=0 : ~ModifyMenu(&hMenu,nr%,~MF_BYPOSITION | ~MF_STRING,MenuItem&,Menu#)
Case m%=1 : ~ModifyMenu(hSubMenu&,nr%,~MF_BYPOSITION | ~MF_STRING,MenuItem&,Menu#)
~DrawMenuBar(%hwnd)
Dispose Menu#
EndProc
Als nächstes werde ich mal die Sache mit dem ("ShowButton/HideButton"...) ausprobieren. Die Buttons einzeln zu löschen und neu zu erzeugen wäre zwar sauberer, ich habe nur keine Subscriptionsversion.... |
|
|
| |
|
|