Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Клонирование вкладок, TabSheet 
:(
    Опции темы
artsb
Дата 8.4.2009, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Всем привет.

Мне нужно добавлять в PageControl вкладки (TabSheet) аналогичные первой (т.е., те же компоненты, то же их расположение и т.д., только нужно, чтобы они были в исходном состоянии, например, ListBox без итемов, Memo без строк и т.д.).
Есть идея сохранить на этапе разработки вкладку в файл, и потом просто подгружать её оттуда. Но может есть вариант получше...


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Klin
Дата 9.4.2009, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Название темы немного не отражает сути ситуации.. ну да ладно. Думаю вы знаете, что компоненты можно создавать динамически. Достаточно хранить информации о классе, расположению и размерах. Думаю в данной ситуации больше информации и не нужно... а где ее хранить... все зависит от задачи, если вам нужно просто создавать все новые одинаковые вкладки - то это вообще фигня вопрос, а если... стоп, впрочем, другой ситуации я не вижу… кроме формирования вкладок из каких-то условий и дальнейшего их использования. Так, т.е. получается, что программа будет сохранять настройки отображения для каждой вкладки. В этом случае, вы можете хранить данные в реестре или в текстовом файле, думаю здесь речь о безопасности, не идет.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
xvr
Дата 9.4.2009, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Оформите все ваши контролы в виде Frame, и вставляйте его целиком в каждый новый TabSheet

PM MAIL   Вверх
artsb
Дата 9.4.2009, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Klin, вы не совсем поняли видать.
Вот как я хочу сделать:
Сначала сохранить в файл шаблон вкладки. Приблизительно так:
Код

TFileStream* fsTab = new TFileStream("mytabsheet.dtd", fmCreate);
fsTab->WriteComponent(TabSheet1);
fsTab->Free();

А потом добавлять вкладки. Приблизительно так:
Код

TFileStream* fsNewTab = new TFileStream("mytabsheet.dtd", fmOpenRead);
TTabSheet* tsNewTab = NULL;
fsNewTab->ReadComponent(tsNewTab);
tsNewTab->PageControl = PageControl1;
tsNewTab->Name = "Page" + IntToStr(i); // i - какой-нибудь счётчик
i++;
fsNewTab->Free();


Код писал прямо тут, поэтому могут быть ошибки.
Также не проверял его на работоспособность. Всё это чисто теоритически.
Так вот, я и думаю, может есть вариант получше...

xvr, тоже вариант. Спасибо.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
xvr
Дата 9.4.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Есть большие сомнения в реализуемости такого. Куда будут читаться компоненты из потока? В смысле в какие переменные - при загрузке основной формы они записывались в поля самой формы, и теперь они захотят куда то записаться, но некуда - поля уже заняты  smile Какие обработчики event'ов подставятся загруженным компонентам? Даже если он их и найдет на основной форме (что вряд ли), не факт, что их так и надо подсоединять. Как добираться к конкретным контролам, загруженным на страницу? Можно, конечно их искать по имени, но это несколько через задницу  smile 
Думаю, что будут и другие проблемы

Хотя чтение потока сделать можно, я это делал (правда еще на 3м Борланде), но это весьма нетривиальная задача  smile 
PM MAIL   Вверх
artsb
Дата 9.4.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



xvr, попытаюсь ещё подумать над своим вариантом smile Если не получится буду развивать вашу идею smile


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
THandle
Дата 10.4.2009, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 25
Всего: 372



artsb, если вдруг собирешься записывать компоненты в некий поток, то не пиши их в ручную, нет. Гораздо удобнее использовать классы TReader/Twriter, с которыми жизнь становится легкой и веселой, да и к тому же один добрый человек(йа), написал на их тему маленькую статейку, которую он(добрый человек), почему то в последнее время очень сильно рекламирует, как впрочем и предыдущие свои труды...

http://forum.vingrad.ru/forum/topic-250409.html

ЗЫ: оффтопик... а не перевести ли мне свои статьи на Builder?
PM   Вверх
artsb
Дата 10.4.2009, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



THandle, спасибо за статью. Пошёл читать...


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0626 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.