Voilà un petit bout de code très simple qui ne fonctionne pas.
Le but est de mettre le contenu d'un TListBox dans le presse papiers.
J'utilise allocmem car la doc dit que les octets alloués sont mis à zéro
L'instruction suivante renvoie 0 alors que le TListBox1 n'est pas vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 procedure TForm1.Button3Click(Sender: TObject); var buffer : pchar; t,tc:integer; begin t:=length(Listbox1.items.text); buffer:=AllocMem(t+1); tc:=Listbox1.GetTextBuf(buffer,t); ClipBoard.Clear; ClipBoard.SetTextBuf(Buffer); freemem(buffer); Button1.tag:=tc; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part tc:=Listbox1.GetTextBuf(buffer,t);est là pour empêcher l'optimiseur de libérer tcbutton1.tag=
Partager