Delphi-PRAXiS
Seite 2 von 2     12

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   ProjectLocalizer, MessageDlg Problem in Delphi2009 (https://www.delphipraxis.net/136714-projectlocalizer-messagedlg-problem-delphi2009.html)

Luckie 21. Okt 2009 11:56

Re: ProjectLocalizer, MessageDlg Problem in Delphi2009
 
Doch. Ich arbeite noch mit dem BDS 2006 und bin mir nicht sicher, wann die Unicode Unterstützung dazu gekommen ist.

RWarnecke 21. Okt 2009 12:05

Re: ProjectLocalizer, MessageDlg Problem in Delphi2009
 
Delphi 2009 hat volle Unicode-Unterstützung. Die Komponenten können ebenfalls die entsprechenden Zeichen darstellen. Hatte damals Daniel in seinem Video hervorragend vorgeführt.

himitsu 21. Okt 2009 12:47

Re: ProjectLocalizer, MessageDlg Problem in Delphi2009
 
jupp, seit D2009 ist da soooo viel Unicode drinnen, daß es an manschen Stellen schonwieder zuviel ist :lol:

Warp 21. Okt 2009 18:19

Re: ProjectLocalizer, MessageDlg Problem in Delphi2009
 
Habe mich heute nochmal ein bischen mit der dwsLocalizer Unit beschäftigt, um der Ursache etwas näher zu kommen und habe eine "Lösung" (wenn man es denn so nennen kann...) für das Übersetzen der Dialoge gefunden.

In der dwsLocalizer wird in procedure TdwsLocalizerInt.RegisterNew_LoadResString das Laden der System-Resourcen Strings (System.LoadResString) auf eine dwsLocalizer interne Funktion NewLoadResString umgebogen. Hierüber werden wohl alle nicht direkt Komponenten bezogene Strings laufen, die nicht über die Übersetzungsprozedur TranslateComponent abgewickelt werden.

Die neue Prozedur NewLoadResString hat als Ergebnistyp AnsiString. Wenn diese nun auf Typ String abgeändert wird (String in D2009 = Unicode), funktioniert die Übersetzung der Dialoge (Caption, Message-Text, Button-Captions), soweit ich es jetzt getestet habe, fehlerfrei.


Delphi-Quellcode:
// replaces the System.LoadResString method during run-time
// this function will access the loaded resource file for translated resource strings
// if no translation is found, it will check the resources of the running application
function NewLoadResString(ResStringRec: PResStringRec): String; //20091021-HH, vorher :AnsiString
const
  MAX_ID = 65536;
var
  Buffer: array [0..4096] of Char;
  ResHdl, GlobalHdl, Size, LibHdl: Cardinal;
  ResItem: PWideChar;
  Res: WideString;
begin
Ob mit dieser Änderung noch irgendwelche verborgenen Nebenwirkungen verbunden sind, weiss ich (noch) nicht. Bis jetzt sieht es jedoch zumindestens in der Programmoberfläche nicht danach aus.

Gruss,

Warp

zeras 31. Jul 2016 18:45

AW: ProjectLocalizer, MessageDlg Problem in Delphi2009
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nutzt jemand noch die Funktionen?
Ich habe mein Programm nun von D2009 auf Seattle migriert.
Was ich bis jetzt festgestellt habe, ist, das Message Dialoge nicht korrekt angezeigt werden. Es kommt immer ein "L" voran, siehe Anhang.
Unter D2009 funktionierte das problemlos.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 Uhr.
Seite 2 von 2     12

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