Thema: Clipboard

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Clipboard

  Alt 13. Mär 2005, 15:18
Moin Jens,

ja hab' ich.
Sozusagen "zu Fuss", also einfach mit den zugrundeliegenden API-Funktionen:

Delphi-Quellcode:
function StringToClipboard(const AsString : string) : integer;

var
  hMem : cardinal;
  pMem : PChar;

begin
  Result := ERROR_SUCCESS;
  if not OpenClipboard(0) then begin
    Result := GetLastError;
    exit;
  end;
  try
    if not EmptyClipboard then begin
      Result := GetLastError;
      exit;
    end;
    hMem := GlobalAlloc(GMEM_MOVEABLE,Length(AsString)+1);
    if hMem = 0 then begin
      Result := GetLastError;
      exit;
    end;
    pMem := GlobalLock(hMem);
    if pMem = nil then begin
      Result := GetLastError;
      exit;
    end;
    try
      CopyMemory(pMem,PChar(AsString+#00),Length(AsString)+1);
    finally
      if not GlobalUnlock(hMem) then Result := GetLastError;
    end;
    if SetClipboardData(CF_TEXT,hMem) = 0 then begin
      Result := GetLastError;
      exit;
    end;
  finally
    if not CloseClipboard then Result := GetLastError;
  end;
end;
Sollte so funktionieren, aber schau Dir auf jeden Fall auch mal im MSDN die jeweiligen API-Funktionen an.
Die Funktion ist über 2 Jahre alt, und könnte vielleicht mal überarbeitet werden
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat