Текущий архив: 2008.05.11;
Скачать: CL | DM;
Вниз
Drag&Drop Найти похожие ветки
← →
arinyshka (2008-04-15 13:39) [0]Написала обработчик drag&drop:
15 image, при добавлении картинки в них свойство image меняется на dmAutomatic, при окончании drag&drop возвращается к dmManual.
В результате я могу "выбросить в корзину" любой из image, тот, картинка в котором "выброшена" недоступен для drag&drop, те, которые с картинкой - доступны.
НО! Теперь я не могу обработать обычный клик по image с картинкой. А надо... Пробую "развесить" щелчек и drag&drop по разным кнопкам мыши - не получается...
← →
Ega23 © (2008-04-15 13:45) [1]Рекомендую для начала ознакомиться со статьёй MBo ©
http://www.delphimaster.ru/articles/dragndrop/index.html
← →
arinyshka (2008-04-15 13:49) [2]Да по ней, родимой, и пыталась... драг работает. А вот разобраться с кнопками мыши не удалось :(
← →
Игорь Шевченко © (2008-04-15 13:58) [3]Я в свое время делал где-то так:
procedure TfrmFoo.StringGridMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Col, Row: Integer;
begin
StringGrid.MouseToCell (X, Y, Col, Row);
if FDragEnabled and (Button = mbLeft) and (Col = 3) and (Row > 0) then
begin
FDraggedSubject := GetSubject(Row); //К делу не относится
if Assigned(FDraggedSubkect) then
StringGrid.BeginDrag(true);
end;
end;
То есть, явно разрешал/запрещал перетаскивание
← →
MBo © (2008-04-15 14:05) [4]В Image1 есть картинка, а DragMode стоит dmManual
Картинку можно перетащить в Image2
procedure TForm3.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Caption := "Down";
end;
procedure TForm3.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if DragDetect(Handle, Point(X, Y)) then
Image1.BeginDrag(True);
end;
procedure TForm3.Image2DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
TImage(Sender).Picture.Assign(TImage(Source).Picture);
TImage(Source).Picture := nil;
end;
procedure TForm3.Image2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := Source = Image1;
end;
← →
arinyshka (2008-04-15 15:21) [5]Спасибо, так понятнее :)
Страницы: 1 вся ветка
Текущий архив: 2008.05.11;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.006 c