Вниз
Скачать: 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
1-1081648970
NND
2004-04-11 06:02
2004.04.25
-= Ошибки, ошибки и еще раз ошибки =-


3-1080626158
pt
2004-03-30 09:55
2004.04.25
dBase + ADO


1-1081692023
Privet
2004-04-11 18:00
2004.04.25
ТСaption, хочу вращать иконку в заголовке окна, а там нет Canvas


1-1081573541
AmazedDexter
2004-04-10 09:05
2004.04.25
Рэндомайз


1-1081600413
Cigt12
2004-04-10 16:33
2004.04.25
Как узнать, что одна из переменных не равна треб. значению.




   Наверх