Главная страница
    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
1-17635
Timon
2002-04-23 11:27
2002.05.06
Интересный вопрос


3-17481
yyy
2002-04-12 12:58
2002.05.06
Можно как-либо вставить в бд поля её типа?


3-17487
62mkv
2002-04-11 15:58
2002.05.06
Левые пустые страницы в отчете - как убрать ?


1-17598
Сатир
2002-04-22 16:47
2002.05.06
TreeView


1-17542
masik
2002-04-22 17:21
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский