Fórum Como proteger um aviso no Delphi #171117

23/07/2003

0

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:


Aor

Aor

Responder

Posts

23/07/2003

Cebikyn

[b:2995763122]Bloquear ALT-F4[/b:2995763122]
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;



Responder

Gostei + 0

23/07/2003

E_gama

- 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:

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.



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar