Como proteger um aviso no Delphi
Dae!
Eu fiz um aviso para colocar no laboratório onde eu trabalho e não estou conseguindo fazer com que durante 15 segundos ninguém consiga fechá-lo ou sobrepô-lo. Quero fazer com que todos leiam o aviso. Já consegui fechar o form após 15 segundos, e tirar os botões de fechar e minimizar, mas ainda com ALT +F4 ou com o botão direito do mouse se consegue fechar e tirar da frente da tela.
Obrigado pela ajuda,
Alessandro :shock:
Eu fiz um aviso para colocar no laboratório onde eu trabalho e não estou conseguindo fazer com que durante 15 segundos ninguém consiga fechá-lo ou sobrepô-lo. Quero fazer com que todos leiam o aviso. Já consegui fechar o form após 15 segundos, e tirar os botões de fechar e minimizar, mas ainda com ALT +F4 ou com o botão direito do mouse se consegue fechar e tirar da frente da tela.
Obrigado pela ajuda,
Alessandro :shock:
Aor
Curtidas 0
Respostas
Cebikyn
23/07/2003
[b:2995763122]Bloquear ALT-F4[/b:2995763122]
Coloque no evento [i:2995763122]OnKeyDown[/i:2995763122] do seu Form:
[b:2995763122]Bloquear o botão direito[/b:2995763122]
Para evitar que o usuário clique com o botão direito do mouse na barra de tarefas e selecione [i:2995763122]Fechar[/i:2995763122], você pode ocultar o botão de seu programa na barra de tarefas. Para isso coloque no evento [i:2995763122]OnShow[/i:2995763122] do Form:
Coloque no evento [i:2995763122]OnKeyDown[/i:2995763122] do seu Form:
if (key=VK_F4) and (ssAlt in Shift) then key:=0;
[b:2995763122]Bloquear o botão direito[/b:2995763122]
Para evitar que o usuário clique com o botão direito do mouse na barra de tarefas e selecione [i:2995763122]Fechar[/i:2995763122], você pode ocultar o botão de seu programa na barra de tarefas. Para isso coloque no evento [i:2995763122]OnShow[/i:2995763122] do Form:
procedure TMainForm.FormShow(Sender: TObject); var Owner : HWnd; begin Owner:=GetWindow(Handle,GW_OWNER); ShowWindow(Owner,SW_HIDE); end;
GOSTEI 0
E_gama
23/07/2003
- Configure a propriedade [b:3214e629c7]FormStyle[/b:3214e629c7] do seu formulário para [b:3214e629c7]fsStayOnTop[/b:3214e629c7]
- Crie um variável na seção Private do do Form (ex.: FPodeFechar: Boolean);
- No evento [b:3214e629c7]OnCreate[/b:3214e629c7], escreva: [i:3214e629c7]FPodeFechar := False;[/i:3214e629c7]
- No evento [b:3214e629c7]OnCloseQuery[/b:3214e629c7], escreva: [i:3214e629c7]CanClose := FPodeFechar[/i:3214e629c7]
- No momento em que sua aplicação puder ser fechada, faça: [i:3214e629c7]FPodeFechar := True;[/i:3214e629c7]
Segue o exemplo de um form com um botão para fecha-lo:
- Crie um variável na seção Private do do Form (ex.: FPodeFechar: Boolean);
- No evento [b:3214e629c7]OnCreate[/b:3214e629c7], escreva: [i:3214e629c7]FPodeFechar := False;[/i:3214e629c7]
- No evento [b:3214e629c7]OnCloseQuery[/b:3214e629c7], escreva: [i:3214e629c7]CanClose := FPodeFechar[/i:3214e629c7]
- No momento em que sua aplicação puder ser fechada, faça: [i:3214e629c7]FPodeFechar := True;[/i:3214e629c7]
Segue o exemplo de um form com um botão para fecha-lo:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
FPodeFechar: Boolean;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
FPodeFechar := False;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FPodeFechar := True;
Close;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := FPodeFechar;
end;
end.
GOSTEI 0