Скопировать строки TListBox в буфер обменаDelphi , ОС и Железо , Буфер обменаСкопировать строки TListBox в буфер обмена
Оформил: DeeCo uses Clipbrd; procedure ListBoxToClipboard(ListBox: TListBox; BufferSize: Integer; CopyAll: Boolean); var Buffer: PChar; Size: Integer; Ptr: PChar; I: Integer; Line: string[255]; Count: Integer; begin if not Assigned(ListBox) then Exit; GetMem(Buffer, BufferSize); Ptr := Buffer; Count := 0; for I := 0 to ListBox.Items.Count - 1 do begin Line := ListBox.Items.strings[I]; if not CopyAll and ListBox.MultiSelect and (not ListBox.Selected[I]) then Continue; { Check buffer overflow } Count := Count + Length(Line) + 3; if Count = BufferSize then Break; { Append to buffer } Move(Line[1], Ptr^, Length(Line)); Ptr := Ptr + Length(Line); Ptr[0] := #13; Ptr[1] := #10; Ptr := Ptr + 2; end; Ptr[0] := #0; ClipBoard.SetTextBuf(Buffer); FreeMem(Buffer, BufferSize); end; procedure ClipboardToListBox(ListBox: TListbox); begin if not Assigned(ListBox) then Exit; if not Clipboard.HasFormat(CF_TEXT) then Exit; Listbox.Items.Text := Clipboard.AsText; end; //Copy all items from Listbox1 to the clipboard procedure TForm1.Button1Click(Sender: TObject); begin ListBoxToClipboard(ListBox1, 1024, True); end; //Paste items in clipboard to Listbox2 procedure TForm1.Button2Click(Sender: TObject); begin ClipboardToListBox(Listbox2); end; //Copy only selected items from Listbox1 to the clipboard procedure TForm1.Button3Click(Sender: TObject); begin ListBoxToClipboard(Listbox1, 1024, False); end; Программный код, который обеспечивает метод копирования содержимого контрола TListBox в системную буфер обмена и другой метод для вставки содержимого из буфера обмена в другой TListBox. Процедура Детальное описание того, что делает каждый участок кода:
Процедура Детальное описание того, что делает каждый участок кода:
Главная форма имеет три процедуры, связанные с кнопками:
В статье описывается код на Delphi для копирования строк из TListBox в буфер обмена и обратно, а также примеры использования этих функций. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Буфер обмена ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |