|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.07.2009, 18:01 | #1 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
Обращение к динамически созданным компонентам.
Доброго времени суток !
Хочу спросить у Вас совета. Мне нужно динамически создавать TTabSheet и TSynMemo во время работы программы. как-то так : Код:
Если создать допустим tabsheet1 tabsheet2 tabsheet3 потом tabsheet2 разрушить , останутся tabsheet1 tabsheet3 , и при "открытии" нового документа ( будет создаватся tabsheet3 . ошибка). Каким образом лучше давать имена ? как лучше решить эту проблему? Так - же мне нужно будет по Caption TTabsheet обращатся к TSynMemo. Смотрел http://programmersforum.ru/showthread.php?p=279991 . Спасибо за советы ! |
13.07.2009, 18:23 | #2 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
Имхо для этого нужно использовать массив записей. Аля
Код:
Код:
Тем более в запись можно внести доп. свойства, если нужно. и тд...
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
13.07.2009, 18:28 | #3 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
Тогда уж динамический массив. И не недо:
Код:
Последний раз редактировалось Evgeniy26; 13.07.2009 в 18:43. |
13.07.2009, 18:32 | #4 | |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
Цитата:
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
|
13.07.2009, 18:50 | #5 | |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
Цитата:
Но очень не хотелось использовать нечто подобное "удалению" в Вашем варианте. Мне кажется что это будет "влиять" на производительность . На счёт доп свойств - это хорошо , даже полезно в конкретном случае ... Сделал с TabsCount; Добавил свойство Caption:string; Такое-же как и у TTabSheet (имя файла); Теперь чтобы обратится к TSynMemo я предполагаю нужно организовать поиск по этому свойсту cреди массива? И получим # TMyTab ? Последний раз редактировалось Lime; 13.07.2009 в 18:56. |
|
13.07.2009, 18:52 | #6 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
Если удалять, используй TStringList удобней будет.
Последний раз редактировалось Evgeniy26; 13.07.2009 в 18:54. |
13.07.2009, 18:52 | #7 | |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
Цитата:
Кстати даже данные должны идти по порядку а не кашей, посему утечек быть не должно по определению обычного массива
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
|
13.07.2009, 20:13 | #8 | |
Форумчанин
Регистрация: 06.01.2009
Сообщений: 340
|
Чем не устраивает стандартный TObjectList?
Цитата:
Это же насколько интенсивно нужно изменять его размер, чтобы появились проблемы с памятью? Сколько использовал, проблем никогда не возникало. К тому же, в данном случае, компонент будет максимум несколько десятков, и проблем точно не возникнет. + TObjectList уже содержит реализацию, вставок, удалений и прочих функций, что, само собой, удобно.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник". |
|
13.07.2009, 20:32 | #9 | |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
Цитата:
С остальным что было написано выше я уже имел опыт , а с этим нет. Осталось ещё несколько штрихов Вот с "закрытием" документа не получается ... Код:
Хранить отдельный int не уменьшая его , тк при "удалении" TTabSheet & TSynMemo уменьшается TabsCount , и заново создаётся обьект с таким-же номером , хоть и относится к другому элементу Tabs[] . Последний раз редактировалось Lime; 13.07.2009 в 20:49. |
|
13.07.2009, 21:02 | #10 | |
Форумчанин
Регистрация: 06.01.2009
Сообщений: 340
|
Цитата:
Весь функционал можно посмотреть в исходниках (TObjectList в модули Contnrs и его предок TList в модуле Classes) Вот пример: Код:
Т.к. обычно требуется использовать некоторый свой тип, то каждый раз делать приведение типов неудобно. Код:
P.S. А перед удалением записи объекты уничтожаешь? Код:
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник". Последний раз редактировалось Daramant; 13.07.2009 в 21:13. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
доступ к виз компонентам созданным в рантайме | amandra | Общие вопросы Delphi | 1 | 09.05.2009 22:17 |
Подробная литература по всем компонентам | dimonbest | Свободное общение | 10 | 21.11.2008 16:51 |
Присвоение процедур компонентам | N!ckeL | Компоненты Delphi | 4 | 26.04.2008 18:22 |
Обращение к компонентам из цикла | satana | Общие вопросы Delphi | 4 | 16.07.2007 12:16 |