Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 18-09-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Creo que te sobra un ^.

Código Delphi [-]
var
  CardInformation : WideString;
  CardInformation2 : ^WideString; // Puntero a un WideString
begin
  try
    try
      // 1) Reservo 255x2 bytes de memoria a partir de la pisición de CartInformation2
      GetMem(CardInformation2, 255 * 2);
      // 2) Le paso el contenido de CartInformatio2. Es una posición de memoria. NO LE PASO EL CONTENIDO DE LO QUE HAY EN LA POSICION DE MEMORIA
      ReadCardResult:= MyCompActX.ReadInformation(CardInformation2, 20, 20, 1, 'INGRESE NUM...');
      3) // TypeCast para convertir la información recibida que se encuentra a partir de la posicion de memoria CartInformatio2 hasta que encuentre un \n
      CardInformation := WideChar(CardInformation2);
    finally
      // 4) Libreo memoria
      FreeMem(CardInformation2);
    end;

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.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 13:44:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi