Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.59 MB
Время: 0.05 c
6-1147845759
BanderLog
2006-05-17 10:02
2006.10.15
Использование TIdSync в Indy10


2-1159279828
Fostr
2006-09-26 18:10
2006.10.15
Вставить картинку в Word из Image


2-1159263649
Olga_85
2006-09-26 13:40
2006.10.15
преобразование данных


15-1158680769
Marser
2006-09-19 19:46
2006.10.15
Читабельно или красиво - что приоритетнее?


3-1155633615
Arm79
2006-08-15 13:20
2006.10.15
Доступ к значениям в ConnectionString