Thema: Delphi TextSuite will nicht

Einzelnen Beitrag anzeigen

Benutzerbild von Lossy eX
Lossy eX

Registriert seit: 7. Aug 2007
113 Beiträge
 
#20

Re: TextSuite will nicht

  Alt 2. Jul 2008, 13:44
Font: Das sind ganz normale Quads. Wenn du beim Zeichnen den Tiefentest deaktivierst werden sie über alles andere gezeichnet. Der Tiefentest könnte im übrigen auch dafür sorgen, dass einige Zeichen (wie in "COMMAND" zu sehen) links abgeschnitten werden. Falls dir Courier nicht gefällt musste mal im System schauen. Ich glaube "Lucida Console" sieht freundlicher aus.

Du kannst mit der Bibliothek auch abfragen ob du ein Monospace Font hast oder nicht. Wenn du es erstellt hast rufst du tsGetParateri(TS_FONT_FIXED_WIDTH) auf. Kommt TS_TRUE zurück ist es eines. Bei TS_FALSE nicht.

Zitat von EWeiss:
Zitat:
Es gibt auch eine Variante von tsTextOut die direkt mit WideStrings
Du meinst also wenn ich das richtig verstehe
anstatt SongName: string; diesen als Widestring zu deklarieren ?
Das sollte dann reichen ?

Meine vermutung ist eine etwas andere
das es nicht am Fontset sondern am Charset liegt oder ist es das was du mit
Widestring korrigieren willst ? 2 byte.

Was ich meine ....
Anstelle von {ANSI_CHARSET} OEM_CHARSET zu verwenden hätte dann aber nichts mit Widestring zu tun
oder geht das nur wenn beides zusammen arbeitet ?

Kann es ja nicht testen hab kein koreanisches System

Kannst du mir ein Beispiel zeigen wie ich den richtigen Charset verwenden soll mit TextSuite ?
Am besten das nach deiner meinung sinnvollste.
Also ich meine Charset und Codepage ist da ziemlich das Gleiche. Das arbeitet auch nach dem Prinzip, dass das Zeichen XYZ im Kyrillischen, im europäischen und sonst wo jeweils eine eigene Bedeutung hat. Wenn du jetzt im Europäischen bist und einen kyrillischen Text hast dann steht da nur murks drinne. Du kannst den zwar glaube ich als kyrillisch betrachten (wobei das über charsets ein absoluter Krampf sein muss) aber dann dürfen da keine speziellen europäischen Zeichen enthalten sein. Die würden wieder zu kyrillischen Zeichen werden und wären damit falsch. Du kannst von dem System her auch keine 2 Codepages mischen. Also ein Text der 2x CharCode 224 enthält ein mal im Kyrillischen und ein Mal als europäischen ist nicht möglich.

Eine Codepage setzten kannst du mit tsSetParameteri(TS_CODEPAGE, TS_CODEPAGE_8859_8);. Allerdings wird das für dich nicht viel bringen, da Koreanisch Codepages hat die ich noch gar nicht unterstütze (andere typ codepages). Und wegen dem Abschnitt weiter oben.

Ich würde dir von daher empfehlen es lieber gleich richtig zu machen. Also Widestrings. Denn in denen hat jedes Zeichen einen eigenen Wert und du keine Einschränkung in gebietsschemen. ABER. Du MUSST auch komplett mit WideStrings arbeiten. Also vom Anfang bis zum Ende. Ich weiß jetzt nicht wo du die Texte herbekommst aber wenn das Dateinamen aus Delphi sind, dann funktioniert es nicht einen String zu einem WideString zuzuweisen, da bereits in dem String schon fehlerhafte Texte enthalten sein dürften. Das ist etwas wessen du dir bewusst sein musst.

Die TextSuite kann die dann nur darstellen, wenn sie lückenlos weitergereicht werden. Selbes würde im übrigen auch für die Windows GDI gelten, wenn du damit Unicode Texte ausgeben würdest.
Ich habe ja keine Vorurteile gegenüber Autofahrern ... aber Fahrer von BMW und Mercedes bestätigen diese regelmäßig.
Außerdem neue technologische Errungenschaften: Serienmäßig eingebaute Rechtsfahrsperre und der stromsparende Blinker.
  Mit Zitat antworten Zitat