![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
буфер обмена
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