2017-09-27 4 views
2

comment convertir la chaîne en PwideChar dans la plate-forme Android en utilisant Delphi? dans Windows apps son fait en utilisant ..Comment faire pour convertir la chaîne en PWideChar en plate-forme Android en utilisant Delphi

var  
    PW: PWideChar; 
begin 
    PW := pwidechar(widestring(String)); 
    PW := pwidechar(widestring(Reply)); 
    A := ExistWordInString(PW,String,[soWholeWord,soDown]); //A : Boolean 

.... 
end; 

les problèmes est Undeclared identifier: 'WideString', comment contourner cela?

Delphi 10 Berlin, FireMonkey, Android

MISE À JOUR

bien, selon http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Migrating_Delphi_Code_to_Mobile_from_Desktop ,, nous ne pouvons pas utiliser WideString, je ne peux pas penser à une autre façon de chaîne utiliser cette fonction:

function ExistWordInString(aString:PWideChar;aSearchString:string;aSearchOptions: TStringSearchOptions): Boolean; 
var 
    Size : Integer; 
Begin 
    Size:=StrLen(aString); 
    Result := SearchBuf(aString, Size, 0, 0, aSearchString, aSearchOptions)<>nil; 

Répondre

4

Votre code n'est pas strictement correct dans Windows. Oui, vous pouvez convertir string (un alias pour UnicodeString) en COM WideString, mais c'est une perte de temps et de ressources. Le code est correct:

var  
    P: PWideChar; 
    S: string; 
.... 
P := PWideChar(S); 

En fait, puisque vous utilisez une version Unicode de Delphi, il est probablement idiomatiques d'utiliser PChar (un alias pour PWideChar), pour s'adapter aux côtés string.

J'écrirait:

var  
    P: PChar; 
    S: string; 
.... 
P := PChar(S); 

Maintenant, ce code, ainsi que d'être la bonne façon de le faire sous Windows, fonctionne également sur toutes les plateformes.

+0

Parfait, Leçon apprise. Merci – unknown