Вниз
Скачать: 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.021 c
9-1067508215
Mat
2003-10-30 13:03
2004.04.25
События onMouseMove (Down, Up) у спрайтов (DelphiX)


3-1080714112
The
2004-03-31 10:21
2004.04.25
Interbase to MS SQL


7-1077525696
AlexPiv
2004-02-23 11:41
2004.04.25
Как в Delphi написать программу которая отловит процесс открытия


11-1065452668
Fligt
2003-10-06 19:04
2004.04.25
В Delphi 7 выдает ошибку "File not found: Exptlntf.dcu "


3-1080536840
Olegka
2004-03-29 09:07
2004.04.25
надо в инсталл проги вставить инсталл Firebird.




   Наверх