Ver Mensaje Individual
  #9  
Antiguo 18-09-2018
Avatar de Maniches
Maniches Maniches is offline
Miembro
 
Registrado: nov 2012
Ubicación: Lima - Perú
Posts: 67
Reputación: 12
Maniches Va por buen camino
Smile

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ú.
__________________
Maniches
maniches@outlook.com
Responder Con Cita