Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

Как опросить не существующие контролы?   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.57 MB
Время: 0.083 c
2-1159119108
PeterBuild
2006-09-24 21:31
2006.10.15
ПРОБЛЕМа С ИНДЕКСАМИ


15-1158909880
Desdechado
2006-09-22 11:24
2006.10.15
Равноденствие, новолуние, солнечное затмение


10-1124054722
Lotus
2005-08-15 01:25
2006.10.15
The server threw an exception


15-1158552431
КаПиБаРа
2006-09-18 08:07
2006.10.15
Уровень жизни


2-1159692706
Fantasy
2006-10-01 12:51
2006.10.15
Message





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский