powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Модальный позор
24 сообщений из 124, страница 5 из 5
Модальный позор
    #40122020
Фотография Makar4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
alekcvp
Тоже, конечно, объяснение, но не то чтобы про лампочку.

Шестилетнему ребёнку надо объяснять не так, как студенту физфака. Ему надо проиллюстрировать суть на доступном ему уровне; приведённый Вами вариант, конечно, далёк от идеала, но в целом находится на верном пути.

Если чуть пофилософствовать - Эйнштейн справедливо отметил, что именно эту способность многие взрослые теряют. Они так закапываются в детали, что перестают видеть суть. У Фейнмана на эту тему тоже можно прочитать кое-что интересное, достаточно сделать поиск по слову "лекала".

А на практике - я однажды ответил восьмилетней дочке на вопрос, зачем по ночам езжу к любовнице. Думаю, это было немного сложнее, чем с теорией относительности :)

Ответить, зачем к любовнице, вместо изобретания двигателя сверхсветового?
Сам понял?
Не только у человека инстинкт размножения помножен на удовольствие...
Иначе - было бы проблематичнее размножаться.

Размножайся. Дети - умнее тебя будут.
...
Рейтинг: 0 / 0
Модальный позор
    #40122103
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster
X11,

Я давным-давно делаю вместо ShowMessage() что-то такое:

Код: pascal
1.
2.
Result:=MessageBox(WindowHandle,PChar(Msg),PChar(sQuest),
                    mb_YesNo+mb_IconQuestion+mb_SystemModal)=idYES;




куда отдаю Handle вызывающего окна. В принципе описанная ситуация возможна при каскаде ShowMessage() (ну и других диалогов конечно), но такое "Подтвердите, что вы подтвердили...." - это уже говорит о некоторой кривизне.



https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Forms.TApplication.MessageBox

function MessageBox(const Text, Caption: PChar; Flags: Longint = MB_OK): Integer;

У тебя какой-то другой MessageBox, нестандартный


тут тоже нет параметра для ввода Application.ActiveFormHandle
function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
...
Рейтинг: 0 / 0
Модальный позор
    #40122105
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, а что это за новые параметры в ShowMessage, описания которых нет в справке?
https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Dialogs.ShowMessage

procedure ShowMessage(const Msg: string; TaskDlgFlags: TTaskDialogFlags );

здесь тоже этот параметр есть, но описания нет
https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Dialogs.MessageDlgPos
...
Рейтинг: 0 / 0
Модальный позор
    #40122108
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Модальный позор
    #40122109
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
TTaskDialogFlags

type TTaskDialogFlags = set of TTaskDialogFlag;
https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Dialogs.TTaskDialogFlag
...
Рейтинг: 0 / 0
Модальный позор
    #40122148
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот интересно, сам столкнулся с подобной ситуацией в Линуксе на Лазарусе (на винде и макоси все нормально). Пришлось перед вызовом модальной формы впендюрить
Код: pascal
1.
2.
3.
{$IFDEF LINUX}
FormStyle:= fsStayOnTop;
{$ENDIF}


Похоже на баг, только проявляющийся в хитровывернутом коде. Будет время, сделаю тестовый проект и на форуме лазаря подниму вопрос
...
Рейтинг: 0 / 0
Модальный позор
    #40122158
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот, как это выгдядит, без костылей

...
Рейтинг: 0 / 0
Модальный позор
    #40122166
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, Док, ты не ровняй LCL и VCL.
но Линухе концепция окон совсем не как на Вин.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Модальный позор
    #40122172
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийно Линухе концепция окон совсем не как на Вин.

Отсутствие системной библиотеки виджетов в Х-сервере, конечно, та ещё проблема,
но в остальной части концепции я лично особой разницы не вижу. Что там
концептуально другое?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Модальный позор
    #40122173
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

знаю, там вызывающее окно, хоть формально и не имеет фокус, но доступно для захвата мышью. Но в моем случае, оно еще и лежит поверх модального :(
...
Рейтинг: 0 / 0
Модальный позор
    #40122835
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox

Как раз таки у меня - стандартный WinAPI MessageBox :)
...
Рейтинг: 0 / 0
Модальный позор
    #40123160
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

