Textausgabe in Image (UTF8)
- juelin
- Beiträge: 173
- Registriert: Sa 24. Jul 2021, 18:03
- OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: Mannheim
Textausgabe in Image (UTF8)
Hallo alle zusammen,
ich habe ein Problem mit der Textausgabe in einem TImage.
Der Text wird in TEdit eingeben.
Sollange ich den Text z. B. in einem Label ausgebe ist auch alles ok.
Wenn ich aber den Text (Edit1,Text) in einem Image ausgeben will (Image2.Canvas.Textout(X,Y,Edit1.Text)
so lommen bei Umaluten Hiroglyphen raus.
In Text1.Edit steht UTF8 Code und in Lazarus habe ich auch UTF8 als Code stehen. (kleines ü steht Hex: C3,BC in Edit1.Test)
Habe auch schon mit Utf8ToAnsi bzw UTF8Encode probiert hilft auch nicht.
Image2.Canvas.Font.Charset habe ich auch probiert. klappt auch nicht.
Habe heute den ganzen Abend nach einer Lösung im Internet gesucht, aber nix gefunden.
Kann mir da jemand helfen?
Danke und Gruß
Jürgen
ich habe ein Problem mit der Textausgabe in einem TImage.
Der Text wird in TEdit eingeben.
Sollange ich den Text z. B. in einem Label ausgebe ist auch alles ok.
Wenn ich aber den Text (Edit1,Text) in einem Image ausgeben will (Image2.Canvas.Textout(X,Y,Edit1.Text)
so lommen bei Umaluten Hiroglyphen raus.
In Text1.Edit steht UTF8 Code und in Lazarus habe ich auch UTF8 als Code stehen. (kleines ü steht Hex: C3,BC in Edit1.Test)
Habe auch schon mit Utf8ToAnsi bzw UTF8Encode probiert hilft auch nicht.
Image2.Canvas.Font.Charset habe ich auch probiert. klappt auch nicht.
Habe heute den ganzen Abend nach einer Lösung im Internet gesucht, aber nix gefunden.
Kann mir da jemand helfen?
Danke und Gruß
Jürgen
Re: Textausgabe in Image (UTF8)
Kann ich nicht nachvollziehen - siehe Beispiel
- Dateianhänge
-
- image_textout.zip
- (102.93 KiB) 58-mal heruntergeladen
- Jorg3000
- Lazarusforum e. V.
- Beiträge: 253
- Registriert: So 10. Okt 2021, 10:24
- OS, Lazarus, FPC: Win64
- Wohnort: NRW
Re: Textausgabe in Image (UTF8)
Guten Morgen!
Ich meine mich zu erinnern, dass ich mit Textout() auch schon mal stundenlang "Spaß" hatte. Ist aber schon Jahre her, in einer früheren Lazarus-Version.
Falls das Problem noch besteht, hätte ich folgenden Ansatz (nicht getestet) ...
Ich meine mich zu erinnern, dass ich es mir damals so erklärt habe, dass in FreePascal in der CodePage-Kennung eines Strings normalerweise nur 0 steht - und diese 0 einfach die aktuelle Programm-CodePage meint (i.d.R. UTF-8). Das finde ich ziemlich nachlässig, da eine 0 ohne den Kontext der Instanz nichts bedeutet.
Nachdem ich anstelle der 0 die echte CodePage-ID für UTF-8, nämlich 65001, manuell gesetzt habe, hatte es damals funktioniert, glaube ich.
Grüße, Jörg
Ich meine mich zu erinnern, dass ich mit Textout() auch schon mal stundenlang "Spaß" hatte. Ist aber schon Jahre her, in einer früheren Lazarus-Version.
Falls das Problem noch besteht, hätte ich folgenden Ansatz (nicht getestet) ...
Code: Alles auswählen
var s: RawByteString;
s:=Edit1.Text;
SetCodepage(s, cp_utf8, false); // cp_utf8 = 65001
Image2.Canvas.Textout(X,Y,s);
Nachdem ich anstelle der 0 die echte CodePage-ID für UTF-8, nämlich 65001, manuell gesetzt habe, hatte es damals funktioniert, glaube ich.
Grüße, Jörg
- juelin
- Beiträge: 173
- Registriert: Sa 24. Jul 2021, 18:03
- OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: Mannheim
Re: Textausgabe in Image (UTF8)
Hallo Jong3000,
habe ich probiert hat leider auch nix gebracht.
siehe Bild
Gruß
Jürgen
habe ich probiert hat leider auch nix gebracht.
siehe Bild
Gruß
Jürgen
- Dateianhänge
-
- umlaute.jpg (77.49 KiB) 687 mal betrachtet
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1537
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Textausgabe in Image (UTF8)
Das kann ich nicht nachvollziehen.
Ich habe eine Form mit einem TImage, TEdit und TButton erstellt und im ButtonClick steht:
Da wird alles ordentlich ausgegeben.
Könntest du ein kleines Beispielprojekt posten, wo man das nachvollziehen kann?
Ich habe eine Form mit einem TImage, TEdit und TButton erstellt und im ButtonClick steht:
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
const cy : integer = 0;
begin
Image1.Canvas.TextOut(100, cy, Edit1.Text);
Inc(cy, Image1.Canvas.Textheight(Edit1.Text));
end;
Könntest du ein kleines Beispielprojekt posten, wo man das nachvollziehen kann?
- Jorg3000
- Lazarusforum e. V.
- Beiträge: 253
- Registriert: So 10. Okt 2021, 10:24
- OS, Lazarus, FPC: Win64
- Wohnort: NRW
Re: Textausgabe in Image (UTF8)
Hm,
ist Canvas.Font.CharSet = ANSI_CharSet (soll) oder OEM_CharSet (falsch) ?
Mach mal vorm Schreiben:
Falls das auch nix bringt, hätte ich alternativ eine Nur-Windows-Lösung mittels UTF-16 ...
Dabei müssten die Koordinaten in einem TRect übergeben werden.
ist Canvas.Font.CharSet = ANSI_CharSet (soll) oder OEM_CharSet (falsch) ?
Mach mal vorm Schreiben:
Code: Alles auswählen
Image2.Canvas.Font := Form1.Font;
Dabei müssten die Koordinaten in einem TRect übergeben werden.
Code: Alles auswählen
var ws: UnicodeString;
ws := UnicodeString( Edit1.Text );
Windows.DrawTextW( Image2.Canvas.Handle, PWChar(ws), Length(ws), Rect, DT_SINGLELINE or DT_VCENTER or DT_NOPREFIX );
-
- Beiträge: 749
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: Textausgabe in Image (UTF8)
Ich habe das Beispiel von fliegermichl grad probiert.
Lazarus 3.0 (rev lazarus_3_0) FPC 3.2.2 x86_64-win64-win32/win64
Bei mir funktioniert das problemlos.
Lazarus 3.0 (rev lazarus_3_0) FPC 3.2.2 x86_64-win64-win32/win64
Bei mir funktioniert das problemlos.
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Re: Textausgabe in Image (UTF8)
Hast du das Bsp. von wp_xyz oben ausprobiert? (erste Antwort).
Was passiert da bei dir?
Schon mal versucht, die Schriftart zu wechseln? Kann ich mir zwar kaum als Grund vorstellen, aber "Versuch macht kluch".
Was passiert da bei dir?
Schon mal versucht, die Schriftart zu wechseln? Kann ich mir zwar kaum als Grund vorstellen, aber "Versuch macht kluch".
- juelin
- Beiträge: 173
- Registriert: Sa 24. Jul 2021, 18:03
- OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: Mannheim
Re: Textausgabe in Image (UTF8)
Beispiel von wp_xyz bring nix.
- juelin
- Beiträge: 173
- Registriert: Sa 24. Jul 2021, 18:03
- OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: Mannheim
Re: Textausgabe in Image (UTF8)
Hallo Jong3000,
in Deimen Beispiel:
Windows.DrawTextW( Image2.Canvas.Handle, PWChar(ws), Length(ws), Rect, DT_SINGLELINE or DT_VCENTER or DT_NOPREFIX );
mekert Lazarus Windows und PWChar an.
Da braucht er wahrscheinlich in USES noch einen Eintrag?????
Bei Rect fehlt doch die Angabe von Start/ende X,Y??????
Und die DT_......... findet er nicht.
Danke und Gruß
Jürgen
in Deimen Beispiel:
Windows.DrawTextW( Image2.Canvas.Handle, PWChar(ws), Length(ws), Rect, DT_SINGLELINE or DT_VCENTER or DT_NOPREFIX );
mekert Lazarus Windows und PWChar an.
Da braucht er wahrscheinlich in USES noch einen Eintrag?????
Bei Rect fehlt doch die Angabe von Start/ende X,Y??????
Und die DT_......... findet er nicht.
Danke und Gruß
Jürgen
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1537
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Textausgabe in Image (UTF8)
Heisst das es geht oder geht nicht? Bei mir wird da alles ordentlich angezeigt.
Was hast du für eine Lazarus Version?
Windows oder Linux?
- Niesi
- Lazarusforum e. V.
- Beiträge: 501
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 3.7 Fpc 3.2.3 und Laz 3.0 Fpc
Re: Textausgabe in Image (UTF8)
Das Beispiel von wp_xyz arbeitet einwandfrei ...
Edit: Rechtschreibung
Edit: Rechtschreibung
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
- juelin
- Beiträge: 173
- Registriert: Sa 24. Jul 2021, 18:03
- OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: Mannheim
Re: Textausgabe in Image (UTF8)
hier nochmal,
das Beispiel von wp_xyz finktioniert bei mir nicht.
Habe WINDOWS 10
Gruß
Jürgen
das Beispiel von wp_xyz finktioniert bei mir nicht.
Habe WINDOWS 10
Gruß
Jürgen
- Dateianhänge
-
- bild2.jpg (35.45 KiB) 592 mal betrachtet
-
- bild1.jpg (82.99 KiB) 592 mal betrachtet
- Niesi
- Lazarusforum e. V.
- Beiträge: 501
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 3.7 Fpc 3.2.3 und Laz 3.0 Fpc
Re: Textausgabe in Image (UTF8)
.
Und so sieht das Beispiel von wp_xyz unter Windows 10 aus:
.
Und so sieht das Beispiel von wp_xyz unter Windows 10 aus:
.
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
-
- Beiträge: 6709
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Textausgabe in Image (UTF8)
Habe es auch getestet, normal unter Linux, sowie mit wine, beides ist io.
Wen ich die Screenshoots von juelin angucke, verwendet er ein ganz komischer Font.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot