![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
повторный запуск MDIChild и передача параметров [D7, XP]
Pavlov © (2009-06-11 09:15:00)Подскажите пожалуйста, как сделать:
если в приложении форма с formStyle = MDIChild уже запущена (определяем по X_ID), то при повторном запуске с новыми параметрами MyForm, Z,R не создавать ее заново, а производить изменения уже в ней.
Проверку запущена ли форма я осуществляю спомощью функции FoundFormAndShow.
if FoundFormAndShow(X_ID, TChildForm)<>nil then
AddParam (X_ID,MyForm:TForm, Z, R) else CreateMyForm (X_ID,MyForm:TForm, Z, R)
FoundFormAndShow(X_ID, TChildForm)<>nil - если форма найдена, тоAddParam (X_ID,MyForm:TForm, Z, R) .
CreateMyForm (X_ID,MyForm:TForm, Z, R)- создать форму.
Собственно говоря, проблема как организовать функцию AddParam (X_ID,Y, Z, R) . Я делаю так:
procedure AddParam (X_ID;MyForm:TForm; Z; R) ;
begin
with MyForm do
begin
...
end;
end;
Но так при компиляции выскакивает ошибка Undeclared identifier любого компонента на этой форме.
И. Павел (2009-06-11 09:52:00) [1]Хотя тут везде Undeclared identifier может выскочить. В паскале нельзя объявлять переменные где попало.
Pavlov (2009-06-11 09:52:00) [2]Спасибо вам за ответ, то что надо!
И. Павел (2009-06-11 09:26:00) [3]
> без полиморфизма
без приведения типов
И. Павел (2009-06-11 09:23:00) [4]
> выскакивает ошибка Undeclared identifier
with MyForm as <Тип формы, на которой расположены нужные компоненты>...
А если дочерняя форма может быть только одного типа, то можно и без полиморфизма, в заголовке процедуры AddParam сразу указать:
AddParam(... MyForm:<Тип формы, на которой расположены нужные компоненты>...)