и как его использовать?
...
Рейтинг: 0 / 0
Модальный позор
    #40123185
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
DarkMaster,

и как его использовать?
Так же, как его использует "стандартная" функция https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Forms.TApplication.MessageBox
, которую ты приводил, внутри себя.
Только без этого всего. А просто передавать туда хэндл окна, которого нужно.
...
Рейтинг: 0 / 0
Модальный позор
    #40123233
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще есть хорошая функция MessageBoxTimeoutA

Код: pascal
1.
function MessageBoxTimeOut(hWnd: HWND; lpText: PChar; lpCaption: PChar; uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): integer; stdcall; external user32 name 'MessageBoxTimeoutA';


Позволяет показывать сообщения на протяжении определенного времени
...
Рейтинг: 0 / 0
Модальный позор
    #40123279
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений
Позволяет показывать сообщения на протяжении определенного времени

Какой в ней смысл в рамках рассматриваемой темы?
...
Рейтинг: 0 / 0
Модальный позор
    #40123328
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
26.12.2021 23:00, Шавлюк Евгений пишет:
> А еще есть хорошая функция MessageBoxTimeoutA

оно всё ещё не документировано (хоть и расписано на всех углах).
да, оно работает ещё со времён WinXP, но M$ за каким-то хреном её "прячет" в карман.
(как и многое другое)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Модальный позор
    #40123335
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий
26.12.2021 23:00, Шавлюк Евгений пишет:
> А еще есть хорошая функция MessageBoxTimeoutA

оно всё ещё не документировано (хоть и расписано на всех углах).
да, оно работает ещё со времён WinXP, но M$ за каким-то хреном её "прячет" в карман.
(как и многое другое)

Блин.
А я отдельное приложение малюсенькое использую. В командной строке передаю ему три параметра: заголовок, сообщение, время(сек). Диалог отображается в течении указанного времени, и, если юзер на нажал кнопку - плавно "тает".
Удобно, когда программа должна закрыться, напоследок что-то показав, не блокируясь при этом модальным окошком.
...
Рейтинг: 0 / 0
Модальный позор
    #40123341
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
А я отдельное приложение малюсенькое использую.
я пользую виндовый MessageBox в отдельном потоке.
...
Рейтинг: 0 / 0
Модальный позор
    #40123343
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извращенцы...
...
Рейтинг: 0 / 0
Модальный позор
    #40123344
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat,

они самые.
...
Рейтинг: 0 / 0
Модальный позор
    #40123461
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда, в целях отладки, нужно выкинуть MessageBox из сервиса. Использую такую функцию
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure Msg(const AMsg: string);
const
  CTitle = 'Debug Info';
var
  LSession: Cardinal;
  LRet: Cardinal;
begin
  LSession := GetActiveSession;
  if LSession = WTS_INVALID_SESSION then
    LSession := WTS_CURRENT_SESSION;
  Win32Check(WTSSendMessage(WTS_CURRENT_SERVER_HANDLE, LSession,
    CTitle, Length(CTitle) * SizeOf(Char),
    PChar(AMsg), Length(AMsg) * SizeOf(Char), MB_OK, 0, LRet, True)
  );
end;

...
Рейтинг: 0 / 0
Модальный позор
    #40123578
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Так же, как его использует "стандартная" функция


но в uses нужно подключать какое-то другой модуль вместо Vcl.Forms.TApplication?
...
Рейтинг: 0 / 0
Модальный позор
    #40123591
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
YuRock
Так же, как его использует "стандартная" функция


но в uses нужно подключать какое-то другой модуль вместо Vcl.Forms.TApplication?

X11, посмотрите реализацию Application.MessageBox. (Ctrl + Click) То место, где try ... finally.
...
Рейтинг: 0 / 0
Модальный позор
    #40123602
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
YuRock
Так же, как его использует "стандартная" функция


но в uses нужно подключать какое-то другой модуль вместо Vcl.Forms.TApplication?
Если б Вы зашли по ссылке, которую сами и привели (справка по функции TApplication.MessageBox), то увидели бы, что там написано
MessageBox is an encapsulation of the Windows API MessageBox function

Потому - да, надо подключать модуль, содержащий интерфейсы функций Windows API.
...
Рейтинг: 0 / 0
24 сообщений из 124, страница 5 из 5
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Модальный позор
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]