Преобразование координат в параметрах событий OnDragOver и OnDragDrop, в координаты формы.

Previous  Top  Next

    
 

Автор: Neil

 

Поверьте, достаточно просто преобразовать X,Y координаты, передаваемые в параметрах событий OnDragOver и OnDragDrop, в координаты формы.

 

Работайте со свойствами Left и Top компонента, над которым перемещается курсор. Приведу простой пример. Поместите на форму компонент Memo и присвойте свойству Align значение alTop. Поместите на форму панель, также присвойсте свойству Align значение alTop и задайте небольшое значение свойству Height, скажем 6 или 7 пикселей. Установите DragMode на dmAutomatica и DragCursor на crVSplit. Поместите другой Memo-компонент и установите Align на alClient. Одновременно выберите оба Memo-компонента, панель и создайте общий обработчик события OnDragOver как показано ниже:

 

Code:

procedure TForm1.Memo1DragOver(Sender, Source: TObject; X, Y: Integer;

State: TDragState; var Accept: Boolean);

begin

if Source = Panel1 then

   with Sender as TControl do

   begin

     Accept := True;

     Memo1.Height := Y + Top;

   end

else

   Accept := False;

end;

 

©Drkb::00728

http://delphiworld.narod.ru/

DelphiWorld 6.0