Fórum Enviar uma string de uma DLL para um Memo do meu programa... #340350
13/04/2007
0
Explicando melhor..
Tenho uma aplicação, feita em dephi, com um TMemo... e uma DLL feita em delphi, o que preciso, é enviar uma string da DLL pra dentro do Memo desta aplicação... :roll:
Desde já agradeço
[]s
Titanius
Curtir tópico
+ 0Posts
13/04/2007
Marco Salles
Qual a sua dúvida titanius ???
Defina uma função com esta ´String´ e export esta função para a sua
aplicação
[b:6c34221fb7]capturando [/b:6c34221fb7].....
P:S 1) [b:6c34221fb7]não esqueça da unit Sharem tb no dpr do seu aplicativo[/b:6c34221fb7]
P:S 2) o ´String´ esta entre aspas porque não se deve usar tipos nativos do delphi , a não ser que a dll seje usada somente para programa feitos em delphi...
Gostei + 0
13/04/2007
Titanius
DLL:
function Processa: boolean; begin (..) EnviaProPrograma(´ddd´); (..)
na DLL eu já inseria no Memo automaticamente, sem eu no programa ter que ir na DLL e buscar, entende? seria como se fosse um SQL Monitor..
Será que expliquei certo? :oops:
[]s
Gostei + 0
14/04/2007
Adriano Santos
Vc não quer mexer no programa principal titanius? É isso?
Cara essa parada é loka, acho que não dá. Fiz um teste bem básico aqui se liga:
[quote:4e82a7442f=´Código da DLL´]
library dll;
uses
SysUtils,
Classes,
Dialogs,
uPrincipal in ´uPrincipal.pas´ ;
{$R *.res}
function AtualizarSistema: Integer; export;
var
I : Integer;
begin
for I := 0 to 2 do
ShowMessage(´Atualizando: ´ + FormatFloat(´000´, I));
//Form1.Memo1.Lines.Add(´Atualizando: ´ + FormatFloat(´000´, I));
end;
exports
AtualizarSistema index 1;
begin
end.
[/quote:4e82a7442f]
[quote:4e82a7442f=´Código do aplicativo´]
unit uPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
function AtualizarSistema: Integer;stdcall;external ´dll.dll´;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
AtualizarSistema;
end;
end.
[/quote:4e82a7442f]
Chapado, adicionei o form principal do meu projeto na dll e tentei atualizar, mas sem chance. Access violation. Não entendo muito de dlls, acho que não é possível. Sei lá.
Gostei + 0
14/04/2007
Marco Salles
A pergunta :
quando é que a dll vai ficar sabendo que esta na hora de mandar esta mensagem para o aplicativo ??? Um Timer , um sellep , um processamento interno ???
Ai vem a opinião
Não da para adaptar isto em forma de mensagens do Windows , para se capturado pela janela aonde esta o Aplicativo que contém o Menu ????
Eu acho que talves esta seje a parte mais fácil .. O Problema é saber quando esta mensagme vai ser enviado
Gostei + 0
14/04/2007
Titanius
O programa em questão a DLL, vai ficar em outro programa (Feito em Delphi), e tenho este outro programa o que chamo de Auditoria.. pois bem..
Prog1 -> sistema que envia a mensagem para a DLL
DLL -> Recebe a mensagem do Prog1 e envia para o Prog2
Prog2 -> M<eu programa de autitoria...
O Prog1, pode ser o proprio firebird por exemplo, usando a DLL como UDF, lá na SP ou Trigger, chamo a função EnviaString, e passo a string que deverá aparecer no Prog2...
Mas a questão é, como envia a string da DLL para o Prog2, sem que o Prog2 tenha que ficar buscando esta DLL... é a DLL que tem que buscar o Prog2, se achar, mandar o texto pro memo dele.. entende?
Bem, é mais ou menos isso.. :oops: é uma loucura só, como nunca mexi com DLL, não faço idéia nem de como começar.. :D
Vi pela net, algo sobre DDE, comunicação entre aplicações, será que é um caminho?
[]s
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)