| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Клонирование вкладок |
| Автор: artsb 8.4.2009, 16:09 |
| Всем привет. Мне нужно добавлять в PageControl вкладки (TabSheet) аналогичные первой (т.е., те же компоненты, то же их расположение и т.д., только нужно, чтобы они были в исходном состоянии, например, ListBox без итемов, Memo без строк и т.д.). Есть идея сохранить на этапе разработки вкладку в файл, и потом просто подгружать её оттуда. Но может есть вариант получше... |
| Автор: Klin 9.4.2009, 06:55 |
| Название темы немного не отражает сути ситуации.. ну да ладно. Думаю вы знаете, что компоненты можно создавать динамически. Достаточно хранить информации о классе, расположению и размерах. Думаю в данной ситуации больше информации и не нужно... а где ее хранить... все зависит от задачи, если вам нужно просто создавать все новые одинаковые вкладки - то это вообще фигня вопрос, а если... стоп, впрочем, другой ситуации я не вижу… кроме формирования вкладок из каких-то условий и дальнейшего их использования. Так, т.е. получается, что программа будет сохранять настройки отображения для каждой вкладки. В этом случае, вы можете хранить данные в реестре или в текстовом файле, думаю здесь речь о безопасности, не идет. |
| Автор: xvr 9.4.2009, 13:18 |
| Оформите все ваши контролы в виде Frame, и вставляйте его целиком в каждый новый TabSheet |
| Автор: artsb 9.4.2009, 14:46 | ||||
| Klin, вы не совсем поняли видать. Вот как я хочу сделать: Сначала сохранить в файл шаблон вкладки. Приблизительно так:
А потом добавлять вкладки. Приблизительно так:
Код писал прямо тут, поэтому могут быть ошибки. Также не проверял его на работоспособность. Всё это чисто теоритически. Так вот, я и думаю, может есть вариант получше... xvr, тоже вариант. Спасибо. |
| Автор: xvr 9.4.2009, 17:52 |
| Есть большие сомнения в реализуемости такого. Куда будут читаться компоненты из потока? В смысле в какие переменные - при загрузке основной формы они записывались в поля самой формы, и теперь они захотят куда то записаться, но некуда - поля уже заняты Думаю, что будут и другие проблемы Хотя чтение потока сделать можно, я это делал (правда еще на 3м Борланде), но это весьма нетривиальная задача |
| Автор: artsb 9.4.2009, 23:01 |
| xvr, попытаюсь ещё подумать над своим вариантом |
| Автор: THandle 10.4.2009, 09:33 |
| artsb, если вдруг собирешься записывать компоненты в некий поток, то не пиши их в ручную, нет. Гораздо удобнее использовать классы TReader/Twriter, с которыми жизнь становится легкой и веселой, да и к тому же один добрый человек(йа), написал на их тему маленькую статейку, которую он(добрый человек), почему то в последнее время очень сильно рекламирует, как впрочем и предыдущие свои труды... http://forum.vingrad.ru/forum/topic-250409.html ЗЫ: оффтопик... а не перевести ли мне свои статьи на Builder? |
| Автор: artsb 10.4.2009, 13:31 |
| THandle, спасибо за статью. Пошёл читать... |