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

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

Работа с буфером [D7, WinXP]


ILUT ©   (2007-06-06 16:16:00) 

Как сохранить PageControl со всеми дочерними компонентами, в том числе и те, которые расположены на TabSheet, в буфер обмена, а затем вставить из него.
Я делал это следующим образом:
копирование:
ClipBoard.SetComponent((WorkSpace.CompName as TControl))
вставка:
ClipBoard.GetComponent(self,CompName as TControl)
Он вставляет, но все компоненты расположеные на вкладках уничтожаются.
Помогите пожалуйста разрешить эту проблемку.
Заранее спасибо.


ILUT   (2007-06-09 22:24:00) [1]


> А чем этот не угодил

Не заходил я по ссылке ))))
Просто это у меня дипломное задание, ток не совсем то что там. Ладно, это усе фдлуд.


ILUT   (2007-06-09 19:37:00) [2]


> Новый велосипед ?)


А как ты догадался, что я собираю новый BMX?


> А чем этот не угодил


В программе количество создаваемых компонентов может быть очень большим, ограничений нет, тока ресурсами ПК )).
Также собираюсь сделать историю.
И если я правильно понял идею, то придется менять алгоритм программы довольно сильно.
Но мож я не правильно понял


Сергей М.   (2007-06-09 11:51:00) [3]


> я делаю конструктор формы


Новый велосипед ?)

А чем этот не угодил

http://www.dream-com.com/designer.html

?


ILUT   (2007-06-09 11:29:00) [4]

Да я делаю конструктор формы и это не подойдет.


Kolan   (2007-06-08 16:49:00) [5]

> Ну что неужели ни у кого из мастеров нет никаких идей

Есть — не соранять TPageControl.
Используй Model-View-Controller и сохроняй Model. То есть создай необходимые объекты предметной области. Отображай их пользователю с помощью TPageControle и всего остального. А сохраняй сами объекты предметной области, а не их отображение.

Зы
Может я не прав, может ты делаешь дизайнер форм например… хз…


Сергей М.   (2007-06-08 08:56:00) [6]


> В методе SetComponent задается только один компонент, который
> копируется в буфер обмена.


Копируется все дерево компонентов, корнем которого является копируемый компонент.


> при использовании GetComponent он естественно будет вставлять
> тока один компонент.


Аналогично при вставке - вставляется все скопированное в буфер обмена дерево компонентов.

Убедись сам:

1. Брось на форму панель, на панель брось кнопку, выдели панель, скопируй ее в буфер обмена.

2. Открой просмотрщик буфера обмена, убедись что в буфере присутствует и панель и кнопка в ее "составе".

3. Выдели форму, выполни вставку из буфера обмена, убедись что на форме при этом была создана копия панели вместе с копией кнопки на ней.


ILUT   (2007-06-07 18:01:00) [7]

В методе SetComponent задается только один компонент, который копируется в буфер обмена. И при использовании GetComponent он естественно будет вставлять тока один компонент. И я не знаю как сделать так чтобы копировались сразу все компоненты, и поэтому прошу помощи.


Сергей М.   (2007-06-07 13:50:00) [8]

Идея одна - искать ошибки в своемкоде, ибо в коде метода TClipboard.GetComponent нет ничего похожего на "уничтожение".


ILUT   (2007-06-07 11:43:00) [9]

Ну что неужели ни у кого из мастеров нет никаких идей!?!?!?!?!?!?


Наверх

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