Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
15-1206796838
@!!ex
2008-03-29 16:20
2008.05.11
Что за музыка?


2-1207979954
German
2008-04-12 09:59
2008.05.11
На что рассчитывать от ADO + Access ?


2-1208032052
voe
2008-04-13 00:27
2008.05.11
Непонятное поведение Application.ProcessMessages


2-1207994821
ZzZz
2008-04-12 14:07
2008.05.11
Minimize


15-1206603197
usr
2008-03-27 10:33
2008.05.11
MS SQL Server 2000





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский