Amigo duilioisola
Nuevamente muchas gracias por tu tiempo y por la disponibilidad en ayudar.
Aquí comparto como me ha funcionado el procedimiento y como he podido obtener la información, claro también agrego unas consultas mas como para cerrar el ciclo de este POST.
Código Delphi
[-]
procedure TForm2.btnConInfClick(Sender: TObject);
var
CardInformation : ^WideString;
CardInformation2 : WideString;
begin
try
...
try
GetMem(CardInformation, 255 * 2);
ReadCardResult:= MyCompActX.ReadInformation(CardInformation^, 20, 20, 1, 'INGRESE NUM...');
CardInformation2 := PWideChar(CardInformation^);
finally
FreeMem(CardInformation);
end;
if Trim(CardInformation2) <> '' then
ShowMessage(CardInformation2);
finally
MyCompActX.Free;
end;
end;
OBS: Según tu sugerencia de que quizás estaba sobrando "^" no fue por ahí la solución ya que al compilar me salia el siguiente error:
"E2033 Types of actual and formal var parameters must be identical"
Aquí agrego unos comentarios y consultas para aclarar si realmente la solución esta trabajando bien:
Según el diseñador del componente el resultado de la función visualmente esta devolviendo: TEditText = '024517750292005301=22092261779080000000F'
con la solución que adjunto lineas arriba me esta devolviendo: CardInformation2 = '02'#$1C'4517750292005301=22092261779080000000F'
Cuando hago la copia del texto del componente TEditText que muestra el resultado de un app que proporciona el creador del componente ActiveX pasa algo estraño:
Si lo pego en un NOTEPAD = '024517750292005301=22092261779080000000F'
Si lo pego en un NOTEPAD++ = '024517750292005301=22092261779080000000F'
Aquí viene mis preguntas:
1. El resultado de la función según la implementacion adjunta estará devolviendo bien la información en la variable: CardInformation2?
2. Hay alguna forma de castear la variable CardInformation2 para que ya no muestre el carácter "#$1C"?
3. comparando el resultado de la función vs el TEdittext del App del componente, el carácter: #$1C = (según nos muestra NotePad++ es un FS)
4. A su experiencia y conocimiento se sabe que la función va a devolver dentro de 45 a 80 caracteres, como se calcula el tamaño de memoria que se tiene que reservar para indicarle a la función GetMem?
Muchas gracias a los que ayudaron con su comentarios y su tiempo en especial a "duilioisola", espero ahí me puedan responder las preguntas para cerrar este POST y quede claro para algún colega que pueda necesitar una solución similar.
Gracias a todos por compartir sus conocimiento y para adelante con el foro es muy recomendable y activo.
Un abrazo a la distancia desde Perú.