Textausgabe in Image (UTF8)

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Benutzeravatar
theo
Beiträge: 10707
Registriert: Mo 11. Sep 2006, 19:01

Re: Textausgabe in Image (UTF8)

Beitrag von theo »

juelin hat geschrieben: Di 7. Jan 2025, 11:01 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?????
Genau. Und welche könnte das sein, wenn es heisst: "Windows.Draw..."?

Code: Alles auswählen

uses Windows;

Benutzeravatar
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)

Beitrag von Niesi »

Mathias hat geschrieben: Di 7. Jan 2025, 13:18
Wen ich die Screenshoots von juelin angucke, verwendet er ein ganz komischer Font.
Vermutlich ein Font von früher, als es noch keine Umlaute gab ... :lol:

Bitte mal prüfen, ob der Zeichensatz alle erforderlichen Zeichen enthält.
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
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)

Beitrag von juelin »

Hallo Mathias,
das ist kein komischer Font.
Das ist UTF8.
In dem String sthen ja 3 ü
und haben den HexCode C3BC was ü in UTF8 entspricht.
Gruß
Jürgen

Benutzeravatar
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)

Beitrag von fliegermichl »

juelin hat geschrieben: Di 7. Jan 2025, 14:24 Hallo Mathias,
das ist kein komischer Font.
Das ist UTF8.
In dem String sthen ja 3 ü
und haben den HexCode C3BC was ü in UTF8 entspricht.
Gruß
Jürgen
UTF8 ist der Zeichensatz. Er meint Canvas.Font.Name.

Benutzeravatar
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)

Beitrag von juelin »

wenn ich in uses Windows einfüge
mekert der Compiler folgende Zeile an:
5855 Image4.Canvas.FillRect(Rect(0,0,Image4.Width-1,Image4.Height-1));
mit Fehlertext:
unit5.pas(5855,34) Error: Syntax error, ")" expected but "," found
Wenn ich Windows in USES wieder raus mache compiliert er fehlerfrei.
keine Ahnung warum.
Griß

Benutzeravatar
theo
Beiträge: 10707
Registriert: Mo 11. Sep 2006, 19:01

Re: Textausgabe in Image (UTF8)

Beitrag von theo »

Nimm "Windows" mal an den Anfang der "uses" Klausel.
So nimmt er wahrscheinlich das falsche "Rect" oder so.

Benutzeravatar
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)

Beitrag von juelin »

Hallo,
Theo, ja das hat es gebracht.
Windows am Anfang von Uses. Warum auch immer.
Nun noch das Problem mit RECT
Windows.DrawTextW(Image4.Canvas.Handle, PWChar(hp), Length(hp), Rect, DT_SINGLELINE or DT_VCENTER or DT_NOPREFIX);
Wenn ich den Befehl so angebe bekomme ich folgende Fehlermeldung
unit5.pas(5619,77) Error: Wrong number of parameters specified for call to "Rect"
wen ich den Befehl änder in
Windows.DrawTextW(Image4.Canvas.Handle, PWChar(hp), Length(hp), Rect(100,100,400,130), DT_SINGLELINE or DT_VCENTER or DT_NOPREFIX);
bekomme ich folgende Fehlermeldung
unit5.pas(5619,98) Error: Can't take the address of constant expressions
Danke für Eure Hilfe und Gruß
Jürgen

Benutzeravatar
theo
Beiträge: 10707
Registriert: Mo 11. Sep 2006, 19:01

Re: Textausgabe in Image (UTF8)

Beitrag von theo »

Ich bin nicht auf Windows, aber laut der Doku muss das was bei dir Rect heisst ein Zeiger auf ein TRect sein.
Es ist nicht schlau, eine Variable gleich zu benennen wie eine Funktion (Rect)

Also besser
var ARect:TRect;
..
ARect:=Rect(100,100,400,130);
..
Und dann @ARect übergeben.

https://learn.microsoft.com/de-de/windo ... -drawtextw

Wie gesagt, bin nicht auf Windows und habe es nicht überprüft.

wp_xyz
Beiträge: 5050
Registriert: Fr 8. Apr 2011, 09:01

