![]() |
Clipboard
Moin Moin,
ich mal wieder, hoffe es nervt nicht allzu doll :cyclops: Folgendes Problem, da ic ja gerade mit meiner Icongeschichte nicht weiterkomme wollte ich am Editorbereich weiterbasteln und den Inhalt von Memo2 in die Zwischenablage kopieren, allerdings will das nicht so richtig
Delphi-Quellcode:
Set.Focus und SelectAll funktioniert ohne Probleme, nur in die Zwischenablage wird nichts eingefügt, allerdings wird die Zwischenablage überschrieben wenn vorher was drinn war
if ClipBoard.HasFormat(CF_TEXT) then Showmessage('Text!'); // nur zum testen
Memo2.SetFocus; Memo2.SelectAll; Memo2.CopyToClipBoard; ClipBoard.AsText := Memo2.Text; was habe ich denn jetzt falsch gemacht ? |
Re: Clipboard
Moin Jens,
ich habe das mal mit Lazarus 0.9.4. beta, und D5 Pro nachgestellt (nur diese Zeilen:
Delphi-Quellcode:
)
Memo1.SetFocus;
Memo1.SelectAll; Memo1.CopyToClipBoard; Bei D5 Pro: OK Bei Lazarus: Der beschriebene Effekt. Bug in Lazarus, bzw. FreePascal-Compiler? |
Re: Clipboard
ach menno, so macht das alles keinen spaß mehr wenn so viele sachen nicht funktionieren in Lazarus :(
habe leider keine 1300 EUR für delphie und die Freeversion davon darf man ja nichts veröffentlichen :( @ Christian Seehase hast du eventuell noch ne andere Idee wie ich den Text in die Zwischenablage kopieren kann ? |
Re: Clipboard
Moin Jens,
ja hab' ich. Sozusagen "zu Fuss", also einfach mit den zugrundeliegenden API-Funktionen:
Delphi-Quellcode:
Sollte so funktionieren, aber schau Dir auf jeden Fall auch mal im MSDN die jeweiligen API-Funktionen an.
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; Die Funktion ist über 2 Jahre alt, und könnte vielleicht mal überarbeitet werden ;-) |
Re: Clipboard
vielen dank, funktioniert astreis :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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