Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   dll + mostrar formulario (https://www.clubdelphi.com/foros/showthread.php?t=38116)

albertoP 03-12-2006 23:12:42

dll + mostrar formulario
 
Hola amigos he estado haciendo pruebas con dll y me he encontrado con un problema:

Tengo una dll que intenta mostrar un formulario que esta dentro de ella, al llamarlo desde la aplicacion me da una error de Violacion de acceso.


El codigo de la dll es:

uses
SysUtils,
Classes,
Windows,
Messages,Dialogs,
Unit1 in 'Unit1.pas' {Form1};

function msg:Boolean;stdcall;
begin

try
form1.Show;
result:=true;
except
showMessage('Error al intantar mostrar el mensaje');
result:=true;
end;


end;

exports msg;

end.

El codigo de la APP es:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
function msg:Boolean; external 'mensaje.dll';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a:Boolean;
begin
a:=msg();



end;

end.

Se puede hacer lo que quiero en una dll? Cmo lo haria..

Desde ya muchas gracias.

ElKurgan 04-12-2006 08:21:20

Por lo que veo, estas intentando mostrar un formulario que aún no ha sido creado. Antes de "Form1.Show" tendrás que crearlo...

Prueba con algo como esto:
Código:

function msg:Boolean;stdcall;
begin

  form1 := TForm1.Create(nil)
  try
    try
      form1.Show;
      result:=true;
    except
      showMessage('Error al intantar mostrar el mensaje');
      result:=true;
    end;

  finally
    form1.free;
  end;
end;

Un saludo


La franja horaria es GMT +2. Ahora son las 20:45:26.

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