![]() |
Lokalisierungsproblem beim Modifier bei THotKey-Variante
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
bitte nicht böse sein: Ich habe das gleiche Thema schon einmal in einem anderen Forum gepostet, aber da dort anscheinend niemand helfen kann, versuch ichs hier mal. Ich habe hier eine Komponente aus dem Internet, die praktisch ein THotKey plus Windowstaste als zusätzlichen Modifier ist. Nun gibt es damit das Problem, dass die Tasten, die lokalisiert werden müssen, nicht zur Laufzeit sondern schon zur Entwurfszeit lokalisiert werden. Das bedeutet, dass da dann auch in einem englischen Betriebssystem "Strg+X" steht. Ich habe herausgefunden, dass "SmkcCtrl" den String für die Modifier bereitstellt. Ich habe den (recht kurzen) Quelltext mal angehangen. Weiterhin habe ich versucht, das betreffende Array, wo die Strings für Strg usw. drin stehen in die public-Definition zu schreiben. Damit habe ich nun auch von meiner Form-Klasse Zugriff auf dieses Array. Leider hat eine Änderung über HotKeyEx1.MenuKeyCaps[mkcCtrl] := 'Hallo'; keinen Einfluss auf die Komponente. Auch ein neues Create() bringt keinen Erfolg. Es wäre wirklich super, wenn ihr mir da helfen könntet, denn ich bin etwas ratlos, da Komponenten ja nun mal zur Entwurfszeit eingebunden werden :( Ciao LHUser |
Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante
Kann mir hier auch niemand helfen :(? Ich dachte, das wäre für die Gurus keine große Sache :cry:
|
Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante
Wenn ich mich recht erinnere, dann hat Delphi selber eine Funktion, welche solche Tasten-Codes (Word) in Lesbares (String) umwandelt ... vermutlich wird da einfach diese Funktion genutzt.
Ja und Delphi bringt seine eigenen Konstanten/Texte mit. deutsches Delphi = deutscher Text englisches Delphi = englischer Text [add] wenn du über die Delphi-SourceCodes verfügst Const.pas
Delphi-Quellcode:
SmkcBkSp = 'Rück';
SmkcTab = 'Tab'; ... SmkcDown = 'Ab'; SmkcIns = 'Einfg'; SmkcDel = 'Entf'; SmkcShift = 'Umsch+'; SmkcCtrl = 'Strg+'; SmkcAlt = 'Alt+'; und genutzt wird es z.B. von ![]() |
Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante
Vielen, vielen Dank erst mal für deine Antwort :thumb:
Nun erstellt man mit Delphi nicht nur für eine Sprache, sondern halt auch für mehrere. Wie kann ich dies denn zur Laufzeit noch verändern? Wäre es beispielsweise möglich, direkt in die *.pas-Datei eine prüfung der Sprache von Windows einzubauen, oder ist es dann schon zu spät? Edit: Bitte nicht über den doppelten Usernamen wundern. Ich wusste nicht mehr, dass es meinen alten Account von 2007 noch gibt. Das heißt also The_Unknown=LHUser und demnach kann der Account LHUser von den Mods ruhig gelöscht werden ;) Sorry dafür. |
Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante
ja, hier wird halt keiner so schnell gelöscht :)
das löschen kannst du auch selber machen ... siehe Profil (oder, wenn es dir wichtig ist, an den Admin 'ne PN ... vielleicht ändert er ja noch den User im Post auf dich ab) Zum Problem: das ist zu spät, denn es handelt sich dort um Konstanten :zwinker: Aber es gibt da gewisse Tricks: - diese Konstanten sind als "ResourceString" definiert, daß heißt, du kannst nach dem Compilieren mit einem ResourceEditor diese String ändern, das geht auch über ein eigenes Programm mittels ![]() - es gibt auch Zusatzmodule, welche dieser eventuell mit übersetzen GNU GetText schau dich dafür mal im Forum um, da gibt es sehr viele Threads zum Thema Lokalisierung, mit Unmassen an Lösungswegen |
Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante
Zitat:
Ich erzähle einfach mal, wie ich es verstanden habe: Ein laufender Prozess kann nicht seine eigenen Ressourcen verändern, daher könnte man das von einer anderen (temporären) Anwendung machen lassen und die Hauptanwendung natürlich vorher schließen. Nun hapert es, wie gesagt, daran, die Ressource in meiner EXE aus einer Fremdanwendung heraus zu verändern. Kannst du mir hier aushelfen? Edit: Was mir gerade noch einfällt, kriege ich da keine Probleme mit Antivirenprogrammen bzw. dem UAC, wenn ich einfach an "fremden" Anwendungen herumwerkle? Dankesähr :) P.S.: Vielleicht kennen wir uns, ich wohne auch in der Elbflorenz ;) |
Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante
Ja, man kann sich nicht selber verändern (jedenfalls nicht direkt ... siehe z.B.
![]() anderes Problem: Seit Vista hat man standardmäßig keine Schreibrechte mehr im Programmverzeichnis. Und ja, der Virenscanner könnte/wird vermutlich etwas durchdrehn. weiteres Problem: ResourceStrings haben keinen Namen ... sie sind durchnummeriert. Und es gibt keine Feste Bindung, zwischen Nummer und Inhalt (Delphi legt die so an, wie er sie grade findet) Darum verwieß ich ja auf andere ![]() Es gibt ja fertige Codes, welche recht gut funktionieren. PS: wer weiß :angel: |
Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ich habe es jetzt übrigens nun doch so weit, dass er die entsprechenden Strings zur Laufzeit abhängig von einem Registry-Key (wo dann die Sprache hinterlegt ist) setzt. Das klappt auch soweit. Nur die Umwandlung zurück in einen echten Shortcut will er nicht so recht machen. Es wäre wirklich super, wenn du dir den Teil in der Komponente mal anschauen könntest. Ist ja eine seeehr kleine Datei. Danke schonmal !!!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz