evento de objeto criado dinamicamente
21/01/2010
0
Boa noite. Como faço para utilizar a constante AsStatusText do evento OnStatus de um componente IdSmtp criado dinamicamente. Ex:
Result := False;
LidSMTP := TIdSMTP.Create(nil);
while not (LidSMTP.Connected) do // enquanto não conectar, o programa vai ficar tentando conectar infinitamente.
begin
try LidSMTP.Disconnect;
LidSMTP.Host := host;
LidSMTP.Port := Fporta;
LidSMTP.Username := usuario;
LidSMTP.Password := senha; LidSMTP.AuthType := FTipoDeAutenticacao;
LidSMTP.Connect;
if not LidSMTP.Connected then
Exit; LIdMessage := TIdMessage.Create(nil);
try
LIdMessage.From.Text := fde;
LIdMessage.Recipients.EMailAddresses := fpara;
LIdMessage.MessageParts.Clear;
{:Foi criado para enviar a mensagem que esta na descricao} LIdMessage.Body.Text := texto; Acessar a constante AsStatusText do evento OnStatus de "LidSMTP". Obrigado
LidSMTP := TIdSMTP.Create(nil);
while not (LidSMTP.Connected) do // enquanto não conectar, o programa vai ficar tentando conectar infinitamente.
begin
try LidSMTP.Disconnect;
LidSMTP.Host := host;
LidSMTP.Port := Fporta;
LidSMTP.Username := usuario;
LidSMTP.Password := senha; LidSMTP.AuthType := FTipoDeAutenticacao;
LidSMTP.Connect;
if not LidSMTP.Connected then
Exit; LIdMessage := TIdMessage.Create(nil);
try
LIdMessage.From.Text := fde;
LIdMessage.Recipients.EMailAddresses := fpara;
LIdMessage.MessageParts.Clear;
{:Foi criado para enviar a mensagem que esta na descricao} LIdMessage.Body.Text := texto; Acessar a constante AsStatusText do evento OnStatus de "LidSMTP". Obrigado
Jean Almeida
Curtir tópico
+ 0
Responder
Posts
22/01/2010
Emerson Nascimento
como não dá pra acessar diretamente, crie uma variável private e atribua a ela o valor dessa outra.
então, seu evento OnStatus deverá ter uma linha acrescentada, com essa atribuição.
por exemplo:
procedure TForm1.IdSMTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: string);
begin
cStatusText := AStatusText; // cStatusText é uma variával private
end;
depois, no seu código, use a variável cStatusText.
Result := False;
LidSMTP := TIdSMTP.Create(nil);
while not (LidSMTP.Connected) do // enquanto não conectar, o programa vai ficar tentando conectar infinitamente.
begin
try LidSMTP.Disconnect;
LidSMTP.Host := host;
LidSMTP.Port := Fporta;
LidSMTP.Username := usuario;
LidSMTP.Password := senha; LidSMTP.AuthType := FTipoDeAutenticacao;
LidSMTP.Connect;
if not LidSMTP.Connected then
Exit; LIdMessage := TIdMessage.Create(nil);
try
LIdMessage.From.Text := fde;
LIdMessage.Recipients.EMailAddresses := fpara;
LIdMessage.MessageParts.Clear;
{:Foi criado para enviar a mensagem que esta na descricao} LIdMessage.Body.Text := texto; [use a variável cStatusText]
então, seu evento OnStatus deverá ter uma linha acrescentada, com essa atribuição.
por exemplo:
procedure TForm1.IdSMTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: string);
begin
cStatusText := AStatusText; // cStatusText é uma variával private
end;
depois, no seu código, use a variável cStatusText.
Result := False;
LidSMTP := TIdSMTP.Create(nil);
while not (LidSMTP.Connected) do // enquanto não conectar, o programa vai ficar tentando conectar infinitamente.
begin
try LidSMTP.Disconnect;
LidSMTP.Host := host;
LidSMTP.Port := Fporta;
LidSMTP.Username := usuario;
LidSMTP.Password := senha; LidSMTP.AuthType := FTipoDeAutenticacao;
LidSMTP.Connect;
if not LidSMTP.Connected then
Exit; LIdMessage := TIdMessage.Create(nil);
try
LIdMessage.From.Text := fde;
LIdMessage.Recipients.EMailAddresses := fpara;
LIdMessage.MessageParts.Clear;
{:Foi criado para enviar a mensagem que esta na descricao} LIdMessage.Body.Text := texto; [use a variável cStatusText]
Responder
Clique aqui para fazer login e interagir na Comunidade :)