Поиск сообщества
Показаны результаты для тегов 'ShowModal'.
Найдено: 3 результата
-
Помогите разобраться с TThread.ForceQueue
SVTX опубликовал вопрос в Потоки и распределенные вычисления
Добрый день уважаемые эксперты. Помогите разобраться с функцией TThread.ForceQueue Пришлось внедрить ее как костыль в IOS для показа модальных форм, и получаем кучу ошибок на очистке памяти. Подскажите кто и как правильно ее использует в работе. Ниже рабочий код который гарантированно приведет к ошибке и у нас таких более 100 мест в проекте. FFrom := TFrom.Create(nil); TThread.ForceQueue(nil, procedure begin FFrom.ShowModal(procedure(Res: TModalResult) begin FreeForm(FFrom); //--> и тут получаем кучу ошибок - как правило на Form.Hide почемуто end); end);- 14 ответов
-
- tthread
- forcequeue
-
(и ещё 1 )
C тегом:
-
У меня проблема с модальными формами VCL в Firemonkey проекте. Когда VCL форма вызвана ShowModal, и пользователь параллельно с панели задач вызывает другую программу, по возвращении к моей модалка падает под программу и поднять ее невозможно. Помогите может у кого было такое. Помогите пожалуйста
-
- vcl
- firemoneky
-
(и ещё 2 )
C тегом:
-
В модальном окне срабатывает Action по ShortCut- у другого окна Наткнулся на неожиданную проблему. В диалоговом окне по ShortCut срабатывает Action другой формы. Например, вызвал окно по ShowModal, случайно (или не очень) нажал Ctrl-O и на тебе - окно выбора файла из главного окна. Изучение метода TCommonCustomForm.KeyDown привело к такому коду ... // 5. perform key in all ActionLists in Childrens TraverseChildren(self); // 6. perform key in all main menus and ActionLists in other forms OtherForms(True); OtherForms(False); ... procedure OtherForms(IsMain: boolean); var I, J: integer; F: TCommonCustomForm; begin if Done then Exit; for I := 0 to Screen.FormCount - 1 do if (Screen.Forms[I] <> self) and (Screen.Forms[I].Visible) and (IsMain xor (Screen.Forms[I] <> Application.MainForm)) then begin F := Screen.Forms[I]; for J := F.ChildrenCount - 1 downto 0 do begin if F.Children[J] is TMainMenu then TMainMenu(F.Children[J]).DialogKey(Key, Shift); if Key = 0 then begin Done := True; Exit; end; end; TraverseChildren(F); if Done then Exit; end; end; т.е. если ShortCut в активном оокне не отработал ищется по всем другим формам. Не знаю, для чего это нужно, но в модальном окне такое поведение вызывает мягко говоря недоумение. Решить проблему напрямую простыми способами пока не получилось, пока пришлось дизайблить все ActionList-ы перед вызовом диалога. Может всетаки есть какой то нормальный споcоб обойти проблему? PS. В Berline похоже такаяже хрень.