Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ungültige Typumwandlung bei PWideChar('...') (https://www.delphipraxis.net/108798-ungueltige-typumwandlung-bei-pwidechar.html)

xZise 19. Feb 2008 20:03


Ungültige Typumwandlung bei PWideChar('...')
 
Hallo DP,
ich verwende gnugettext zum übersetzen von Anwendungen, und mache folgendes:
Delphi-Quellcode:
MessageBoxW(..., PWideChar('Hallo Welt!'), PWideChar('Hallo Welt!'), MB_OK);
Nun meckert er nach dem ersten PWideChar und nach dem zweiten rum:
Zitat:

Ungültige Typumwandlung
Warum? ^^

MfG
xZise

Bernhard Geyer 19. Feb 2008 20:17

Re: Ungültige Typumwandlung bei PWideChar('...')
 
Deine Stringkonstanten sind Ansi und nicht Widestrings.

Delphi-Quellcode:
var
  strW: WideString;
begin
  strW := 'Hallo Welt!';
  MessageBoxW(..., PWideChar(strW ), PWideChar(strW), MB_OK);
end;

himitsu 20. Feb 2008 14:13

Re: Ungültige Typumwandlung bei PWideChar('...')
 
oder schreib nur den 'String' hin, dann kümmert sich Delphi um den Typ :angel:

Code:
Const S: WideString = 'Hallo Welt!';

MessageBoxW(..., [color=#ff0000]'Hallo Welt!'[/color], PWideChar(S), MB_OK);
oder direkte Umwandlung
Code:
MessageBoxW(..., [color=#ff0000]PWidehar(WideString('Hallo Welt!'))[/color], PWideChar(S), MB_OK);

Muetze1 20. Feb 2008 15:50

Re: Ungültige Typumwandlung bei PWideChar('...')
 
...wobei das eigentlich eher ein Constructor Aufruf als eine Umwandlung ist. Er legt einen neuen String an...

himitsu 20. Feb 2008 18:06

Re: Ungültige Typumwandlung bei PWideChar('...')
 
och nöö ... dat is ja gemein ;(

hab aber noch nie direkt nachgesehn was elphi da macht ...
und Ersteres ist eh einfacher ^_^


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz