(Re-)Bonjour,
Je voudrais simplement savoir comment mon TEdit.text ou encore mon TLabel.Text puisse prendre un ShortString plutot que du String ?
Mon erreur :
Je vous remercie d'avance,
Bonne soirée,
(Re-)Bonjour,
Je voudrais simplement savoir comment mon TEdit.text ou encore mon TLabel.Text puisse prendre un ShortString plutot que du String ?
Mon erreur :
Je vous remercie d'avance,
Bonne soirée,
Bonjour !
J'ai un peu de mal à saisir le sens de la question. Le titre fantaisiste de la discussion ne nous aide pas beaucoup non plus.
Je suggère que tu postes les lignes de code qui sont à l'origine de l'avertissement.
Ce n'est pas possible
Un ShortString est un type obsolète qui correspond soit à de l'ASCII, soit à un code page/ MBCS
Un String, c'est de l'UTF-16.
Il faut convertir ta chaîne de caractères en UTF-16. Je ne connais pas l'API Delphi pour cela
Ou éventuellement dans les options de ton projet, caster _TChar (*) en char et non pas en wchar_t.
Et la meilleure de toutes, c'est de refactoriser ton code![]()
en n'utilisant que des UnicodeString.
* -> Avec Xe, l'option s'appelle "_TChar maps to"
Salut,
J'étais dans la précipitation pour écrire mon message ce jour là, c'est pourquoi pas tout très explicite. En gros je voulais mettre un ShortString dans un text de TLabel (qui demande du String).
Mais du coup, foetus à parfaitement répondu à ma demande. Je t'en remercie.
Mais par contre String n'est qu'un alias d'UnicodeString à a connaissance, donc qu'est-ce que ça changerais de changer mes String en UnicodeString ?
Merci, bonne journée.![]()
Ça, c'est possible :
Mais l'avertissement que tu as reproduit dans ton premier message correspond à une tentative de conversion dans le sens inverse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 var s: shortstring; begin s := 'Martin'; Label1.Caption := string(s); end;
C'est dans ce sens-là qu'il y une "perte de données potentielle".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var s: shortstring; begin s := Label1.Caption; end;
Merci pour ta réponse,
Bon, en fin de compte c'est pas bien utile de caster du ShortString vers du String. Je ne vais pas gagner de mémoire ? Vu que je vais revenir en String dans tout les cas.
Oui, fuite de mémoire possible, mais dans mon cas impossible vu que je gère que mes textes ne fassent pas plus de 255 caractères, donc sa passe pile.
Partager