Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
3-17482
sergey32
2002-04-12 10:16
2002.05.06
Не могу запустить цикл по IBQuery


3-17499
Саша
2002-04-12 14:03
2002.05.06
Работа с файлами Html


3-17500
Art1
2002-04-11 21:58
2002.05.06
Как в DBGrid выделить цветом текущую зпись?


14-17697
MBo
2002-03-29 16:16
2002.05.06
Заинтересовался вот.


1-17635
Timon
2002-04-23 11:27
2002.05.06
Интересный вопрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский