Что принятый путь состоит в том, чтобы использовать кадры в Delphi?

Вы могли использовать ignore_user_abort() - тот способ, которым сценарий продолжит работать, даже если Вы закроете свой браузер или перейдете к различной странице.

8
задан menjaraz 13 January 2012 в 04:49
поделиться

4 ответа

Это один способ, и в этом нет ничего плохого. Другой способ - сделать это визуально. Таким образом, вы можете просто добавить рамку в форму. для этого вы:

  • Создайте свой фрейм.
  • Перейдите к форме, в которую вы хотите поместить фрейм.
  • Добавьте компонент «Фреймы» (вкладка «Стандарт»)
  • Выберите фрейм из раскрывающегося списка.
  • Вот и все!
14
ответ дан 3 November 2019 в 14:19
поделиться

Единственная проблема с вашим подходом заключается в том, что вы не можете добавить несколько экземпляров одного и того же фрейма в заданную форму:

Frame1 := TMyFrame.Create(Self);
Frame1.Parent := Self;
// ...
Frame2 := TMyFrame.Create(Self); // bombs out with "a component with the name MyFrame already exists"

Временное решение для него - назначить разные имена для каждого экземпляра:

Frame1 := TMyFrame.Create(Self)
Frame1.Parent := Self;
Frame1.Name := "FirstFrame";
// ...
Frame2 := TMyFrame.Create(Self); // works now, there is no name conflict
6
ответ дан 3 November 2019 в 14:19
поделиться

Вы можете даже пойти дальше, зарегистрировав свои фреймы как компоненты.

Это не позволяет вам редактировать свойства компонентов на фрейме, как только компонент фрейма будет на форме. Но я думаю, что это хорошо.

Вам нужно еще кое-что, кроме регистрации вашего фрейма в качестве компонента, как я объясняю в этой статье о Delphi - Фреймы как визуальные компоненты - не забудьте свой Sprig! .

Это не мое знание: я получил его от Рэя Конопки во время одного из его сеансов на конференции Delphi Live в Сане. Хосе в начале этого года.

5
ответ дан 3 November 2019 в 14:19
поделиться

Это скорее отрицательный ответ, но я пробовал путь, который включал переподготовку TFrames для немного сложного графического интерфейса.

Сначала все прошло нормально, но когда приложение созрело и началось больше событий fly, мне пришлось отключить и затем обработать сообщения на некоторое время (20 мс) перед изменением, а затем все еще иногда возникали сбои при смене кадра.

Одна из виновников, которую я в итоге обнаружил, TPopmenu также регистрируется в глобальных структурах данных. Это уменьшило проблемы, но они все еще были, поэтому я отхожу от концепции.

2
ответ дан 3 November 2019 в 14:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: