Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.06;
Скачать: CL | DM;

Вниз

О закрытии приложения   Найти похожие ветки 

 
VJar   (2002-04-23 00:02) [0]

Как запретить пользователю закрывать приложение,
а на попытку закрыть выдавать сообщение "Error"?
Как зделать кнопку (х), которая закрывает приложение
недоступной(видимой)???


 
Atrem   (2002-04-23 00:14) [1]

1) В событии формы ONCloseQuey напиши
application.messagebox(" ","Error!",mb_ok);
canclose:=false;
2) faq


 
ghost_by ©   (2002-04-23 07:40) [2]

Есть два варианта:
1. Сделать невидемой, но тогда и системное меню (левый верхний угол) будет невидно.
2. Задизаблить кнопку (х)

1. Решение - через CreateParams:
procedure TForm1.CreateParams(Params:CreateParams)
begin
inherited CreateParams(Params);
Params.Style:=DS_SYSMODAL or DS_MODALFRAME or WS_POPUP or WS_CAPTION;
end
В результате получаем голый Caption.

2. Решение - задизаблить кнопку (х):

Делает унопку серой(недоступной)
var SysMenu:HMenu;
begin
SysMenu:=GetSystemMenu(Handle,False);
EnableMenuItem(SysMenu,SC_CLOSE,MF_DISABLED or MF_GRAYED);
end;

Возвращает все назад.
var SysMenu:HMenu;
begin
SysMenu:=GetSystemMenu(Handle,False);
EnableMenuItem(SysMenu,SC_CLOSE,MF_ENABLED);
end;


 
VJar   (2002-04-23 15:54) [3]

Во-первых не Params:CreateParams, а Params:TCreateParams
А во-вторых никакого эфекта я не заметил


 
ghost_by ©   (2002-04-24 07:34) [4]

Во-первых не Params:CreateParams, а Params:TCreateParams - немного ошибся, потому что писал не на Delphi, а на Beulder`e. Извеняюсь.

А во-вторых никакого эфекта я не заметил - как это незаметил? Должен у формы оставаться голый Caption - только текст без всех кнопок и системного меню.

Ниже приведенный кусок кода работает на все 100%, я его только что проверил!

unit Unit5;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm5 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
protected
procedure CreateParams(var Params:TCreateParams);override;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form5: TForm5;

implementation

{$R *.DFM}

procedure TForm5.CreateParams(var Params:TCreateParams);
begin
inherited CreateParams(Params);
Params.Style:=DS_SYSMODAL or DS_MODALFRAME or WS_POPUP or WS_CAPTION;
end;

procedure TForm5.Button1Click(Sender: TObject);
begin
Close;
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2002.05.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
14-17678
lipskiy
2002-03-04 15:48
2002.05.06
Антивирусная защита программы


1-17642
Termik
2002-04-23 09:58
2002.05.06
Как заставить Делфи выполнить мат. выражение ?


1-17634
lipskiy
2002-04-22 23:58
2002.05.06
Как прикрутить PopupMenu к одному из пунктов MainMenu?


1-17632
HDD
2002-04-22 16:53
2002.05.06
SysUtils


1-17577
KIR
2002-04-19 09:52
2002.05.06
Округление типа Extended