вторник, 14 мая 2013 г.

Получение идентификатора формата обмена по его имени


l3ClipboardFormatName описано тут:
http://18delphi.blogspot.com/2013/05/blog-post_14.html


function l3GetClipboardFormatIDByFormatName(const aName : String): hFormat;
  {* - возвращает идентификатор формата буфера обмена по его названию. }
var
 l_Format     : hFormat;
 l_FormatName : string;
begin
 Result := 0;
 if (Screen.ActiveCustomForm <> nil) then
  OpenClipboard(Screen.ActiveCustomForm.Handle)
 else
 if (Screen.ActiveForm <> nil) then
  OpenClipboard(Screen.ActiveForm.Handle)
 else
  Assert(false, 'Нет активной формы'); 
 try
  l_Format := 0;
  repeat
   l_Format := EnumClipboardFormats(l_Format);
   if (l_Format = 0) then
    Break
   else
   begin
    l_FormatName := l3ClipboardFormatName(l_Format);
    if (l_FormatName <> EmptyStr) then
     if (l_FormatName = aName) then
     begin
      Result := l_Format;
      Exit;
     end;//l_FormatName = aName
   end;//l_Format = 0
  until False;
 finally
  CloseClipboard;
 end;//try..finally
end;

Комментариев нет:

Отправить комментарий