Re: Textausgabe in Image (UTF8)

Beitrag von wp_xyz »

Ich habe das Gefühl, dass du irgendwie deinen Lazarus verkonfiguriert hast. Gehe zu "Ansicht" > "IDE-Interna" > "Über die IDE": Hinter "Primary config directory" findest du den Ordner, in dem die IDE deine Einstellungen speichert. Beende Lazarus und benenne diesen Ordner um. Starte die IDE neu, damit wird der Ordner mit Default-Einstellungen neu erstellt. Prüfe mein obiges Test-Programm. Tritt der Fehler immer noch auf? Evtl. musst du es nochmals vom Forumsbeitrag herunterladen, falls die IDE schon etwas kaputt gemacht hat. Anschließend kannst du den Primary-config Ordner wieder zurück benennen und hast dann deine alten Einstellungen wieder.
Zuletzt geändert von wp_xyz am Mi 8. Jan 2025, 11:41, insgesamt 1-mal geändert.

Benutzeravatar
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)

Beitrag von fliegermichl »

Ich habe das Testprogramm von wp_xyz jetzt auch mal auf einem alten Ubuntu mit Lazarus 1.6 getestet.
Auch da geht es problemlos.
Ich vermute auch, daß es an dem gewählten Font liegt.
Darüber schweigt sich der Jürgen aber aus.

Benutzeravatar
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)

Beitrag von Niesi »

fliegermichl hat geschrieben: Mi 8. Jan 2025, 07:53 Ich habe das Testprogramm von wp_xyz jetzt auch mal auf einem alten Ubuntu mit Lazarus 1.6 getestet.
Auch da geht es problemlos.
Ich vermute auch, daß es an dem gewählten Font liegt.
Darüber schweigt sich der Jürgen aber aus.
Nicht nur darüber - hilfreich wäre ein kleines Beispielprojekt mit dem Font ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
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)

Beitrag von juelin »

Hi,
ich habe mal versucht mein Projakt vereinfacht nach zu bauen.
Ich habe soweit wie möglich alles so gemacht wie in meinem Originalprojekt.
Leider tritt der Fehler nicht mehr aus.
Im Originalprojekt steht der Text im Label auch richtig nur im Image nicht.
Projekt als Amhang dabei.
Mein Originalprojekt könnte ich zwar auch schicken, ist aber zu groß und hat Datenbank inpliziert.
Das würde wohl zu kompliziert.
Gruß
Jürgen
Dateianhänge
flusstest.zip
(148.73 KiB) 50-mal heruntergeladen

Benutzeravatar
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)

Beitrag von fliegermichl »

Naja, wenn du ein Beispiel schickst, in dem der Fehler nicht auftritt, wie soll dann jemand herausfinden wo der Fehler ist?

Benutzeravatar
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)

Beitrag von Niesi »

Ich kann bestätigen, dass das Beispiel die Umlaute annimmt und anzeigt ...
Auswahl_028.png
Auswahl_028.png (21.58 KiB) 392 mal betrachtet
Ein Hinweis: Linux unterscheidet zwischen Groß- und Kleinschreibung. Die Datei "EINGABE.pas" wurde erst angenommen, als ich sie in "Eingabe.pas" umbenannt hatte. Bei "EINGABE.dcu" weiß ich es nicht, die habe ich auch gleich in "Eingabe.dcu" umbenannt ...
Auswahl_029.png
Auswahl_029.png (69.59 KiB) 392 mal betrachtet
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Sieben
Beiträge: 281
Registriert: Mo 24. Aug 2020, 14:16
OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
CPU-Target: i386

Re: Textausgabe in Image (UTF8)

Beitrag von Sieben »

Die .dcu (delphi compiled unit) kannst du auch löschen, sie hat in einem Lazarus-Projekt keine Funktion. Welche Funktion ein Beispielprojekt haben soll, in dem der gesuchte Fehler auch laut Autor nicht auftritt, erschließt sich allerdings auch nicht. Die wahrscheinlichste Erklärung liegt immer noch in der unbeantworteten Frage nach dem Font.

Antworten