AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Lokalisierungsproblem beim Modifier bei THotKey-Variante
Thema durchsuchen
Ansicht
Themen-Optionen

Lokalisierungsproblem beim Modifier bei THotKey-Variante

Ein Thema von LHUser · begonnen am 26. Okt 2009 · letzter Beitrag vom 31. Okt 2009
Antwort Antwort
LHUser
(Gast)

n/a Beiträge
 
#1

Lokalisierungsproblem beim Modifier bei THotKey-Variante

  Alt 26. Okt 2009, 21:50
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
Angehängte Dateien
Dateityp: pas hkeyex_106.pas (10,5 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
The_Unknown

Registriert seit: 25. Feb 2007
28 Beiträge
 
#2

Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante

  Alt 27. Okt 2009, 21:59
Kann mir hier auch niemand helfen ? Ich dachte, das wäre für die Gurus keine große Sache
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#3

Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante

  Alt 31. Okt 2009, 20:28
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 Delphi-Referenz durchsuchenShortCutToText
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
The_Unknown

Registriert seit: 25. Feb 2007
28 Beiträge
 
#4

Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante

  Alt 31. Okt 2009, 21:11
Vielen, vielen Dank erst mal für deine Antwort

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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#5

Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante

  Alt 31. Okt 2009, 21:31
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

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 Delphi-Referenz durchsuchenUpdateResource.

- 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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
The_Unknown

Registriert seit: 25. Feb 2007
28 Beiträge
 
#6

Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante

  Alt 31. Okt 2009, 22:03
Zitat von himitsu:
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 Delphi-Referenz durchsuchenUpdateResource.
Meinst du die Konstanten in den Delphi Sources? Falls ja, wie kann ich auf diese zugreifen?

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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#7

Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante

  Alt 31. Okt 2009, 22:49
Ja, man kann sich nicht selber verändern (jedenfalls nicht direkt ... siehe z.B. UpdaterUpdater ... im Prinzip kopiert man sich selber, verändert die Kopie und tauscht sich über 'nen "Trick" aus)

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 Hier im Forum suchenLokalisierungsmöglichkeiten.
Es gibt ja fertige Codes, welche recht gut funktionieren.

PS: wer weiß
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
The_Unknown

Registriert seit: 25. Feb 2007
28 Beiträge
 
#8

Re: Lokalisierungsproblem beim Modifier bei THotKey-Variante

  Alt 31. Okt 2009, 23:15
Zitat von himitsu:
Darum verwieß ich ja auf andere Hier im Forum suchenLokalisierungsmöglichkeiten.
Es gibt ja fertige Codes, welche recht gut funktionieren.
Was meinst du da speziell?

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 !!!!
Angehängte Dateien
Dateityp: pas hkeyex_497.pas (11,5 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz