Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 411

•  TDictionary Custom Sort  5 629

•  Fast Watermark Sources  5 392

•  3D Designer  7 831

•  Sik Screen Capture  5 687

•  Patch Maker  6 177

•  Айболит (remote control)  6 184

•  ListBox Drag & Drop  5 060

•  Доска для игры Реверси  94 059

•  Графические эффекты  6 354

•  Рисование по маске  5 401

•  Перетаскивание изображений  4 571

•  Canvas Drawing  4 949

•  Рисование Луны  4 689

•  Поворот изображения  4 232

•  Рисование стержней  2 980

•  Paint on Shape  2 214

•  Генератор кроссвордов  3 061

•  Головоломка Paletto  2 406

•  Теорема Монжа об окружностях  3 186

•  Пазл Numbrix  2 088

•  Заборы и коммивояжеры  2 735

•  Игра HIP  1 713

•  Игра Go (Го)  1 630

•  Симулятор лифта  1 951

•  Программа укладки плитки  1 683

•  Генератор лабиринта  2 119

•  Проверка числового ввода  1 807

•  HEX View  2 066

•  Физический маятник  1 805

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Поместить или получить строку из буфера обмена (заплатка к стандартным)



Автор: VID

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Поместить/получить строку из буфера обмена (Заплатка к стандартным)

Под Win2k попытка вставить русскую строку в Clipboard ClipBoard.AsText:='Проба'
с последующей вставкой в Word'е показывает кракозябрики..
Расследование показало, что виноваты мелкомягкие (как обычно :) )
С целью нивелирования различий между всеми Win-платформами были написаны эти 2 ф-ции..
Принимают на вход/возвращают строку в Unicode - WideString..
но не надо беспокоиться, Дельфи сам вставит при необходимости
конвертацию в/из AnsiString.

Если платформа поддерживает уникод (NT), то используется этот формат,
иначе вызываются стандартные процедуры/ф-ции.
Удачи!

Зависимости: ClipBrd
Автор:       Shaman_Naydak, shanturov@pisem.net
Copyright:   Shaman_Naydak
Дата:        26 июня 2002 г.
***************************************************** }

procedure PutStringIntoClipBoard(const Str: WideString);
var
  Size: Integer;
  Data: THandle;
  DataPtr: Pointer;
begin
  Size := Length(Str);
  if Size = 0 then
    exit;
  if not IsClipboardFormatAvailable(CF_UNICODETEXT) then
    Clipboard.AsText := Str
  else
  begin
    Size := Size shl 1 + 2;
    Data := GlobalAlloc(GMEM_MOVEABLE + GMEM_DDESHARE, Size);
    try
      DataPtr := GlobalLock(Data);
      try
        Move(Pointer(Str)^, DataPtr^, Size);
        Clipboard.SetAsHandle(CF_UNICODETEXT, Data);
      finally
        GlobalUnlock(Data);
      end;
    except
      GlobalFree(Data);
      raise;
    end;
  end;
end;

function GetStringFromClipboard: WideString;
var
  Data: THandle;
begin
  if not IsClipboardFormatAvailable(CF_UNICODETEXT) then
    Result := Clipboard.AsText
  else
  begin
    Clipboard.Open;
    Data := GetClipboardData(CF_UNICODETEXT);
    try
      if Data <> 0 then
        Result := PWideChar(GlobalLock(Data))
      else
        Result := '';
    finally
      if Data <> 0 then
        GlobalUnlock(Data);
      Clipboard.Close;
    end;
  end;
end;




Похожие по теме исходники

Clipboard (буфер обмена)




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте