powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Форма1 поверх формы2
12 сообщений из 37, страница 2 из 2
Форма1 поверх формы2
    #40131574
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgik
Оказывается Application.CreateForm не только создает форму, но и показывает её

Ну-ну. Успехов проекту с такими открытиями.

P.S. А когда Application.CreateForm создаёт модуль данных - он его тоже показывает?
...
Рейтинг: 0 / 0
Форма1 поверх формы2
    #40131581
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
didgik
Оказывается Application.CreateForm не только создает форму, но и показывает её

Ну-ну. Успехов проекту с такими открытиями.

P.S. А когда Application.CreateForm создаёт модуль данных - он его тоже показывает?

Нет, он же не визуальный.

Вот чую, что меня хотели подъ..хм..колоть, но не понимаю где )))
...
Рейтинг: 0 / 0
Форма1 поверх формы2
    #40131584
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-Cite
didgik,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
TForm1 = class(TCustomForm)
private
  const
    WM_AFTERACTIVATE = WM_USER + 1;
  var
    FInitialized: Boolean;
private
  procedure WMAfterActivate(var Message: TWMNoParams); message WM_AFTERACTIVATE;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FInitialized := False;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  if not FInitialized then
  begin
    FInitialized := True;
    if not PostMessage(Handle, WM_AFTERACTIVATE, 0, 0) then
      RaiseLastOSError();
  end;
end;

procedure TForm1.WMAfterActivate(var Message: TWMNoParams);
begin
  ....
end;



А чего PostMessage() просто в OnShow не поместить?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
type
  TForm2 = class(...)
    procedure FormShow(...);
  private
    procedure OnAfterShow(var aMsg: TMessage); message WM_USER + 1;
  end;
...
implementation
...

procedure TForm2.FormShow(...);
begin
   PostMessage(This.Handle, WM_USER + 1, 0, 0)
...
procedure TForm2.OnAfterShow(var aMsg: TMessage);
begin
  Form3.ShowModal()
...
...
Рейтинг: 0 / 0
Форма1 поверх формы2
    #40131590
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite> Потому что VCL еще не до конца обработала...
X-Cite> https://quality.embarcadero.com/browse/RSP-24519

Что именно? Условный долгий OnCreate или что?
Какой сценарий "неправильный"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форма1 поверх формы2
    #40131591
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

тема страниц на пять, не меньше...
...
Рейтинг: 0 / 0
Форма1 поверх формы2
    #40131641
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
Гаджимурадов Рустам,

тема страниц на пять, не меньше...
+1.

А еще можно обсудить периодическое заваливание формы под главную, если OnShow долго выполняется (н-р длинный SQL запрос).
Приходится кликать на таскбаре, чтоб появилась. :)
...
Рейтинг: 0 / 0
Форма1 поверх формы2
    #40131702
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L_argo

А еще можно обсудить периодическое заваливание формы под главную, если OnShow долго выполняется (н-р длинный SQL запрос).
Приходится кликать на таскбаре, чтоб появилась. :)

это происходит не только в OnShow, но и при выполнении длинного SQL по нажатию на кнопку, когда модальная форма давно открыта.
...
Рейтинг: 0 / 0
Форма1 поверх формы2
    #40131746
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ> тема страниц на пять, не меньше...

Я вообще-то не шучу. :) Какой из heavy-load
сценариев не решается простым флагом? :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форма1 поверх формы2
    #40131748
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo> Приходится кликать на таскбаре, чтоб появилась. :)

Можно же программного Foreground сделать, если я правильно понял.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форма1 поверх формы2
    #40131938
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
X-Cite> Потому что VCL еще не до конца обработала...
X-Cite> https://quality.embarcadero.com/browse/RSP-24519

Что именно? Условный долгий OnCreate или что?
Какой сценарий "неправильный"?


Понятия не имею что происходит после выхода за OnShow или OnActivate и какие там еще сообщения из очереди должны быть обработаны, но если в любом из этих двух обработчиков вызвать
Код: pascal
1.
TForm2.Create(Self).ShowModal();



То на TForm2 не будет работать событие OnKeyPress
...
Рейтинг: 0 / 0
Форма1 поверх формы2
    #40131988
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite
Понятия не имею что происходит после выхода за OnShow или OnActivate и какие там еще сообщения из очереди должны быть обработаны
Дык разбираться надо в чём проблема и почему.
Вполне возможно (и скорее всего) дело не в бобине.


X-Cite
но если в любом из этих двух обработчиков вызвать
Код: pascal
1.
TForm2.Create(Self).ShowModal();


То на TForm2 не будет работать событие OnKeyPress
Только что проверил - корректно работает и вызывается.
...
Рейтинг: 0 / 0
Форма1 поверх формы2
    #40132125
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
L_argo> Приходится кликать на таскбаре, чтоб появилась. :)

Можно же программного Foreground сделать, если я правильно понял.
Подробностей не помню. Кажется пробовал такое. Стало реже пропадать. Но все равно были случаи.
Возможно надо запустить таймер и сделать Foreground по таймеру. :)

зы: цирк, кароче....
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Форма1 поверх формы2
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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