![]() |
Re: Clipboard Fehler
Zitat:
...oder sagen wir zu dreiviertel xD |
Re: Clipboard Fehler
Wieso eigentlich abgeschrieben? Du hättest auch die Zwischenablage nutzen können :lol:
|
Re: Clipboard Fehler
kann mir jemand erklähren was in diesem code hier gemacht wird.. ich will nicht einfach was übernehmen, ohne das ich was dabei lerne ^^
Delphi-Quellcode:
TfMain = class(TForm)
private hNextViewer: DWORD; protected procedure WMChangeCBChain(var Msg: TMessage); message WM_CHANGECBCHAIN; procedure WMDrawClipboard(var Msg: TMessage); message WM_DRAWCLIPBOARD; end; // FormCreate: hNextViewer := SetClipBoardViewer(Handle); // FormDestroy: ChangeClipBoardChain(Handle, hNextViewer); procedure TfMain.WMChangeCBChain(var Msg: TMessage); begin if Msg.WParam = hNextViewer then hNextViewer := Msg.lParam else if hNextViewer <> 0 then SendMessage(hNextViewer, MSG.Msg, MSG.wParam, MSG.lParam); end; procedure TfMain.WMDrawClipboard(var Msg: TMessage); var hClipbrdObj: THandle; pClipbrdObj: Pointer; begin OpenClipboard(Handle); hClipbrdObj := GetClipboardData(CF_TEXT); if hClipbrdObj <> 0 then begin pClipbrdObj := GlobalLock(hClipbrdObj); if chk1.Checked then ClipboardChanged(PChar(pClipbrdObj)); end; GlobalUnlock(DWORD(pClipbrdObj)); GlobalFree(hClipbrdObj); CloseClipBoard; end; |
Re: Clipboard Fehler
Delphi-Quellcode:
TfMain = class(TForm)
private hNextViewer: DWORD; // Handle des nächsten Kettenmitglieds protected procedure WMChangeCBChain(var Msg: TMessage); message WM_CHANGECBCHAIN; // wird aufgerufen wenn sich die Kette verändert procedure WMDrawClipboard(var Msg: TMessage); message WM_DRAWCLIPBOARD; // wird aufgerufen wenn sich das Clipboard verändert end; // FormCreate: hNextViewer := SetClipBoardViewer(Handle); // Dich in der Kette anmelden und das nächste Mitglied sichern // FormDestroy: ChangeClipBoardChain(Handle, hNextViewer); // Dich von der Kette ausklinken und dem Folgemitglied bescheid geben procedure TfMain.WMChangeCBChain(var Msg: TMessage); begin if Msg.WParam = hNextViewer then // wenn die Nachricht von dem Folgemitglied kommt (d.h. er sich aus der Kette ausklinkt) hNextViewer := Msg.lParam // das nächste Folgenmitglied sichern else if hNextViewer <> 0 then // ansonsten wenn es ein Folgemitglied gibt SendMessage(hNextViewer, MSG.Msg, MSG.wParam, MSG.lParam); // die Nachricht weiterleiten end; procedure TfMain.WMDrawClipboard(var Msg: TMessage); var hClipbrdObj: THandle; pClipbrdObj: Pointer; begin OpenClipboard(Handle); // Clipboard öffnen hClipbrdObj := GetClipboardData(CF_TEXT); // schauen ob Text drinnsteht -> Handle if hClipbrdObj <> 0 then // wenn ja begin pClipbrdObj := GlobalLock(hClipbrdObj); // einen Zeiger auf die Daten ausrichten und den bereich Sperren if chk1.Checked then ClipboardChanged(PChar(pClipbrdObj)); // etwas mit den Daten machen end; GlobalUnlock(DWORD(pClipbrdObj)); // Sperrung aufheben GlobalFree(hClipbrdObj); // Den Speicherbereich freigeben und Handle ungültig machen CloseClipBoard; // Clipboard schließen end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16: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