Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-11-2013
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
Problemas con ocx

Hola Companerors espero esta vez me puedan ayudar ya que mi ultima pregunta sigue en el aire.
Cuando intento compilar delphi me da este error :
[dcc32 Error] Unit1.pas(40): E2033 Types of actual and formal var parameters must be identical

para detallar mas aqui esta parte del codigo. puse la parte mas simple para partir de ahi.

este es mi codigo
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  lRet: LongWord;
begin
  lRet := vmaxrd1.AbrirPuerto(1);
end;


esta es la funcion que llama declarada en la libreria
Código Delphi [-]
function TVMAXRD.AbrirPuerto(var numPuerto: Smallint): Integer;
begin
  Result := DefaultInterface.AbrirPuerto(numPuerto);
end;

quien me dice lo que esta pasando ahi?
Responder Con Cita
  #2  
Antiguo 18-11-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por escorpionrojo43 Ver Mensaje
[dcc32 Error] Unit1.pas(40): E2033 Types of actual and formal var parameters must be identical

para detallar mas aqui esta parte del codigo. puse la parte mas simple para partir de ahi.

este es mi codigo
Código Delphi [-]procedure TForm1.Button1Click(Sender: TObject); var lRet: LongWord; begin lRet := vmaxrd1.AbrirPuerto(1); end;



esta es la funcion que llama declarada en la libreria
Código Delphi [-]function TVMAXRD.AbrirPuerto(var numPuerto: Smallint): Integer; begin Result := DefaultInterface.AbrirPuerto(numPuerto); end;


quien me dice lo que esta pasando ahi?

Ya lo dice el mensaje del error, los parámetros deben ser del mismo tipo.
Responder Con Cita
  #3  
Antiguo 18-11-2013
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Ya lo dice el mensaje del error, los parámetros deben ser del mismo tipo.
Hola Casimiro el problema persiste ya sea sea la variable lRet del tipo integer, smallint o longword;
Responder Con Cita
  #4  
Antiguo 19-11-2013
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.235
Poder: 20
ElKurgan Va camino a la fama
Fíjate en la definición de TVMAXRD.AbrirPuerto(var numPuerto: Smallint): Integer;

Claramente te dice que es un SmallInt pero que se pasa POR REFERENCIA.

Entonces, esta llamada no te vale:

Código Delphi [-]
var  
  lRet: LongWord;
begin
  lRet := vmaxrd1.AbrirPuerto(1);
end

Prueba a hacerla de este modo, a ver si va:

Código Delphi [-]
var 
  lRet: LongWord;
  NumPuerto: SmallInt;
begin
  NumPuerto := 1;
  lRet := vmaxrd1.AbrirPuerto(NumPuerto);
end

Saludos
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


La franja horaria es GMT +2. Ahora son las 12:13:58.


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