![]() |
Clipboard und Rich Text Format
Hallo,
ich möchte feststellen, ob sich in der Zwischenablage das Rich Text Format befindet. Leider scheint es keine vor-definierte Konstante für das Clipboard Rich Text Format zu geben (wie etwa CF_TEXT oder CF_BITMAP). Deshalb habe ich einen Text aus OO Writer in die Zwischenablage kopiert, und dann den ![]() Leider musste ich dann feststellen, dass an einem anderen Tag ein anderer Wert für das Clipboard Rich Text Format angezeigt wurde, nämlich: 49280. Der Wert für das Clipboard Rich Text Format scheint also keine Konstante zu sein, sondern ist womöglich davon abhängig, welches Programm etwas im Rich Text Format in die Zwischenablage kopiert? Kann das jemand bestätigen? Natürlich kann ich (bzw. mein Programm) auch damit leben, dass das Clipboard Rich Text Format keine Konstante ist, sondern jedes mal den Wert abfragen, wenn ein Clipboard-Ereignis eintritt, z.B.:
Delphi-Quellcode:
Aber vielleicht kennt jemand eine andere Methode (die einen Konstanten-Wert verwendet), um festzustellen, ob sich das Rich Text Format im Clipboard befindet?
uses Clipbrd, Windows;
function My_GetClipBoardFormatName(format: Word): string; var r : Integer; begin SetLength(Result, 256); r := GetClipboardFormatName(format, PChar(Result), Length(Result)); (*if r = 0 then RaiseLastWin32Error;*) SetLength(Result, r); end; procedure GetCBFormats; var f: Integer; AFormat: string; begin CBFormats.Clear; for f := 0 to Clipboard.FormatCount - 1 do begin AFormat := My_GetClipBoardFormatName(Clipboard.Formats[f]); if AFormat <> '' then CBFormats.Add(AFormat); end; end; function MyClipboardHasFormat(const CFormat: string): Boolean; var cf: Integer; begin Result := False; for cf := 0 to CBFormats.Count - 1 do begin if CompareText(CFormat, CBFormats[cf]) = 0 then begin Result := True; BREAK; end; end; end; // Anwendung: CBFormats := TStringList.Create; GetCBFormats; if MyClipboardHasFormat('Rich Text Format') then // ... |
Re: Clipboard und Rich Text Format
Moin auch :hi:
Das brauchst du so nicht. Am Einfachsten nimmst du eine globale Variable und rufst RegisterClipboardFormat aus Windows.pas auf. Auszug aus der Onlinehilfe Zitat:
|
Re: Clipboard und Rich Text Format
Zitat:
Etwas wundert mich aber schon ein wenig: In Windows sind für alle möglichen exotischen Clipboard-Formate Konstanten vor-definiert, nur für das äußerst wichtige Rich Text Format gibt es keine vor-definierte Konstante. Ist da etwas Wichtiges vergessen worden? Edit: (Die einzige vor-definierte Konstante scheint die Zeichenfolge 'Rich Text Format' ein, da alle Programme, die Rich Text in das Clipboard kopieren, sich daran halten). |
Re: Clipboard und Rich Text Format
Zitat:
Die Konstanten sind sicherlich aus der Anfangszeit, neuere muss man eben registrieren. So haben die das auf jeden Fall zukunftssicher gestaltet. |
Re: Clipboard und Rich Text Format
Zitat:
|
Re: Clipboard und Rich Text Format
Wieso Beweis für seine Behauptung? Glaubst du dem Windows SDK nicht?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz