![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Create(nil)
Aragorn © (2007-06-26 11:31:00)Где искать объекты созданные с nil владельцем?
Плохиш (2007-06-26 13:19:00) [1]
> Игорь Шевченко © (26.06.07 13:14) [34]
> Плохиш © (26.06.07 13:06) [33]
>
>
> > попытка внедрения достижений социализма в программирование.
> Ты не радуйся, скоро и до Германии доберемся
Это и расстраивает :-(
Aragorn (2007-06-26 13:19:00) [2]
> Плохиш © (26.06.07 13:06) [33]
Наглядно :-) Лучше хранить самому.
> Игорь Шевченко © (26.06.07 13:14) [34]
То ли я вас не понял, то ли вы меня...
Как я могу в дизайн тайм это создавать, если я не знаю количества компонентов, это определяет пользователь.
Речь именно о ран тайм.
Игорь Шевченко (2007-06-26 13:14:00) [3]Плохиш © (26.06.07 13:06) [33]
> попытка внедрения достижений социализма в программирование.
> ..
Ты не радуйся, скоро и до Германии доберемся ;)
Aragorn © (26.06.07 12:56) [27]
> Допустим создаются у меня на DataModule связки DataSet-DataSouce
> в неизвестном количестве. Я с ними работаю как TDataSet(dm.
> FindComponent).BlahBlah
> Имеет смысл создавать Create(nil) и всё хранить в TObjectList.
Нет, не имеет. Зачем создавать руками то, что можно создать в design-time и преспокойно использовать ?
> Так удобнее, правильнее, быстрее?
Неудобнее, неправильнее и медленнее.
Плохиш (2007-06-26 13:06:00) [4]
> Aragorn © (26.06.07 12:56) [27]
> Допустим создаются у меня на DataModule связки DataSet-DataSouce
> в неизвестном количестве. Я с ними работаю как TDataSet(dm.
> FindComponent).BlahBlah
Прикольная технология, применим к очереди :-)
Перед кабинетом врача висит ящичек с кнопочкой, при нажатии на которую, из ящичка вылазит бумажка с номером очереди, далее человек содится и ждёт, когда вызовут его номер очереди. Вы предлагаете, что бы человек, после получения очереди, подошёл к секретурке/вахтёрше/уборщице, зарегстрировался у неё со всеми паспортными данными и когда его очередь подойдёт, секретурка/... должна пройтись по всем людям в наличии и потребовать у них паспортные данные, после сверки с записанными у неё, решить тот ли это человек или нет.
Психушкой попахивает... попытка внедрения достижений социализма в программирование...
horse (2007-06-26 13:04:00) [5]
> Я тащусь, уважаемая редакция :-)) Скажите, а Owner вы у
> кого берёте?
:) Ну я же знаю где я его создавал.
> Какой класс, говори конкретно.E5тно.
[27]
Loginov Dmitry (2007-06-26 13:01:00) [6]Естественно, если создаешь динамически, то не стоит назначать владельцем TDataModule. Загоняй в список, имен при этом компонентам можно не назначать.
Это, само собой, будет работать быстрее, чем поиск через FindComponent().
Anatoly Podgoretsky (2007-06-26 13:01:00) [7]> Aragorn (26.06.2007 12:23:19) [19]
Какой класс, говори конкретно.E5тно.
Anatoly Podgoretsky (2007-06-26 13:00:00) [8]> Aragorn (26.06.2007 12:09:13) [13]
Это общие слова, говори конкретно.
Плохиш (2007-06-26 12:57:00) [9]
> Я могу рулить временем жизни компонентов и с Owner.FindComponent('name').Free
Я тащусь, уважаемая редакция :-)) Скажите, а Owner вы у кого берёте?
Aragorn (2007-06-26 12:56:00) [10]
> см. [1] :)
см. [3] :)
Допустим создаются у меня на DataModule связки DataSet-DataSouce в неизвестном количестве. Я с ними работаю как TDataSet(dm.FindComponent).BlahBlah
Имеет смысл создавать Create(nil) и всё хранить в TObjectList. Так удобнее, правильнее, быстрее?
Ega23 (2007-06-26 12:49:00) [11]
> еще лучше наверное TObjectList с флажком OwnsObjects = true.
см. [1] :)
StriderMan (2007-06-26 12:41:00) [12]
> homm © (26.06.07 12:38) [23]
> TList
еще лучше наверное TObjectList с флажком OwnsObjects = true.
StriderMan (2007-06-26 12:40:00) [13]
> Ну и как это подходит под то, что мне например, через пол
> дня работы программы после создания компонента надо этот
> компонент найти и поработать с ним?
а ты их в некоем общем пуле собираешься хранить?
создавай их в том классе, в котором они используются, и как написали выше, храни там прямую ссылку
> ЮЮ © (26.06.07 12:33) [21]
Или ты заранее не знаешь ни классов ни количества компонентов?
Если так, то имеет смысль завести некий компонент-хранитель для таких вещей. Хранить на него ссылку и указывать его Owner'ом. Для этого вобщем-то и придумали TDataModule.
но искать компоненты по ИМЕНАМ не есть правильно. Это скорее вспомогательное средство.
homm (2007-06-26 12:38:00) [14]> я не знаю сколько будет этих компонентов. Столько сколько
> захочет пользователь.
TList
Aragorn (2007-06-26 12:37:00) [15]
> А что мешаеть запомнить прямую ссылку, т.е. сделать как
> Delphi, только описание поместить не в published секции?
>
я не знаю сколько будет этих компонентов. Столько сколько захочет пользователь.
ЮЮ (2007-06-26 12:33:00) [16]> Да, я знаю его имя или хотя бы класс. Я его ищу у владельца.
А что мешаеть запомнить прямую ссылку, т.е. сделать как Delphi, только описание поместить не в published секции?
TfrmMain = class(TForm)
private
FRunTimeCreatedButton: TButton;
iXT (2007-06-26 12:30:00) [17]А чего вообще от него требуется?
Aragorn (2007-06-26 12:23:00) [18]
> cmp := TMyComponent.Create(nil);
> try
> тут делаешь с компонентом все что тебе нужно
> finally
> cmp.Free;
> end;
Ну и как это подходит под то, что мне например, через пол дня работы программы после создания компонента надо этот компонент найти и поработать с ним?
Да, я знаю его имя или хотя бы класс. Я его ищу у владельца.
Правильный Вася (2007-06-26 12:17:00) [19]
> все визульные компоненты
список компонентов визуальными далеко не ограничивается, скорее, наоборот - невизуальных поболе будет
StriderMan (2007-06-26 12:16:00) [20]
> все визульные компоненты кроме owner-а должны ещё иметь
> parent-а
Owner'а могут и не иметь.