DLL
28/03/2006
0
Nesse formulário tem o evento OnShow ficando assim
procedure TForm.OnShow(Sender: TObject);
begin
Funcao();
end;
Funcao() é uma função da dll que o form se encontra como faço para executar essa função??
Rudá
Posts
29/03/2006
Paulocesar1301
... function [b]LoginRede[/b]: WideString; stdcall; external ´<nome da dll>.dll´; implementation
Obs.: No final de sua DLL utilize a opção NAME para ´dar nomes aos bois´ na sua dll
Exports AjAcent NAME ´[b]AjustaAcento[/b]´; begin end.
No seu projeto, o nome que você declarará é o nome indicado na DLL;
29/03/2006
Rudá
Existe um form dentro da DLL que tem um evento OnShow e nesse evento quero que ele execute uma função da propria dll ex:
DLL
procedure CriarForm(); stdcall; begin Form1.OnShow:= Showw; end; procedure Showw(Sender: TObject); stdcall; begin //algo end;
Então quando o Form1 for dado Show ele execute aquele a função Showw
Ai da erro no [b:853cd07867]Form1.OnShow:= Showw[/b:853cd07867] = [b:853cd07867]Undeclared identifier: ´Showw´[/b:853cd07867]
Pode me ajudar
29/03/2006
Paulocesar1301
Se sim... nunca usei isso e estou sem delphi aki... tente declarar a função estaticamente dentro da unit do seu form
procedure Showw(Sender: TObject); stdcall; external ´<nome da dll>.dll´;
Mas... acho que esse tipo de recursividade não é usual.
29/03/2006
Rudá
E como faria isso??
Na dll ele cria o form mas como vou fazer para contar se não tenho como resgatar a variavel para somar quando der show e para diminuir quando der close??
29/03/2006
Paulocesar1301
o ideal seria listar as janelas abertas (Tô sem delphi aki e, sinceramente, não tenho o código de cor), salvar em TStrings qualquer e verificar se já existe alguma janela e quantas com seu caption... se sim ele apenas incrementa o caption
Ex.: <seu caption> (1) - estilo office
29/03/2006
Rudá
Poderia tb me tirar outra dúvida de dll?
Quando crio um form na dll assim:
procedure CriarForm(); stdcall; var Form: TForm; begin Form:= TForm.Create(Application); Form.Show; end;
Ele aparece na barra de tarefas aparece um novo aplicativo.
Como faço para tirar da barra??
30/03/2006
Paulocesar1301
[url]
http://forum.clubedelphi.net/viewtopic.php?t=72802&highlight=form+dll
[/url]
30/03/2006
Rudá
Tenho mais uma dúvida:
Eu crio 3 forms para cima em tempo de execução, ai quando vou fecha o form sempre da erro no terceiro form, mas se eu crio 2 forms não da erro.
Ai pensei que era algo de errado no meu código e então fiz uma nova dll e um novo projeto simples só com o form com uma TImage ai tudo blz, criei 3 forms e fechei todos não deu erro, ai fui criando uns 5 e nada de erro ai criei uns 10 ai deu erro em uns 3 forms.
Eu não consigo entender, acho que pode ser memória algo do tipo pq eu fiz um form simples com uma imagem e pode criar mais form.
No form quando da close ele da em sim mesmo free.
Ai vi que poderia ser isso ai removi o free e não da mais erro! o que pode ser?? eu tenho qie tirar ele da memória!
Da vários tipos de erro como:
[b:677e792aea]Access violation at address 00453356 in module ´projeto.exe´. Read of address 000002F4
Acesse violation at address F28B5653. Read of address F28B5653
Access violation at address 00350A21 in module ´formdll.dll´. Read of address 009E1255 [/b:677e792aea]
Alguem pode me ajudar???
30/03/2006
Rudá
Era só o metodo de como eu limpava ele, estava usando [b:16f5b328fa]Free[/b:16f5b328fa] ai mudei para [b:16f5b328fa]Action:= caFree;[/b:16f5b328fa] e não deu mais erro!
Agora só tenho mais uma dúvida!
Como faço para quando o form da dll abrir ou fechar ou algo do tipo quando acontecer um TNotifyEvent ele fazer algo no meu form do meu aplicativo???
Exemplo quando o botao do form da dll for clicado o meu form do aplicativo az algo como desaparecer ou aparecer???
Clique aqui para fazer login e interagir na Comunidade :)