У меня есть
procedure TMainForm.FormCreate(Sender: TObject);
begin
DragAcceptFiles (Handle, True ) ;
end ;
, но форма не принимает перетаскиваемые файлы - ни курсора перетаскивания, ни срабатывания сообщения WM_DROPFILES.
У меня была следующая конструкция в моем событии FormShow (по другой причине - был код, который я хотел выполнить только один раз после создания формы, а FormShow запускался более одного раза во время инициализации):
procedure TMainForm.FormShow(Sender: TObject);
begin
if (not FRunOnce) then // as FormShow can be called twice - if Form.Position assigned to
begin
DragAcceptFiles (Handle, True ) ;
FRunOnce := True ;
end ;
end ;
DragAcceptFiles (Handle, Верно) в показанном положении по-прежнему не работает. Если я перемещу его в начало процедуры (чтобы он выполнялся дважды), он действительно работал:
procedure TMainForm.FormShow(Sender: TObject);
begin
DragAcceptFiles (Handle, True ) ;
if (not FRunOnce) then // as FormShow can be called twice - if Form.Position assigned to
begin
FRunOnce := True ;
end ;
end ;
Весь найденный мной пример кода, похоже, вызывает DragAccept во время OnCreate. Мои эксперименты показывают, что это слишком рано, как и первый пожар OnShow. Я' Я уверен, что что-то не так с моим кодом в другом месте, но что может быть причиной этого?