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/

Responder a