Обсуждение:Clip.32 - Работа c системным Clipboard-ом из РСЛ.
5 (1)
Обсуждение:Clip.32 - Работа c системным Clipboard-ом из РСЛ. ( Обсуждение примера 22.04.2004 16:45 )
0(0)Clip.d32 + Clip_t.d32 + исходники + пример использования с dtb.d32.
18.08.2004 – Переписана функция lgGetClipboardData. Теперь для Windows NT и выше содержимое буфера предварительно переводится из UniCode.
16.07.2004 – Переписана функция lgSetClipboardData. Теперь проверяется версия ОС и, если она Windows NT и выше, строка предварительно переводится в UniCode.
Модуль предназначен для работы с Clipboard-ом. Можно получить текстовое содержимое Clipboard-а, можно скопировать строку в Clipboard.
Модуль работает в 2-х и в 3-х звенке. Для работы в 3-х звенке в каталоге терминала (term.exe) должна находиться терминальная часть длм-ки: clip_t.d32. Модуль самостоятельно определяет в какой конфигурации он работает и вызывает либо локальные функции, либо терминальные.
Данные DLM не содержат объектов, поэтому не зависят от версий DLM, и будут работать с RSL любой версии.
ФУНКЦИИ
Функция: Описание: Входные параметры: Выходные параметры:
string lgGetClipboardData ( [bool OEM=true]) Функция возвращает содержимое Clipboard-а OEM – по умолчанию текст возвращается в кодировке OEM, если задать false – текст будет возвращаться в кодировке ANSI
bool lgSetClipboardData (string Text, [bool OEM=true]) Функция копирует текст в Clipboard OEM – по умолчанию текст возвращается в кодировке OEM, если задать false – текст будет возвращаться в кодировке ANSI. Возвращает true – при удаче, и false при ошибке.
Посмотреть пример
>> Ответитьсочетания клавиш ( Victor March 23.04.2004 11:23 )
0(0)/* 2 Григ - огромнейший респект!*/
macro support_Dialog(dial,cmd,id,key)
....
if ((key==22)or(key==418))/*ctrl+v ; ctrl+Ins*/
....
/*lgSetClipboardData (string Text, [bool OEM=true]) */
.....
elif ((key==3)or (key==402))/*ctrl+c ; alt+Ins (shift+Ins не ловится ;) )*/
....
/* lgGetClipboardData ( [bool OEM=true]) */
.....
end;
....
end;
>> Ответитьпростите, очепятка ( Victor March 23.04.2004 11:27 )
0(0)Доработка (+) ( григ 16.07.2004 14:43 )
0(0)16.07.2004 – Переписана функция lgSetClipboardData. Теперь проверяется версия ОС и, если она Windows NT и выше, строка предварительно переводится в UniCode.
>> ОтветитьЕсли звезды зажигаются - значит это кому нибуть нужно ? ( Senator 20.07.2004 11:13 )
0(0)Если не затруднит - пару примеров - зачем это нужно ?
а то "Можно получить текстовое содержимое Clipboard-а, можно скопировать строку в Clipboard." как чебурашка - "могу копать- могу не копать"
Ну нарисую я диалог - ну поставлю обработчик на нажатие комбинаций клавишь - и чё ... этож каждое поле надо обрабатывать- не в нём ли нажато CTRL-V. Кстати, Григ, если бы ты ушёл с Win'98 то знал-бы что средствами даже win'2000 можно в любое поле делать вставку из кликборда (мышкой - клик на шапке-изменить-вставить). А в бездиалоговых макросах я не представляю как это можно использовать.
>> ОтветитьТам есть макрос - пример для использования в dtb (+) ( григ 20.07.2004 11:53 )
0(0)В dtb нет проблем узнать на каком поле произошло нажатие клавиш, т.к. имеется параметр Sender.
За стандартный диалог я не отвечаю - это к RSSL.
Про 2000 я в курсе, эта штука работает и в 98й, кстати. Только вот на мой взгляд криво она копирует, часть символов копируется неправильно, только видимая часть поля (в поле). И потом: либо копирование, либо выбор объектов. Поэтому для собственного удобства работы с dtb.d32 я сделал эту длм-ку. Не нужна - не пользуйся. Вернее можешь пользоваться как примером длм-ки - исходники там есть.
>> Ответить