AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Text Sprachumschaltbar ausgeben

Ein Thema von Janine1111 · begonnen am 13. Jan 2014 · letzter Beitrag vom 13. Jan 2014
Antwort Antwort
Janine1111

Registriert seit: 18. Dez 2013
3 Beiträge
 
#1

Text Sprachumschaltbar ausgeben

  Alt 13. Jan 2014, 14:00
Hallo,

ich habe ein kleines Problem. Ich habe ein kleines ActiveX geschrieben, in dessen Oberfläche sich ein Button befindet. Der Text auf dem TButton soll sprachumschaltbar sein. Das heißt ich habe eine SQL Datenbank in der sich eine Tabelle befindet mit einer ID und den entsprechenden Übersetzungen. Abhängig von der ID zeige ich den Text an. Nur im russischen bekomme ich soetwas: 'Îáúåäèíåííàÿ ëåâàÿ áîêîâàÿ ïàíåëü'. Wie schaffe ich es, dass der Text korrekt angezeigt wird?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Text Sprachumschaltbar ausgeben

  Alt 13. Jan 2014, 14:43
Das kommt darauf an.
Mein erster Rat wäre, einen Font mit kyrillischen Zeichen nutzen.

Dann gäbe es die Frage wie der Text gespeichert ist 8Bit/Zeichen 16Bit/Zeichen...

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Janine1111

Registriert seit: 18. Dez 2013
3 Beiträge
 
#3

AW: Text Sprachumschaltbar ausgeben

  Alt 13. Jan 2014, 14:59
Ich habe es gelöst bekommen... in dem ActiveX bekomme ich zwar einen falschen String, aber wenn ich die Ausgabesprache des PC´s auf russisch einstelle, dann werden die kyrillischen Zeichen dargestellt...
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Text Sprachumschaltbar ausgeben

  Alt 13. Jan 2014, 15:02
Ich kenne mich mit ActiveX jetzt kein Stück aus, aber mehr Details wie verwendete Delphi-Version wären bestimmt hilfreich gewesen. Auch: Wenn im Betrieb die Sprache umgestellt wird, bekommt deine Anwendung eine Message, damit du darauf reagieren kannst. Keine Ahnung ob dir das in Zukunft hilft.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Text Sprachumschaltbar ausgeben

  Alt 13. Jan 2014, 16:42
aber mehr Details wie verwendete Delphi-Version wären bestimmt hilfreich gewesen.
Klingt nach einem Ansi-Delphi, also vor Delphi 20009.
Danach kannst du Umschalten wie du willst, es ändert sich aber praktisch nichts.

Und ja, es gibt einen Grund, warum man z.B. die Delphi-Version im Profil und manchmal auch in den neuen Themen angeben kann.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (13. Jan 2014 um 16:44 Uhr)
  Mit Zitat antworten Zitat
ASM

Registriert seit: 16. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Text Sprachumschaltbar ausgeben

  Alt 13. Jan 2014, 17:48
Abhängig von der ID zeige ich den Text an. Nur im russischen bekomme ich soetwas: 'Îáúåäèíåííàÿ ëåâàÿ áîêîâàÿ ïàíåëü'. Wie schaffe ich es, dass der Text korrekt angezeigt wird?
Ab Delphi 2009ff und ohne die Ausgabesprache des ganzen PC auf russisches Layout umstellen zu müssen:
Delphi-Quellcode:
function AnsiToUTF16(const AText: AnsiString; Codepage: DWORD): String;
var
  BufSize: Integer;
  dwFlags: DWORD;
begin
  result := '';
  if Length(AText) = 0 then Exit;
  case CodePage of
    932: dwFlags := MB_PRECOMPOSED;
  else
    dwFlags := 0;
  end;
  BufSize := MultiByteToWideChar(CodePage, dwFlags, PAnsiChar(AText), Length(AText), nil, 0);
  SetLength(result, BufSize);
  MultiByteToWideChar(CodePage, dwFlags, PANsiChar(AText), Length(AText), PWideChar(result), BufSize);
end;

// Beispiel
procedure TMainForm.Button1Click(Sender: TObject);
var zeile: AnsiString;
begin
  zeile:='Îáúåäèíåííàÿ ëåâàÿ áîêîâàÿ ïàíåëü';
  // hier mit Codepage für die kyrillische Schrift:
  Showmessage(format('Ansicode: %s'#13#10'Unicode: %s',[zeile,AnsiToUTF16(zeile, 1251)]));
end;
In älteren Delphiversionen (z.B. Delphi 7) geht die Wiedergabe der kyrillischen Unicodezeichen mit bordeigenen Mitteln nur extrem umständlich auf dem Umweg über eine eingebaute WebBrowser-Instanz und mit Hilfe einer CharConvertTable, welche auf einer programmintern konstruierten Minimalwebseite die ansicodierten Zeichen in die HTMLcodes der entsprechenden kyrillischen Zeichen konvertiert.
  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 05:34 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