Erro Access violation at address ...
[color=red:5de455cfa7]Título editado por Massuda
Por favor, não use termos apelativos ou desafiadores no título.
Leia as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum, em especial o item 1.e[/color:5de455cfa7]
Pra comecar, estou fazendo uma aplicacao que os form ficam dentro de Dlls... entao tem um EXE que serve apenas para chamar os forms atraves de um menu.
Se clicar no primeiro menu... ele vai carregar a funcao ShowFormMain.
Que faz uma instancia do form TForm_C2... que esta dentro do projeto dllx como po de-se ver abaixo:
/////////////////----projeto dll
library dllx;
uses
SysUtils,
Classes,
Forms,
dll_Main in ´dll_Main.pas´ ;
{$R *.res}
function ShowFormMain : Integer; stdcall;
var
Form_Conta : TForm_Conta;
begin
Form_C1 := Tform_c2.Create(application);
Result := Form_C1.ShowModal;
Form_C1.Free;
end;
exports
ShowFormMain;
begin
end.
///////////////-----form dentro da dll
unit dll_Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TFluxoComOperacao = (Conectar, Encerrar);
TFluxoCom = class(Tthread)
private
constructor Create(CreateSuspended: Boolean);
public
Operacao: TFluxoComOperacao;
protected
procedure Execute; override;
end;
TForm_C2 = class(TForm)
....
end.
depois disto... quando o form abre eu inicio uma thread TFluxocom que dentro do seu execute faz o seguinte:
//loop principal da thread Tfluxo
procedure TFluxoCom.Execute;
begin
while not (Operacao = Encerrar) do
begin
Synchronize(form_C2.teste);
//form_C2.teste;
end;
end;
procedure TForm_C2.teste;
begin
[color=red:5de455cfa7] PaineldeMensagem.Caption:=´mensagem teste´;[/color:5de455cfa7]
end;
no momento que ele executa a linha do componente panel, para troca seu caption...
ocorre o erro:
[color=red:5de455cfa7](Access violation at address 008... in module dllx´ etc, etc...)[/color:5de455cfa7]
verifiquei se o form_C2 existe antes de chamar a funcao teste e pra minha surpresa form_c2 = nil. Mas como? se ele esta na tela e na compilação esta tudo OK. Alguem pode me ajudar.
Obrigado
Pineli
Curtidas 0