![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]()
Доброго времени суток !
Хочу спросить у Вас совета. Мне нужно динамически создавать TTabSheet и TSynMemo во время работы программы. как-то так : Код:
Если создать допустим tabsheet1 tabsheet2 tabsheet3 потом tabsheet2 разрушить , останутся tabsheet1 tabsheet3 , и при "открытии" нового документа ( будет создаватся tabsheet3 . ошибка). Каким образом лучше давать имена ? как лучше решить эту проблему? Так - же мне нужно будет по Caption TTabsheet обращатся к TSynMemo. Смотрел http://programmersforum.ru/showthread.php?p=279991 . Спасибо за советы ! |
![]() |
![]() |
![]() |
#2 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
![]()
Имхо для этого нужно использовать массив записей. Аля
Код:
Код:
Тем более в запись можно внести доп. свойства, если нужно. и тд...
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
![]()
Тогда уж динамический массив. И не недо:
Код:
Последний раз редактировалось Evgeniy26; 13.07.2009 в 18:43. |
![]() |
![]() |
![]() |
#4 | |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
![]() Цитата:
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]() Цитата:
Но очень не хотелось использовать нечто подобное "удалению" в Вашем варианте. Мне кажется что это будет "влиять" на производительность . На счёт доп свойств - это хорошо , даже полезно в конкретном случае ... Сделал с TabsCount; Добавил свойство Caption:string; Такое-же как и у TTabSheet (имя файла); Теперь чтобы обратится к TSynMemo я предполагаю нужно организовать поиск по этому свойсту cреди массива? И получим # TMyTab ? Последний раз редактировалось Lime; 13.07.2009 в 18:56. |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
![]()
Если удалять, используй TStringList удобней будет.
Последний раз редактировалось Evgeniy26; 13.07.2009 в 18:54. |
![]() |
![]() |
![]() |
#7 | |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
![]() Цитата:
Кстати даже данные должны идти по порядку а не кашей, посему утечек быть не должно по определению обычного массива ![]()
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
|
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 06.01.2009
Сообщений: 340
|
![]()
Чем не устраивает стандартный TObjectList?
Цитата:
Это же насколько интенсивно нужно изменять его размер, чтобы появились проблемы с памятью? Сколько использовал, проблем никогда не возникало. К тому же, в данном случае, компонент будет максимум несколько десятков, и проблем точно не возникнет. + TObjectList уже содержит реализацию, вставок, удалений и прочих функций, что, само собой, удобно.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник". |
|
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]() Цитата:
С остальным что было написано выше я уже имел опыт , а с этим нет. Осталось ещё несколько штрихов ![]() Вот с "закрытием" документа не получается ... Код:
Хранить отдельный int не уменьшая его , тк при "удалении" TTabSheet & TSynMemo уменьшается TabsCount , и заново создаётся обьект с таким-же номером , хоть и относится к другому элементу Tabs[] . Последний раз редактировалось Lime; 13.07.2009 в 20:49. |
|
![]() |
![]() |
![]() |
#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 |