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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2025
_Io _Io is offline
Miembro
 
Registrado: ene 2024
Posts: 86
Poder: 2
_Io Va por buen camino
Mandar Datos a Traves de WM

Buenos días.

Estoy intentando mandar información a través de los mensajes de windows. Con un tipo de dato funciona y con otro no.
Os dejo el código.

Este funciona:

Cita:

Código:

function get_Qry_Result_From_wm (aParam :integer):RespuestaConsultaFactuSistemaFacturacionType;
begin

  result:=RespuestaConsultaFactuSistemaFacturacionType(pointer(aParam)^);
  Dispose(pointer(aParam));

end;


function send_Qry_Result_by_wm (aQry :RespuestaConsultaFactuSistemaFacturacionType):integer;
var
  pQry :^RespuestaConsultaFactuSistemaFacturacionType;
begin

  new(pQry);
  pQry^:=aQry;
  result:=integer(pQry)

end;
La primera función recoge el valor de uno de los parámetro de un WM (por ejemplo WParam), en el que se ha dejado la dirección de memoria de la información a enviar.

La segunda función, crea un nuevo objeto y devuelve su dirección de memoria como integer, el cual se utlizará para enviarlo a través de un WM.

Este NO funciona:

Cita:
Código:
function get_Resp_RFs_From_wm (aParam :integer):RespuestaRegFactuSistemaFacturacionType;
begin

  result:=RespuestaRegFactuSistemaFacturacionType(pointer(aParam)^);
  Dispose(pointer(aParam));

end;

function send_Resp_RFs_by_wm (aRF :RespuestaRegFactuSistemaFacturacionType):integer;         // Prepara la respuesta de la AEAT para
var
  pRF :^RespuestaRegFactuSistemaFacturacionType;
begin

  new(pRF);
  pRF^:=aRF;
  result:=integer(aRF)

end;
Da el error de access violation at 0x00....
Si alguien sabe la solución para esto u otra forma de hacerlo, se lo agradecería.

Muchas Gracias.
Responder Con Cita
  #2  
Antiguo 12-01-2025
Toñico Toñico is offline
Miembro
 
Registrado: ene 2005
Posts: 55
Poder: 21
Toñico Va por buen camino
Desde el desconocimiento mas absoluto de como funciona, he visto que la segunda función es un poco distinta a la primera. Puede que sea sólo un error tipográfico, pero te escribo como creo que tendría que ser.:

Código Delphi [-]
function send_Resp_RFs_by_wm (aRF :RespuestaRegFactuSistemaFacturacionType):integer;         // Prepara la respuesta de la AEAT para
var
  pRF :^RespuestaRegFactuSistemaFacturacionType;
begin

  new(pRF);
  pRF^:=aRF;
  result:=integer(pRF)

end;

Última edición por Neftali [Germán.Estévez] fecha: 13-01-2025 a las 08:53:31. Razón: Añadir TAGs para mejorar la lectura
Responder Con Cita
  #3  
Antiguo 13-01-2025
_Io _Io is offline
Miembro
 
Registrado: ene 2024
Posts: 86
Poder: 2
_Io Va por buen camino
Cita:
Empezado por Toñico Ver Mensaje
Desde el desconocimiento mas absoluto de como funciona, he visto que la segunda función es un poco distinta a la primera. Puede que sea sólo un error tipográfico, pero te escribo como creo que tendría que ser.:

Código Delphi [-]
function send_Resp_RFs_by_wm (aRF :RespuestaRegFactuSistemaFacturacionType):integer;         // Prepara la respuesta de la AEAT para
var
  pRF :^RespuestaRegFactuSistemaFacturacionType;
begin

  new(pRF);
  pRF^:=aRF;
  result:=integer(pRF)

end;
Buenas Tardes.

Tienes toda la razón.

Cuantas veces he mirado el código y no he sido capaz de ver el erro.

MUchisimas Gracias.
Responder Con Cita
Respuesta



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
Base de datos a través de una web? José Luis Garcí Firebird e Interbase 12 08-09-2013 16:00:34
Mandar datos RS232 CARSOFT_AR Varios 3 14-07-2006 23:01:25
Mandar datos con patalla tactil gryphus Varios 9 17-06-2005 15:41:17
Como mandar datos a la impresora Felix el Gato JAVA 3 27-04-2004 22:13:11
¿Como puedo mandar Datos a traves del Socket? juliopag1 Internet 1 23-04-2004 14:44:05


La franja horaria es GMT +2. Ahora son las 14:19:24.


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