Topic: Крестик

Доброе время суток. Есть ли способ на определённой форме спрятать крестик (тот что закрывает форму) Ну и сразу со всеми прочими кнопками тех что рядом сворачивания окна.

Re: Крестик

agatlogic101 wrote:

Доброе время суток. Есть ли способ на определённой форме спрятать крестик (тот что закрывает форму) Ну и сразу со всеми прочими кнопками тех что рядом сворачивания окна.

Post's attachments

Attachment icon Image 1.jpg 97.09 kb, 171 downloads since 2019-03-04 

Re: Крестик

"Крестик", конечно, можно спрятать, но любую форму можно закрыть сочетанием клавиш Alt+F4, поэтому предотвратить закрытие формы пользователем, спрятав системные кнопки, в MVD на данный момент нельзя.

Визуальное программирование: блог и телеграм-канал.

Re: Крестик

Если нельзя, но очень хочется - значит можно. smile

procedure Form1_OnCloseQuery (Sender: TObject; Action: string);
begin
    if Action = 'true' then Action:= 'false';
end;

begin
    Form1.BorderIcons:= Form1.BorderIcons - biSystemMenu;
    Form1.Caption:= 'Форму можно закрыть в Диспетчере задач';
    Form1.OnCloseQuery:= @Form1_OnCloseQuery;
end.

ПРЕДУПРЕЖДЕНИЕ! Не запускайте скрипт, если не знакомы с "Диспетчером задач"!

Re: Крестик

mapcreatormail wrote:

Если нельзя, но очень хочется - значит можно. smile

procedure Form1_OnCloseQuery (Sender: TObject; Action: string);
begin
    if Action = 'true' then Action:= 'false';
end;

begin
    Form1.BorderIcons:= Form1.BorderIcons - biSystemMenu;
    Form1.Caption:= 'Форму можно закрыть в Диспетчере задач';
    Form1.OnCloseQuery:= @Form1_OnCloseQuery;
end.

ПРЕДУПРЕЖДЕНИЕ! Не запускайте скрипт, если не знакомы с "Диспетчером задач"!

MVD - это сокровищница недокументированных возможностей smile  А какие ещё обработчики можно таким образом подвесить на TAForm ?

Визуальное программирование: блог и телеграм-канал.

Re: Крестик

Думаю почти все, которые присутствуют в Delphi.

Dmitry.

Re: Крестик

А какой принцип описания параметров в обработчике событий? Ведь типы параметров в процедурах MVD и Delphi не всегда совпадают. В частности в Delphi в OnCloseQuery тип второго параметра Boolean, а в MVD - String.

Визуальное программирование: блог и телеграм-канал.

Re: Крестик

k245 wrote:

А какой принцип описания параметров в обработчике событий? Ведь типы параметров в процедурах MVD и Delphi не всегда совпадают. В частности в Delphi в OnCloseQuery тип второго параметра Boolean, а в MVD - String.

Просто этот пример немного неправильный, правильней будет так

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
    CanClose := False;
end;

А работает он потому что все параметры передаются как Variant, и просто случилось преобразование 'true' в настоящее True

Dmitry.