// Die Formate der
Zwischenablage werden aufgelistet.
// Die variable "Alle" bestimmt, ob die aktuell vorhandenen,
// oder alle möglichen Formate angezeigt werden.
// Getestet mit RS 10.4 unter Win11
uses Vcl.ClipBrd;
function CLPB(I: Integer): String;
begin
case I of
1:
Result := 'CF_TEXT';
2:
Result := 'CF_BITMAP';
3:
Result := 'CF_METAFILEPICT';
4:
Result := 'CF_SYLK';
5:
Result := 'CF_DIF';
6:
Result := 'CF_TIFF';
7:
Result := 'CF_OEMTEXT';
8:
Result := 'CF_DIB';
9:
Result := 'CF_PALETTE';
10:
Result := 'CF_PENDATA';
11:
Result := 'CF_RIFF';
12:
Result := 'CF_WAVE';
13:
Result := 'CF_UNICODETEXT';
14:
Result := 'CF_ENHMETAFILE';
15:
Result := 'CF_HDROP';
16:
Result := 'CF_LOCALE';
17:
Result := 'CF_MAX';
$0080:
Result := 'CF_OWNERDISPLAY';
$0081:
Result := 'CF_DSPTEXT';
$0082:
Result := 'CF_DSPBITMAP';
$0083:
Result := 'CF_DSPMETAFILEPICT';
$008E:
Result := 'CF_DSPENHMETAFILE';
$0200 .. $02FF:
Result := 'Privat';
$0300 .. $03FF:
Result := 'GDI Objekt';
else
Result := 'Unbekannt';
end;
Result := Format('%:4d ', [I]) + Result;
end;
procedure CFFinden(LB: TListBox; Alle: Boolean = False);
var
I: Integer;
begin
LB.Clear;
LB.Font.Name := 'Courier New'; // gleicher Abstand
LB.Font.Size := 12;
for I := 1 to 1023 do
begin
if Alle or Clipboard.HasFormat(I) then
LB.Items.Add(CLPB(I));
end;
end;
// Beispiel
procedure TForm1.Button1Click(Sender: TObject);
begin
CFFinden(ListBox1);
(*
// Und falls Scrollbars nötig sind:
ListBox1.Perform(LB_SetHorizontalExtent, $3E8, 0);
ShowScrollBar(ListBox1.Handle, SB_VERT, True);
*)
end;
|