Messagebox mit Umlautproblem

Antworten
malabarista
Beiträge: 321
Registriert: Sa 11. Jun 2016, 12:16
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
CPU-Target: 64Bit
Wohnort: Konstanz

Messagebox mit Umlautproblem

Beitrag von malabarista »

Ich versuche mit MessageBox einen Text auszugeben. Allerdings gelingt mir nicht eine korrekte Darstellung der Umlaute (screenshot anbei).
(Leider habe ich hier jetzt die Meldung "Das Kontingent für Dateianhänge ist bereits vollständig ausgenutzt."
also:
Installation erfolgreich durchgef~A1/4hrt

Code: Alles auswählen

 
   zv:=utf8toansi('Installation erfolgreich durchgeführt');
   MessageBox(0,pchar(zv),'OK',mb_Ok);
 

Wenn ich das "utf8toansi" weglasse, ist das Aussehen das Gleiche.
Was muss ich zur Konvertierung der Zeichen tun ?

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Messagebox mit Umlautproblem

Beitrag von MacWomble »

Warum machst du nicht:

Code: Alles auswählen

zv:='Installation erfolgreich durchgeführt';
ShowMessage(zv);


bzw.

Code: Alles auswählen

ShowMessage('Installation erfolgreich durchgeführt');


PS: uses dialogs

Ich habe noch nie Messagebox direkt verwendet, wozu soll das gut sein?
Ich meine, alles was man mit dem MessageComposer (STRG-M) an Dialogen erstellen kann, ist für jeden Zweck ausreichend.
Zuletzt geändert von MacWomble am Do 18. Jan 2018, 12:10, insgesamt 2-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Benutzeravatar
gladio
Beiträge: 217
Registriert: Sa 21. Jun 2014, 06:15
OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
CPU-Target: 64Bit
Wohnort: Rügen

Re: Messagebox mit Umlautproblem

Beitrag von gladio »

UTF8toAnsi und einige andere funktionieren nicht mehr:
http://wiki.freepascal.org/Better_Unicode_Support_in_Lazarus

In Windows kann man das nehmen: WinCPToUTF8 bzw. UTF8ToWinCP

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

Re: Messagebox mit Umlautproblem

Beitrag von wp_xyz »

Bei der alternativen Funktion MessageDlg ist UTF8-Support eingebaut. Auch bei MessageBox, aber nur wenn, man die Version aus Unit LCLIntf+LCLType verwendet. Die Version in Unit Windows dagegen verlangt ANSI und daher die genannten Konversionen. Neben der Plattformunabhänigkeit noch ein Grund, darauf zu achten, dass die Unit Windows NICHT in "uses" vorkommt.

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

Re: Messagebox mit Umlautproblem

Beitrag von theo »

Ich würde dafür auch nicht Winapi nehmen, aber wenn es unbedingt sein muss, würde wahrsch. auch MessageBoxW helfen.

Code: Alles auswählen

function MessageBoxW(hWnd:HWND; lpText:LPCWSTR; lpCaption:LPCWSTR; uType:UINT):longint;

Benutzeravatar
Roland Chastain
Beiträge: 156
Registriert: Sa 7. Jul 2012, 21:50
Wohnort: Saargemünd
Kontaktdaten:

Re: Messagebox mit Umlautproblem

Beitrag von Roland Chastain »

Hallo! Vielleicht ist die Codierung Ihrer Quelldatei nicht die richtige?

Bild
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

malabarista
Beiträge: 321
Registriert: Sa 11. Jun 2016, 12:16
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
CPU-Target: 64Bit
Wohnort: Konstanz

Re: Messagebox mit Umlautproblem

Beitrag von malabarista »

UTF8ToWinCP war die Lösung dafür.
Weil es eine Software ist, die ausschliesslich unter Windows läuft, sind plattformübergreifende Lösungen nicht notwendig.

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Messagebox mit Umlautproblem

Beitrag von MacWomble »

Dennoch verstehe ich den Sinn nicht, MessageBox zu verwenden. Was ist der Vorteil einen Dialog so umständlich zusammen zu basteln - gegenüber der Verwendung von ShowMessage?
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

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

Re: Messagebox mit Umlautproblem

Beitrag von wp_xyz »

ShowMessage hat nur 1 Button (OK) und kein eingeblendetes Icon.

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Messagebox mit Umlautproblem

Beitrag von MacWomble »

Aber in der Frage war doch auch nur ein OK-Button gefragt.
Außerdem würde dann ja MessageDlg funktionieren (Mit Icon und Button(s)).
Es erschließen sich mir keinerlei Vorteile, MessageBox direkt zu verwenden und mit Zeichensatzumwandlungen hantieren zu müssen.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

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

Re: Messagebox mit Umlautproblem

Beitrag von wp_xyz »

MacWomble hat geschrieben:Aber in der Frage war doch auch nur ein OK-Button gefragt.

Bin wahrscheinlich wieder von Blindheit geschlagen, aber wo steht das?

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: Messagebox mit Umlautproblem

Beitrag von Ally »

TaskDialog ist zwar für eine simple Message etwas "overdressed", gibt aber nicht nur Umlaute korrekt aus, sondern beschriftet auch die Buttons in der Systemsprache.

malabarista
Beiträge: 321
Registriert: Sa 11. Jun 2016, 12:16
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
CPU-Target: 64Bit
Wohnort: Konstanz

Re: Messagebox mit Umlautproblem

Beitrag von malabarista »

Die Gründe hatte ich in dem Thread
"Showmessage verursacht Compile-Fehler"
dargelegt.

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Messagebox mit Umlautproblem

Beitrag von MacWomble »

malabarista hat geschrieben:Die Gründe hatte ich in dem Thread
"Showmessage verursacht Compile-Fehler"
dargelegt.


Jetzt hab ich es auch kapiert :oops:
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Antworten