Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ersetzung von '&' durch '&&' funktioniert nicht (https://www.delphipraxis.net/104407-ersetzung-von-durch-funktioniert-nicht.html)

daschaos 3. Dez 2007 13:39


Ersetzung von '&' durch '&&' funktioniert nicht
 
Habe ja gelesen, dass ein einfaches '&' nicht dargestellt werden kann, da es anderweitig codiert wird. Also
will ich meinen Text, falls ein '&' vorhanden, durch '&&' erweitern. Warum funktioniert der Code nicht?

Delphi-Quellcode:
Position := Pos('&', Text);
if (Position > 0) then
  StringReplace(Text, '&', '&&', []);
Der Text soll übrigens in einem Rechteck angezeigt werden:

Delphi-Quellcode:
tnt_DrawTextW(Canvas.Handle, PWideChar(Text), Length(Text), Rect, TextFormat);
Wo liegt mein Denkfehler?! Wäre toll, wenn mir da jemand weiterhelfen könnte! Danke!

sirius 3. Dez 2007 13:40

Re: Ersetzung von '&' durch '&&' funktioniert n
 
Das brauchst du nicht bei DrawText, nur bei der Eigenschaft "Caption" aus der VCL.

SirThornberry 3. Dez 2007 13:42

Re: Ersetzung von '&' durch '&&' funktioniert n
 
auch bei DrawText ist dies der Fall. Bei dem Stringreplace fehlt einfach das Flag rfReplaceAll

Luckie 3. Dez 2007 13:44

Re: Ersetzung von '&' durch '&&' funktioniert n
 
StringReplace ist eine Funktion!

DeddyH 3. Dez 2007 13:46

Re: Ersetzung von '&' durch '&&' funktioniert n
 
Du musst auch die Rückgabe von StringReplace auswerten.

[edit] 2 late [/edit]

daschaos 3. Dez 2007 13:48

Re: Ersetzung von '&' durch '&&' funktioniert n
 
Das mit dem rfReplceAll hatte ich auch schon ausprobiert gehabt, hatte aber nichts genützt.

Aber oh Mann, danke. Wenn ich den Text zuweise - Text := StringReplace(...) gehts natürlich.
Das hätte mir auch mal selber auffallen können:(.

Muetze1 3. Dez 2007 13:48

Re: Ersetzung von '&' durch '&&' funktioniert n
 
... oder alles sein lassen und bei DrawText() einfach bei den Flags noch DT_NOPREFIX mit hinzu odern...


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 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