PDA

Ver la Versión Completa : Convertir un TString a PWideChar


bustio
30-09-2004, 18:45:50
Hola!

TEngo una cadena de tipo TSTRING y necesito convertirla a PWIDECHAR, pero el problema esta en que usando el casting(PWIDECHAR(Cad_String)) No me funciona. Alguien tiene idea de por que sera y de como poder hacer ese casting??

GRACIAS!!

yusnerqui
30-09-2004, 20:06:32
Hola ;)

var
A : String;
B: PWIDECHAR;
begin
A := Edit1.Text;
B := PWIDECHAR(A);
end;


espero te sirva :) saludos

Edito:
No había leido bien, dices que ya intentastes esta vía, yo lo prové con delphi 6 y trabajó, muestra álgo de tu código aquí quizas no sea ese el problema, y te podamos ayudar mejor.

Saludos :cool:

bustio
01-10-2004, 00:00:36
Hola.... el codigo que me enviate si compila, pero cuando trato de visualizar la cadena convertida a PWideChar no es lo que se le entro. Esta es la implementacion.
Simplemente puse un edit, un boton y un label. En el edit entro el texto, en el OnClick del boton lo convierto y lo muestro con el label.

Cuando compilo me da este warning:
[Warning] strToPWideChar.pas(34): Suspicious typecast of String to PWideChar.

Supongo que ahi es donde esta el problema.. pero no lo deja hacer. Mi implementacion es esta:

procedure TForm1.Button1Click(Sender: TObject);
Var
Cadena : String;
Resultado : WideChar;
begin
Cadena := edit1.Text;
Resultado := PWideChar(Cadena)^;
Label1.Caption := Resultado;
end;


y cuando le entro la cadena LOLO, lo que me muestra en el label es: ??.

Saben por que es?? Agradezco cualquier sugerencia.

GRACIAS

bustio
01-10-2004, 04:50:16
Hola comunidad;

Hasta que al fin pude dar con la solucionami pregunta... Aqui les va por si algun dia hay algun loco perdido que no puede hacerlo..a si se ahorra el trabajoq ue yo pase para dar con las solucion.
En fin.. que este es el codigo:


var
Buffer : Array [0..1000]of WideChar;
Direccion : PWideChar;
Addr : String;

begin
Addr := edtCamino.Text + '\' + Tapiz;
Direccion:= StringToWideChar(Addr,Buffer,Length(Addr)+1);
StatusBar1.Panels[0].Text := WideCharToString(Direccion);
end;

Espero que le sea util a alguien.