Перенос строк из TListBox в TRichEditDelphi , Компоненты и Классы , СпискиПеренос строк из TListBox в TRichEdit
Оформил: DeeCo function RECharIndexByPos(RichEdit: TRichEdit; X, Y: Integer): Integer; var P: TPoint; begin P := Point(X, Y); Result := SendMessage(RichEdit.Handle, EM_CHARFROMPOS, 0, Longint(@P)); end; procedure TForm1.RichEdit1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); var P: TPoint; begin // Check, if Source is ListBox1 Accept := Source = ListBox1; if GetCursorPos(P) then with RichEdit1 do begin // Get the Index from Mouse Position P := ScreenToClient(P); SelStart := RECharIndexByPos(RichEdit1, P.X, P.Y); SetFocus; end; end; procedure TForm1.RichEdit1DragDrop(Sender, Source: TObject; X, Y: Integer); begin // finally insert text at mouse position RichEdit1.SelText := ListBox1.Items[ListBox1.ItemIndex]; end; Программный код на Delphi, предназначенный для переноса строк из контрола TListBox в контрол TRichEdit при перетаскивании элементов списка на редактор текста. Обзор работы: Процедура RECharIndexByPos
Эта функция принимает два целочисленных параметра Процедура TForm1.RichEdit1DragOver
Эта процедура вызывается при перетаскивании элемента из списка TListBox ( Процедура TForm1.RichEdit1DragDrop
Эта процедура вызывается при перетаскивании элемента из Альтернативное решение
Хотя это код работает, может быть более эффективно использовать прямой подход для получения индекса символа по позиции мыши. Вместо использования функции Вот обновленная версия кода, использующая это альтернативное решение:
Этот код достигает того же результата, что и оригинальный код, но более эффективен и легче для чтения. Программа на Delphi позволяет переносить строки из компонента TListBox в TRichEdit, используя функцию RECharIndexByPos для определения индекса символа по координатам мыши и процедуры DragDrop для вставки текста в RichEdit. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |