Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

И снова Drag&Drop [D5, WinXP]


cerber1 ©   (2004-11-29 23:45:00) 

Я понимаю что может уже тривиально, но как с помощью Drag&Drop перетаскивать Tshape по Tform?. Просьба предоставить рабочий(проверенный) код


easy   (2004-12-01 00:31:00) [1]


> [3]

тык вам шашечки или ехать?..


Style   (2004-11-30 23:15:00) [2]

Установи Shape1.DragMode := dmAutomatic;
и добавь на форму следующий код.

procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
 State: TDragState; var Accept: Boolean);
begin
Accept := true;
end;

procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
 Shape1.Left := x;
 Shape1.Top := y;
end;


> И в догонку:
> почему у объектов класса Tshape нет хендла?

потому что это не TWinControl!


cerber1   (2004-11-30 22:41:00) [3]

И в догонку:
почему у объектов класса Tshape нет хендла?


cerber1   (2004-11-30 22:38:00) [4]

Я наверно не совсем жирными написал:
с помощью Drag&Drop
ибо предложенный способ мною уже давно реализован.


VMcL   (2004-11-30 07:24:00) [5]

>> easy ©  (30.11.04 00:04) [1]

Только downX и downY лучше, наверное, объявить как поле класса TForm1.


easy   (2004-11-30 00:04:00) [6]

var
 downX,downY:integer;

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 downX:= X;
 downY:= Y;
end;

procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
if (ssLeft in Shift) then
 with Shape1 do begin
   Left := X-downX+Left;
   Top := Y-downY+Top;
 end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо