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

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

буфер обмена


batya-x ©   (2008-07-16 23:41:00) 

как средствами winapi поместить текст в буфер обмена
(слишком уж Clipbrd.pas большой)


v   (2008-07-18 16:04:00) [1]

> если по уму писать, то получится еще один VCL.

Ну тип того ;-) Или просто своя библиотека. В конце концов, если стардартные средства не позволяют что-то делать (или делают через пень-колоду) - по-любому нужно писАть свой код; а по мере разрастания и возникновения дубляжа - вычленять общие куски в свои библиотеки... А с VCL, кстати, слишком жестко связываться плохо - перенос на другие версии дельфей затруднится (гемор может быть еще тот). А API - оно всегда API ;-)


DVM   (2008-07-18 15:45:00) [2]


> Эт смотря как писать ;-)

если по уму писать, то получится еще один VCL.


v   (2008-07-18 15:21:00) [3]

> DVM

Эт смотря как писать ;-) VCL ведь тоже API пользуется! Если что-то используется по многу раз - это повод сделать функцию и потом ею пользоваться из разных мест. А если каждый раз писать код под сиюминутные цели не думая в комплексе - тут и VCL не спасет... Иногда получается даже хуже :-)


DVM   (2008-07-18 15:09:00) [4]


> batya-x

Кстати, для любителей писать на чиста АПИ. Это вначале, пока программа маленькая и простая, размер ее исполняемого файла значительно меньше, чем программы писанной на VCL. Но по мере ее усложнения она будет все больше и больше догонять по размеру программу с использованием VCL. А может и перегнать в какой то момент. А все по тому, что код чиста на АПИ как правило страдает от избыточности. Т.е одни и те же фрагменты встречаются в нем по многу раз. Одни и те же обработчики событий одни и те же функции создания окна и т.д.


Renegat   (2008-07-17 21:55:00) [5]

Все переходим на ASM! Аминь. %)

А по сабжу:

Сначала делаем вызов OpenClipboardс парамом хендла главного окна. Так мы типа регистрируемся, что мы-де намылились в него что-то записать. Далее - вызываем EmptyClipboard. А то вдруг там уже до нас что-то было? А то иначе хендлы на бывшие там до нас данные, согласно MSDN, не потрутся, и возникнет mem-leak. Затем, как правильно заметил г-н > [1] Германн ©   (17.07.08 00:57), вызываем SetClipboardData. И не забываем после всего этого клипборд закрыть: CloseClipboard.


DVM   (2008-07-17 21:21:00) [6]


> слишком уж Clipbrd.pas большой

Windows.pas еще больше


Германн   (2008-07-17 00:57:00) [7]

SetClipboardData


Наверх

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