お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"クリップボード形式の名前を取得"



 こんにちは、ぜえた です。




クリップボードに配置されているデータの形式名のリストを取得し
ます。#753の「クリップボード監視コンポーネント」のサンプルで
もあります。

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Controls, Forms, StdCtrls, CBWatch;

type
  TForm1 = class(TForm)
    ClipboardWatcher1: TClipboardWatcher;
    ListBox1: TListBox;
    procedure ClipboardWatcher1Change(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function GetCBFormatName(Format: UINT): string;
const
  PredefinedFormats1: array[CF_TEXT..CF_MAX] of string = (
    'CF_TEXT', 'CF_BITMAP', 'CF_METAFILEPICT', 'CF_SYLK',
    'CF_DIF', 'CF_TIFF', 'CF_OEMTEXT', 'CF_DIB',
    'CF_PALETTE', 'CF_PENDATA', 'CF_RIFF', 'CF_WAVE',
    'CF_UNICODETEXT', 'CF_ENHMETAFILE', 'CF_HDROP', 'CF_LOCALE',
    'CF_MAX');
  PredefinedFormats2: array[CF_OWNERDISPLAY..CF_DSPMETAFILEPICT] of string = (
    'CF_OWNERDISPLAY', 'CF_DSPTEXT', 'CF_DSPBITMAP', 'CF_DSPMETAFILEPICT');
var
  Buffer: array[0..255] of Char;
begin
  case Format of
    CF_TEXT..CF_MAX: Result := PredefinedFormats1[Format];
    CF_OWNERDISPLAY..CF_DSPMETAFILEPICT: Result := PredefinedFormats2[Format];
    CF_DSPENHMETAFILE: Result := 'CF_DSPENHMETAFILE';
  else
    if GetClipboardFormatName(Format, Buffer, SizeOf(Buffer)) > 0 then
      Result := Buffer
    else
      Result := '';
  end;
end;

procedure GetCBFormatNames(Strings: TStrings);
var
  Format: UINT;
begin
  Strings.BeginUpdate;
  try
    Strings.Clear;
    if not OpenClipboard(0) then Exit;
    try
      Format := EnumClipboardFormats(0);
      while Format <> 0 do begin
        Strings.Add(GetCBFormatName(Format));
        Format := EnumClipboardFormats(Format);
      end;
    finally
      CloseClipboard;
    end;
  finally
    Strings.EndUpdate;
  end;
end;

procedure TForm1.ClipboardWatcher1Change(Sender: TObject);
begin
  GetCBFormatNames(ListBox1.Items);
end;

end.

                                                    ぜえた (QZC05100)

Original document by ぜえた          氏 ID:(QZC05100)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum