Ver Mensaje Individual
  #1  
Antiguo 19-04-2007
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Reputación: 20
Albano Va por buen camino
Cambiar propiedades de componentes desde una DLL

Hola a todos, que tengan un buen dia.
Tengo el siguiente procedimiento
Código Delphi [-]
procedure TForm2.CentrarMarco(Marco: TFrame);
var
  aux: double;
  s: string;
begin
  aux := panelcontenido.Width - marco.Width;
  aux := aux / 2;
  s := floattostr(aux);
  Delete(s, pos(decimalseparator, s), MaxInt);
  marco.Left := strtoint(s);
  aux := panelcontenido.Height - marco.Height;
  aux := aux / 2;
  s := floattostr(aux);
  Delete(s, pos(decimalseparator, s), MaxInt);
  marco.Top := strtoint(s) - 20;
end;
en un proyecto, lo que hace es que centra un marco (frame) en un panel, lo uso cada vez que creo un marco o cada vez que ajusto el tamaño de mi forma. Quiero usar este procedimiento en otros proyectos, entonces lo que hice fue ponerlo en una DLL, para estar reutilizando el código. En la DLL lo puse de la siguiente manera:
Código Delphi [-]
library frames;

uses
  SysUtils, Classes, Forms, ExtCtrls;

{$R *.res}

procedure centrarmarco(marco: tframe; base: tpanel);
var
  aux: double;
  s: string;
begin
  aux := base.Width - marco.Width;
  aux := aux / 2;
  s := floattostr(aux);
  Delete(s, pos(decimalseparator, s), MaxInt);
  marco.Left := strtoint(s);
  aux := base.Height - marco.Height;
  aux := aux / 2;
  s := floattostr(aux);
  Delete(s, pos(decimalseparator, s), MaxInt);
  marco.Top := strtoint(s) - 20;
end;

exports centrarmarco;

begin
end.
En mi aplicación tengo declarado el procedimiento de la siguiente manera:
Código Delphi [-]
procedure centrarmarco(marco: tframe; base: tpanel); stdcall; external 'frames.dll'
Lo mando llamar de la siguiente manera:
Código Delphi [-]
CentrarMarco(FrameCamAlt, panelcontenido);
Y no hace nada, no mueve las propiedades de mi frame... pensé en hacer dos funciones que me regresen un número entero, una para el left y otra para el top del marco que quiero centrar, pero quisiera hacerlo de la manera en que lo muestro aqui... Es esto posible?
Gracias de antemano, Dios los bendiga.
__________________
"Sé de tal manera y vive una vida tal, que si todos los hombres fueran como tú y vivieran como tú, nuestro mundo sería un paraíso terrenal"
Siempre hazlo con la ayuda de Dios
Responder Con Cita