Delphi Prism: Как загрузить Winform, не показывая его? - PullRequest
0 голосов
/ 13 сентября 2011

У меня есть winform, который нужно загрузить, чтобы обновить значения или свойства его элементов управления, прежде чем он будет показан.

Я нашел вопрос stackoverflow, задающий то же самое, но его ответ недействительно помогите мне. Загрузить форму, не показывая ее

Любой пример кода будет оценен.Спасибо,

Ответы [ 3 ]

3 голосов
/ 13 сентября 2011

Только вам нужно создать новый экземпляр формы и установить значения элементов управления.

проверьте этот код

Var
  AForm : ChildForm;
begin
  AForm:= new ChildForm;
  AForm.textBox1.Text:='Foo';  //this control can be accessed here  because the Modifiers property was set to public. 


  AForm.Show;
end;

Кстати, помните, если вы хотите изменить или получить доступ к элементам управления другой формы, вы должны установить свойство Modifiers элемента управления для доступа к public.

1 голос
/ 13 сентября 2011

Создайте форму следующим образом:

form := new MyForm();

Предполагая, что в MyForm реализован метод для обновления значений, вызовите его:

form.Update();//may need to pass parameters here

Показать форму обычным способом:

form.ShowDialog();
0 голосов
/ 13 сентября 2011

Из MSDN:

Form.Load
Происходит до того, как форма отображается в первый раз.

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

Но на самом деле, вероятно, лучше использовать привязку данных на элементах управления, чтобы они автоматически отражали текущие значения, которые вы хотите, чтобы они отображали, и вам не нужно писать какой-либо клейкий код, переносящий данные на элементы управления (и считывающий их).

...