AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Clipboard Fehler

Ein Thema von dominikkv · begonnen am 7. Feb 2008 · letzter Beitrag vom 1. Apr 2008
Antwort Antwort
Seite 2 von 2     12   
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Clipboard Fehler

  Alt 8. Feb 2008, 14:56
Zitat von RavenIV:
Zitat von dominikkv:
ok, angeschaut -> abgeschrieben -> geht
Hast Du auch kapiert, was da gemacht wird?
Abschreiben alleine reicht ja nicht.
ähh... so halber^^
...oder sagen wir zu dreiviertel xD
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#12

Re: Clipboard Fehler

  Alt 8. Feb 2008, 14:59
Wieso eigentlich abgeschrieben? Du hättest auch die Zwischenablage nutzen können
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von napstar
napstar

Registriert seit: 22. Mär 2007
Ort: München
133 Beiträge
 
Delphi 2007 Architect
 
#13

Re: Clipboard Fehler

  Alt 1. Apr 2008, 20:51
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;
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#14

Re: Clipboard Fehler

  Alt 1. Apr 2008, 21:14
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;
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz