// 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;
Zugriffe seit 6.9.2001 auf Delphi-Ecke