Текущий архив: 2006.10.15;
Скачать: CL | DM;
ВнизКак опросить не существующие контролы? Найти похожие ветки
← →
vodvorezlaya (2006-09-20 15:30) [40]
> Наиль ©
Создаю:
MyList:=TObjectList.Create;
MyList.Add(TEdit.Create(nil));
MyList.Add(TEdit.Create(nil));
MyList.Add(TComboBox.Create(nil));
но в моём случае желательно было-бы создавать шаблон компонента,
но не получается его потом сделать Create паскаль его не видит.
Можно и сами компоненты.
← →
Virgo_Style © (2006-09-20 15:35) [41]vodvorezlaya (20.09.06 15:30) [40]
стало быть, все созданное находится в MyList
← →
Сергей М. © (2006-09-20 15:41) [42]
> не получается его потом сделать Create паскаль его не видит
Что, прямо так и и говрит, мол, не вижу и все тут ?)
← →
Наиль © (2006-09-20 15:47) [43]
TEdit(MyList[0]).Text:="Привет";
TComboBox(MyList[2]).Text:="Пока";
← →
vodvorezlaya (2006-09-20 16:33) [44]
> Что, прямо так и и говрит, мол, не вижу и все тут ?)
Нет, я перефразировал с англиканского:
[Error] Unit1.pas(60): Undeclared identifier: "TPanelTemplate"
[Pascal Error] Unit1.pas(1): Unable to invoke Code Completion due to errors in source code
Но вопрос остаётся открытым. Как его(шаблон) create?
> TEdit(MyList[0]).Text:="Привет";
> TComboBox(MyList[2]).Text:="Пока";
Спасибо.Работает.
А как узнать их колличество?
И на что влияет nil в строчке: MyList.Add(TEdit.Create(nil))?
← →
Virgo_Style © (2006-09-20 16:39) [45]vodvorezlaya (20.09.06 16:33) [44]
А как узнать их колличество?
Сколько ТЫ создал - столько и есть.
← →
Сергей М. © (2006-09-20 16:48) [46]
> vodvorezlaya (20.09.06 16:33) [44]
> Undeclared identifier: "TPanelTemplate"
> я перефразировал с англиканского
Спасибо за одолжение)
Ну и ?
Паскаль-то знаем ?
Про USES знаем ?
← →
vodvorezlaya (2006-09-21 08:14) [47]
> Virgo_Style ©
> Сколько ТЫ создал - столько и есть.
Ну я то может и знаю сколько, а прога не знает сколько я ей создам.
Есть некая процедура, которую нужно выполнять столько - сколько этих компонентов (набор Panel а на ней 2 Edit и 1 ComboBox) создаст пользователь (который не знает что такое D7).
Т.е. кроме создания компонентов нужно ещё выполнять процедуру опроса каждого из них.
> Про USES знаем ?
Я не знаю какой модуль отвечает за шаблоны компонентов.
← →
Наиль © (2006-09-21 09:07) [48]
> А как узнать их колличество?MyList.Count
> И на что влияет nil в строчке: MyList.Add(TEdit.Create(nil))?
TEdit.Create(self) - Edit уничтожается формой (если self - форма) при уничтожении формы.
TEdit.Create(Panel1) - Edit уничтожается при уничтожении панели.
TEdit.Create(nil) - уничтожание - обязаность программиста.
MyList.OwnsObjects:=true; - объекты будут уничтожатся автоматически при удалении их из списка MyList, и как следствие, при уничтожении самого MyList.
← →
Наиль © (2006-09-21 09:10) [49]
> нужно ещё выполнять процедуру опроса каждого из них
как-такой "опрос"?
← →
Сергей М. © (2006-09-21 09:19) [50]
> не знаю какой модуль отвечает за шаблоны компонентов
Никакой.
Инф-ция о существующих шаблонах хранится в файле (%DELPHI)\bin\delphi.dct.
Делфи использует этот файл исключительно в дизайн-тайм.
Тот самый идентификатор TPanelTemplate не является идентификатором класса, поэтому строчка TPanelTemplate.Create(..) бессмысленна.
Для создания группы контролов в ран-тайм "по шаблону" следует использовать фреймы.
← →
vodvorezlaya (2006-09-21 10:15) [51]
> > нужно ещё выполнять процедуру опроса каждого из них
>
> как-такой "опрос"?
Есть процедура, входные параметры которой задаются динамически созданными компонентами(набором на TPanel).
Вот сколько таких TPanel(c Edit,Edit,ComboBox) создадим столько нужно и процедуру выполнять, с той последовательностью входных параметров скакой мы создавали их.
Огромное всем спасибо.
Пока пошёл это пробовать.
← →
vodvorezlaya (2006-09-22 08:05) [52]
> Есть процедура, входные параметры которой задаются динамически
> созданными компонентами(набором на TPanel).
>
> Вот сколько таких TPanel(c Edit,Edit,ComboBox) создадим
> столько нужно и процедуру выполнять, с той последовательностью
> входных параметров скакой мы создавали их.
Как прописать и где вызов этой процедуры?
← →
Наиль © (2006-09-22 08:18) [53]
> Как прописать и где вызов этой процедуры?
Откуда нам знать. В [51] ни слова не сказано, что за процедура такая.
← →
vodvorezlaya (2006-09-22 08:32) [54]
> Откуда нам знать. В [51] ни слова не сказано, что за процедура
> такая.
Процедура связи по COM порту, протокол RK-512.
В ней 4 параметра.procedure READ_RK512(temp: array of byte; c: integer; var data: array of byte;count: integer);
Нужно узнать сколько создали элементов(допустим TEdit"ов) и ровно столько раз выполнять эту процедуру, а входным параметром будет строка TEdit"а. (Это всё нужно делать во время работы программы без компилятора).
Спасибо.
← →
vodvorezlaya (2006-09-22 08:47) [55]Да в принципе любая процедура.
Procedure Rulezz;
← →
Ketmar © (2006-09-22 08:53) [56]offtop:
sql не знаем. Delphi не знаем. а программу, судя по всему, пишем за деньги (иначе зачем порт пинать?). ужос. УВЧ.
← →
Сергей М. © (2006-09-22 08:54) [57]
> vodvorezlaya (22.09.06 08:47) [55]
Если ссылки на созданные тобой контролы фигурируют в некоем списке (неважно каком, будь он хоть TObjectList, хоть Controls, хоть Components), то всегда есть возможность получить кол-во элементов этого списка, чтобы использовать его в кач-ве верхней границы цикла:
for i := 0 to MyObjectList.Count - 1 do
Rulezz;
← →
Ketmar © (2006-09-22 08:57) [58]>[57] Сергей М.(c) 22-Sep-XLI A.S., 08:54
>Если ссылки на созданные тобой контролы
...
а по-моему -- метла. или это я просто зол от того, что у меня вся DNA-таки кривая?
← →
Наиль © (2006-09-22 11:34) [59]
> что у меня вся DNA-таки кривая
Что за DNA?
> а по-моему -- метла
А по моему метла - это слишком мягко.
А с другой стороны. У человека хватает терпения ждать ответа.
Так почему бы не дать ему (потом догнать и ещё раз дать:-) несколько уроков правильной поставки вопроса. Уж это ему точно в жизни пригодиться.
← →
Игорь Шевченко © (2006-09-22 11:41) [60]Ketmar © (22.09.06 08:57) [58]
Дату при цитировании приведи в нормальный вид, плз.
← →
vodvorezlaya (2006-09-22 16:28) [61]
> offtop:
offtop:
Ну если кому-то интересно, то в данный момент у меня цель изучить Delphi, SQL и многое другое.
Работаю программером на окладе, где написание программ не обязательно но приветствуется.
То что узнаю из опыта передаю другим в форумах.
← →
Ketmar © (2006-09-22 18:24) [62]>[60] Игорь Шевченко(c) 22-Sep-2006, 11:41
>Дату при цитировании приведи в нормальный вид,
>плз.
не вопрос. так нормально? или всё цифрами сделать?
← →
vodvorezlaya (2006-09-25 08:03) [63]
> for i := 0 to MyObjectList.Count - 1 do
> Rulezz;
Ну вроде то.
А вообще можно было бы компонент написать, который имел-бы метод Rulezz;
Всем вери сенькс.
← →
Плохиш © (2006-09-25 10:53) [64]
> vodvorezlaya (22.09.06 16:28) [61]
> Ну если кому-то интересно, то в данный момент у меня цель
> изучить Delphi, SQL и многое другое.
Книжки читать не пробовал?
> То что узнаю из опыта передаю другим в форумах.
Я плякал, а вы говорите "Архангельский" :-))
Страницы: 1 2 вся ветка
Текущий архив: 2006.10.15;
Скачать: CL | DM;
Память: 0.57 MB
Время: 0.04 c