FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Creo que te sobra un ^.
Código:
1) Reservo Memoria GetMem me devuelve que en la posición 10000 hay un bloque continuo de 255x2 bytes reservados para mi CartInformatio2 = 10000 CartInformatio2^ = 'B_A%S(U R-A.......' En la posición de memoria 10000 hay basura (restos de cosas que el ordenador haya procesado) 2) Le paso la posición al componente ActiveX Esta función rellena a partir de la posición recibida los datos que quiere devolver, terminando con un \n CartInformatio2 = 10000 CartInformatio2^ = '092261779...\n' 3) Convierto la información recibida en algo mas ameno para trabajar en Delphi 4) Libero memoria El bloque de 255x2 bytes queda libre para que otro proceso lo pueda utilizar. Lo que haya en la posicion 10000 en adelante se considera basura para el próximo proceso que utilice. |
#2
|
||||
|
||||
Cita:
|
#3
|
||||
|
||||
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.
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ú. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como quitar referencia de un componente | steelha | Varios | 7 | 25-02-2013 15:48:58 |
Componente ActiveX importardo da error | jmlifi | OOP | 5 | 03-05-2010 14:04:33 |
Componente activex | levache | Internet | 6 | 30-12-2006 05:01:11 |
Ver componente ActiveX | piccolo2101 | Varios | 1 | 05-12-2005 09:59:23 |
Eliminar componente ActiveX | Coco_jac | Varios | 5 | 08-08-2005 18:43:52 |
|