Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ajuda com API Jedi TJvDesktopAlert


Mario Henrique

Pergunta

Boa tarde, caros!

Estou desenvolvendo um sistema usando o componente TJvDesktopAlert do Jedi, e preciso controlar cada instancia atribuindo nome, para que num determinado momento eu destruia uma determinada instancia pelo nome que eu precisar.

Alguém poderia me ajudar?

No exemplo do pacote, ele cria dinamicamente, mas não detalha como eu posso fazer o que preciso!

Obrigado pela atenção de todos!

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Seguinte, estou montando dentro de um sistema, um controle de avisos.

O administrador dispara avisos, e o jvdesktopalert fica ali na tela até que o usuário clica pra ler.

Vi um post seu ensinando a criar e destruir o aviso. Mas preciso dar nome ao jvdesktopalert para que eu possa destruir um determinado aviso.

Como se fosse: 

mensagem := tjvdesktopalert.create(self);

mensagem.name := 'teste1';

...

depois eu preciso achar ele e destruir, mantendo os demais criados na tela:

tjvdesktopalert('teste1').close;

Foi somente um exemplo que escrevi, não funciona.

Alguma ideia de como controlar cada alerta criado?

Link para o comentário
Compartilhar em outros sites

  • 0

Uma sugestão, seria voce criar uma rotina para ler os componentes que estão no Form e depois achar o componente especifico e fecha-lo

Vi um post seu ensinando a criar e destruir o aviso

Não me lembro mais desse post, por favor me passe o link dele novamente .

 

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas, achei você neste post 

Então, eu estou precisando de ajuda justamente para poder fazer este controle. Não teria como me dar um exemplo, pois não sou experiente... Outra coisa, tem alguns eventos já prontos no componente, como .close, .removeform, etc... e eu acredito que já exista a possibilidade de dar free num aviso determinado, ao invés de eu tratar... Consegue me ajudar? Obrigado pela atenção!

 

Link para o comentário
Compartilhar em outros sites

  • 0

Um exemplo simples:

procedure TForm1.Button1Click(Sender: TObject);
begin
  with JvDesktopAlert1 do
  begin
    HeaderText := 'Aviso:';
    MessageText :=
      'Exemplo de mensagem com JvDesktopAlert';
    Execute;
  end;
end;

Para usar mais de um Alerta voce deve criar o componente dinamicamente

exemplo:

JvDesktopAlert := TJvDesktopAlert.Create(nil);
with JvDesktopAlert  do
begin
   ...
end;

e depois deve destruí-lo

JvDesktopAlert .Free;
JvDesktopAlert := nil;

 

exemplo:

unit Unit1;


interface


uses
  Winapi.Windows,
  Winapi.Messages,
  System.SysUtils,
  System.Variants,
  System.Classes,
  Vcl.Graphics,
  Vcl.Controls,
  Vcl.Forms,
  Vcl.Dialogs,
  Vcl.StdCtrls,
  JvDesktopAlert;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    procedure AddAlert(title, text: String; stack: TjvDesktopAlertStack);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}  

procedure TForm1.AddAlert(title, text: String; stack: TjvDesktopAlertStack);
Begin
  with TJvDesktopAlert.Create(self) do
  Begin
    AutoFree   := true;
    AlertStack := stack;
    HeaderText := title;
    MessageText := text;
    Execute(self.Handle);
  End;
End;

procedure TForm1.Button1Click(Sender: TObject);
var
  stack: TjvDesktopAlertStack;
begin
  stack := TJvDesktopAlertStack.Create(self);
  try
    AddAlert('title1', 'message1', stack);
    AddAlert('title2', 'message2', stack);
    AddAlert('title3', 'message3', stack);
    AddAlert('title4', 'message4', stack);
    AddAlert('title5', 'message5', stack);
  finally
    stack.Free;
  end;
end;

end.

Outro exemplo pronto

https://github.com/project-jedi/jvcl/blob/master/jvcl/examples/JvDesktopAlert/JvDesktopAlertDemoForm.pas

Mais exemplos:

https://github.com/project-jedi/jvcl/tree/master/jvcl/examples/JvDesktopAlert

https://sourceforge.net/p/jvcl/mailman/message/14329486/

importante:

Algumas propriedades do componente que você deve conhecer são:

·         AlertStyle: configura o efeito utilizado na exibição do alerta;
·         Colors: define as cores que o alerta será pintado;
·         Location: indica a posição da tela em que o alerta aparecerá;
·         Options: configura se o alerta pode ser clicado, movido ou fechado;
·         StyleOptions: configura a animação executada na exibição do alerta.

Veja tambem esse link:

https://www.mail-archive.com/search?l=delphi-br@yahoogrupos.com.br&q=subject:"Res\%3A+Res\%3A+\[delphi\-br\]+componentes+criados+dinamicamente"&o=newest&f=1

abraço

 

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, eu não tenho esse componente instalado... e não tenho como testar isso aqui.

só posso te indicar o caminho

Se esse componente for visual, então voce ao coloca-lo no Form ele deve aparecer tipo JvDesktopAlert1 

e se colocar outros

JvDesktopAlert2, JvDesktopAlert3, JvDesktopAlert4,  ... etc

se for isso, voce pode então usar uma rotina para ler os componentes do Form

procedure  TForm1.verifica(Sender: TObject);
var  i : integer; nome : string;
begin
     
     for i := 0 to ComponentCount -1 do
       begin
         nome := '';
         if Components[i] is TJvDesktopAlert then
            nome := sender.classname + '/' + TJvDesktopAlert(Components[i]).name;

         showmessage(nome);   
      end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   verifica(Sender);
end;

Use o código acima, e veja se ele mostra o nome desse componente.

Se funcionar, eu coloco o restante do código.

abraço

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...