Olá a Todos... Pessoal tenho a seguinte dll:
library Biblio; uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, Grids, DBGrids, Buttons, StdCtrls, Mask, DBCtrls, ExtCtrls, ActnList, ComCtrls, FMTBcd, Provider, DBClient; {$R *.res} procedure LimpaCampos(vForm: TForm; vFormHandle: THandle); var i : Integer; begin for i := 0 to (vForm.ControlCount -1) do if vForm.Controls[i].ClassName = 'TEdit' then begin TEdit(vForm.Controls[i]).Text:=''; end; for i := 0 to (vForm.ControlCount -1) do if vForm.Controls[i].ClassName = 'TDBEdit' then begin TDBEdit(vForm.Controls[i]).Text:=''; end; for i := 0 to (vForm.ControlCount -1) do if vForm.Controls[i].ClassName = 'TCheckBox' then begin TCheckBox(vForm.Controls[i]).Checked:= False; end; for i := 0 to (vForm.ControlCount -1) do if vForm.Controls[i].ClassName = 'TDBCheckBox' then begin TDBCheckBox(vForm.Controls[i]).Checked:= False; end; end; Exports LimpaCampos; begin end. E no Form frmCadKits declaro a procedure e a dll. ... public { Public declarations } end; procedure LimpaCampos(vForm: TForm; vFormHandle: THandle); external 'biblio.dll'; var ... E faço uma chamada no show do Form procedure TfrmCadKits.FormShow(Sender: TObject); begin LimpaCampos(frmCadKits,frmCadKits.Handle); end; E recebo o erro: Project Aplicativo.exe raised exception class EAccessViolation with message 'Access violation at address 045DF5B in module Aplicativo.exe'. Read of address 00000180'. Process stopped. Use Step or Run to continue. Alguém tem uma solução, já tentei de várias formas e nada, sempre dá esse erro. No mesmo diretório da aplicação estão a biblio.dll e a borlndmm.dll. Grato a todos. Alexandre. Alertas do Yahoo! Mail em seu celular. Saiba mais em http://br.mobile.yahoo.com/mailalertas/