Вниз
Скачать: CL | DM;

Drag`n`Drop до того, как пользователь отпустит кнопку мыши   Найти похожие ветки 

 
Raki   (2004-03-03 23:11) [0]

Приведу код, который нашел здесь же, на сайте:
<--
TMainForm = class(TForm)
...
private
procedure WMDROPFILES(var Message: TWMDROPFILES); message
WM_DROPFILES;
procedure ProcessFile(Filename: string);
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
DragAcceptFiles(MainForm.Handle, TRUE); // enable drag&drop
end;

procedure TMainForm.ProcessFile(Filename: string);
begin
// any actions
BEEP;
end;

procedure TMainForm.WMDROPFILES(var Message: TWMDROPFILES);
var
Files  : Longint;
I      : Longint;
Buffer : array[0..MAX_PATH] of Char;
begin
Files := DragQueryFile(Message.Drop,$FFFFFFFF,nil,0); // Get count of
files
for I := 0 to Files - 1 do begin
  DragQueryFile(Message.Drop,I,@Buffer,SizeOf(Buffer)); // Get N file
  ProcessFile(Buffer); // do something with the file
end;
DragFinish(Message.Drop); // end drag loop
end;
--!>

В процедуре ProcessFile команда BEEP, которую я вписал в готовый код, происходит тогда, когда пользователь отпускает клавишу мыши, бросая на форму файл. А мне нужно узнать заранее, когда  пользователь только начинает водить мышью с захваченным файлом над формой, что он собирается бросить файл. Цель- в это время поменять курсор. Как это сделать. В справке наткнулся на описание WM_Notify, но это не помогает.
Или, быть может, я делаю что-то неправильно.


 
Almaz ©   (2004-03-04 02:31) [1]


> А мне нужно узнать заранее, когда  пользователь только начинает
> водить мышью с захваченным файлом над формой, что он собирается
> бросить файл. Цель- в это время поменять курсор. Как это
> сделать. В справке наткнулся на описание WM_Notify, но это
> не помогает.
> Или, быть может, я делаю что-то неправильно.

IMHO, технология связанная с WM_DROPFILES тут не поможет. Вам стоит использовать интерфейс IDropTarget, в частности его методы DragEnter и DragLeave.

Удачи.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.022 c
7-1078053511
NetworK
2004-02-29 14:18
2004.04.25
Имя процесса


3-1080291198
LAndreyV
2004-03-26 11:53
2004.04.25
Размер БД растет не подням, а по часам !


3-1080538686
WondeRu
2004-03-29 09:38
2004.04.25
DateTime in Update


1-1081251090
Станислав
2004-04-06 15:31
2004.04.25
Создание объекта класса


14-1080554097
Dmitriy O.
2004-03-29 13:54
2004.04.25
Как определить чо нужно а что нет ?




   Наверх