![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дополнительные параметры [D7, Win2k]
zdn © (2005-02-24 13:44:00)У меня в проектк все формы, кроме главной, автоматом не создаются.
Для открытия форм используеться следующая процедура:
procedure ShowFormF(frm:TFormClass;InsEdit:integer);
//InsEdit - режим открытия формы
var f:TForm;
begin
f:=frm.Create(Application);
with f do
try
Tag:=InsEdit;
ShowModal;
finally
free
end
end;
Возникла необходимость, при создании формы, передавать массив дополнительных параметров.
Подскажите, пожалуйста, как это можно реализовать?
Заранее благодарен!!!
zdn (2005-02-24 15:08:00) [1]
> DiamondShark © (24.02.05 14:59) [10]
Это идея спасибки. Можно просто сделать еще одну процедуру
которая будет открывать форму с параметрами.
Всем спасибо, чо-то сам до этого не додумался.
Хорошо все же общение с умными людьми.
Инструктор (2005-02-24 15:03:00) [2]> [10] DiamondShark © (24.02.05 14:59)
Это верно - я и не предлагаю так делать. Но замечание такого вида -
> [5] zdn (24.02.05 14:36)
как обойти? Безусловно лучше огород не городить.
DiamondShark (2005-02-24 14:59:00) [3]Вы сейчас насоветуете.
Потом вместе будете AV ловить после передачи ссылок на локальные массивы.
Самый прямой вариант -- сделать общего предка для форм и написать конструктор с параметрами.
Инструктор (2005-02-24 14:51:00) [4]> [8] zdn (24.02.05 14:47)
В таг можно занести ССЫЛКУ на массив или чего-там.
zdn (2005-02-24 14:47:00) [5]Уточняю вопрос.
Передается массив из несколких значений. Можно ли в таг занести несколко значений, по-моему низя или я чо-то не понимаю!!!
Arm79 (2005-02-24 14:40:00) [6]zdn (24.02.05 14:36) [5]
Не не пройдет, дело в том что массив стринговый,
т.е. значения в нем будут именно стриногвые, а не интежер.
В tag записывается адресмассива. Совершенно неважен тип его элементов.
Инструктор (2005-02-24 14:38:00) [7]> [5] zdn (24.02.05 14:36)
Опа. А при чем тут это?
zdn (2005-02-24 14:36:00) [8]Не не пройдет, дело в том что массив стринговый,
т.е. значения в нем будут именно стриногвые, а не интежер.
Чапаев (2005-02-24 14:27:00) [9]Tag:=Integer(@MyArray[0]); -- ну вот что-то вроде этого...
zdn (2005-02-24 14:26:00) [10]Спасибки, буду пробовать
MU (2005-02-24 14:21:00) [11]если все ваши формы наследники от одной (не TForm!),
то добавьте в базовую форму свойства или переопределите конструктор.
а так... без глобальных переменных не обойтись...
...
var Params : TMyParams;
var f:TForm;
begin
Params := ...;
f:=frm.Create(Application);
Params := ...;
with f do
try
Tag:=InsEdit;
ShowModal;
finally
free
end
end
zdn (2005-02-24 14:09:00) [12]Никто, никогда, такого не делал?