|  | 
|      | 
|   | 
| Перенос строк из 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 прямо в свой смартфон. Подпишитесь на наш  
 | ||||
|  ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||