У меня есть
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, True) в позиции, показанной до сих порне работаетЕсли я переместу его в начало подпрограммы (чтобы оно выполнялось дважды), оно сработает:
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.Я уверен, что что-то не так с моим кодом в другом месте, но что может быть причиной этого?