Содержание материала

Если компонент не является приемником Drag&Drop, или обработчик события OnDragOver отсутствует или возвращает False, то появляется другой курсор (по умолчанию crNoDrop).

Событие:

Code:

property OnDragDrop: TDragDropEvent ;

TDragDropEvent = procedure(Sender, Source: TObject; X, Y: Integer) of object;

 

возникает во время перетаскивания при отпускании левой кнопки мыши над элементом, готовым к приему. Параметры его имеют тот же смысл, что и в предыдущем случае.

В приведенном примере вы можете перетащить одну из геометрических фигур в вашей форме (компонент TShape) на статический текст Label 1. Для этого в Label 1 описано два метода: Label IDragOver сигнализирует о готовности принять только компоненты класса TShape, a Label IDragDrop вычисляет площадь фигуры в квадратных сантиметрах в зависимости от ее вида (эллипс, прямоугольник, прямоугольник с закругленными углами).

 

Code:

procedure TPormI -LabellDragOver (Sender, Source: TObject; X, Y: Integer;

State: TDragState; var Accept: Boolean);

begin

Accept := Source is TShape;

end;

 

procedure TFormI .LabellDragDrop (Sender, Source: TObject; X, Y: Integer);

var f : single; i : Integer;

begin

with Source as TShape do

   begin

     i := Width;

     if i > Height then i:= Height;

     case Shape of

       stRectangle: f := Width*Height;

       stSquare: f := i * i;

       stCircle: f := Pi * i*i / 4;

       stEllipse: f := Pi * Widths-Height / 4;

       stRoundRect, stRoundSquare:

         begin

           if Shape = stRoundRect then f := Width*Height else f := i * i;

           i :=        (i - Pen.Width + 1) div 4;

           f :=        f - (4-Pi)*i*i;

         end;

     end;

   end;

f := f / Sqr(Forml.PixelsPerInch / 2.54);

Labell-Caption := FloatToStrF(f, ffFixed, 5,        2)+ ' кв.см';

end;

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить