AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi GR32 - Drawtext rotiert, und Unicode
Thema durchsuchen
Ansicht
Themen-Optionen

GR32 - Drawtext rotiert, und Unicode

Ein Thema von myicq · begonnen am 24. Sep 2018 · letzter Beitrag vom 26. Sep 2018
Antwort Antwort
myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#1

GR32 - Drawtext rotiert, und Unicode

  Alt 24. Sep 2018, 11:03
Hallo alle

ich habe angefangen die Füße in GR32 naß zu machen. So weit eigentlich iO.

Ich habe die Demos durchgegangen, alles einfach zu verstehen.

Leider bin ich auf ein Stein gestoßen: Gedrehter Text als Widestring:

Sehe mein Beispiel: ich habe eine TNTUnicodeEdit, und zeichne mein Text mit sowohl SimpleText als TText32.draw.

Ergebniss: mit "normal" geht alles wie im Demo, wie gewollt.
Mit Chinesish wird offenbar das TText32.DrawText die Bytes einzeln ausgibt.

Frage: wie erreiche ich die Kombination:

- Delphi 6 (oder 7)
- UnicodeText
- Gedrehter Ausgabe

kann sein das GR32 doch nicht hier das beste Tool ist. Oder wurde Text32.draw() später für unicodeStrings korrigiert ?

Danke an alle Inputs.

Mein Code:
Delphi-Quellcode:
procedure TForm1.tntbtbtn1Click(Sender: TObject);
  var
    cl : TColor32;
    r1: TFloatRect;
      text32: TText32;
    thefont : TTrueTypeFont;
      x1, y1: integer;
      myfont: TFont;
begin
  img32.SetupBitmap( true, clwhite32 );

  thefont := TrueTypeFontClass.Create('Arial', randomrange(20,50));
  myfont := tfont.Create;
  myfont.Size := 32;
  myfont.Name := 'Arial Unicode MS';


       x1 := RandomRange (0, img32.Width div 2);
     y1 := randomrange(0, img32.Height div 2);

  // das geht gut:
        SimpleText(img32.Bitmap,
                myfont,
                x1,y1,
                'SimpleText: ' + tntedt1.Text,
                clBlack32);

      cl := clBlack32;
      text32 := ttext32.Create;

   // --------- Geht NICHT
   //
  with text32 do
       try
              Angle := 15;
              // procedure TText32.Draw(bitmap: TBitmap32; X, Y: single; const text: widestring; ttFont: TTrueTypeFont; color: TColor32);


              draw (
                   img32.Bitmap,
                   x1,y1,
                   'text32.draw: ' + tntedt1.text,
                   thefont,
                   clblack32
                );
        finally
            free;
        end;

       img32.Bitmap.EndUpdate;
end;
Angehängte Grafiken
Dateityp: jpg 2018-09-24_114413.jpg (20,6 KB, 27x aufgerufen)
Dateityp: jpg 2018-09-24_114448.jpg (18,8 KB, 31x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.173 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: GR32 - Drawtext rotiert, und Unicode

  Alt 24. Sep 2018, 12:51
Muss es wirklich noch diese Antike Delphi-Version sein?
Wieso nimmst du keine aktuelle Delphi-Version die für den heimgebrauch kostenlos ist und den Funktionsumfang der Pro-Version hat?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#3

AW: GR32 - Drawtext rotiert, und Unicode

  Alt 24. Sep 2018, 13:56
Ja, leider so. Muss eine "antike und alte Version" sein.

Ich habe 50-60.000 Zeilen Code, und viele alte Module.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.173 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: GR32 - Drawtext rotiert, und Unicode

  Alt 24. Sep 2018, 14:52
Dann musst du alles per Hand machen.
Allso statt die Methoden der VCL-Controls/Objekte aufrufen direkt die dahinter befindliche Wide-Version der WinAPI-Funktion.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#5

AW: GR32 - Drawtext rotiert, und Unicode

  Alt 24. Sep 2018, 17:15
Hmm..

oder versuche mal

Delphi-Quellcode:
var
  W : WideString;
...
begin
..

  W := WideString('text32.draw: ') + tntedt1.text;

              draw (
                   img32.Bitmap,
                   x1,y1,
                   W,
                   thefont,
                   clblack32
                );
..
end;
Es könnte sein, das D6 zunächst aus 'text32.draw: ' + tntedt1.text einen AnsiString macht und diesen dann wieder in nen WideString umwandelt...

Nur so ne Vermutung...
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: GR32 - Drawtext rotiert, und Unicode

  Alt 24. Sep 2018, 18:12
Ich weiß ja noch nicht was das Ziel, abgesehen von gedrehtem Text, sein soll.
Also wenn Du es schaffst den Wunschtext darzustellen, da würde ich diese Region als Bitmap auslesen und dann das Bitmap drehen, dem DIB ist der Inhalt egal.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#7

AW: GR32 - Drawtext rotiert, und Unicode

  Alt 24. Sep 2018, 22:32
Hmm..

oder versuche mal

Delphi-Quellcode:
var
  W : WideString;
...
begin
..

  W := WideString('text32.draw: ') + tntedt1.text;
Es könnte sein, das D6 zunächst aus 'text32.draw: ' + tntedt1.text einen AnsiString macht und diesen dann wieder in nen WideString umwandelt...

Nur so ne Vermutung...
Leider nicht der Fall, es ist eindeutig das Problem das die Bytes einzeln ausgegeben weden, und dehalb kein sinn machen.

Ich hatte früher selber versucht mit Unicode "picth" zu machen, und dabei jeder "Zeichen" für sich ausgeben. Geht OK, bis die "transforming " chars in Spiel kommen.
  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 10:21 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