Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Create(nil)


Страницы:   1 2

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'а могут и не иметь.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо