Deutsch
Forum

Sprache ändern

 

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
 
31.10.2014  
 




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
SubProc ToolBar.GetButtonText

    Parameters hTB&,ID%
    Case ID% > 0:ID% = ID% * -1
    Declare T$
    T$ = MkStr$("\z",100)
    SendMessage(hTB&,~TB_GETBUTTONTEXT,ID%,Addr(T$))
    Return Trim$(T$)

EndProc

SubProc ToolBar.DeleteButton

    Parameters hTB&,Index%
    Return SendMessage(hTB&,~TB_DELETEBUTTON,Index%,0)
    'entfernt Button mit Index% (nicht ID%!) Separatoren werden mitgezählt!

EndProc


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
 
31.10.2014  
 




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 ?
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

03.11.2014  
 




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....
 
04.11.2014  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

6.052 Betrachtungen

Unbenanntvor 0 min.
Stephan Sonneborn28.09.2020
RudiB.29.03.2020
maroro01.07.2016
Ernst12.05.2016
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie