私は持っている
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 ) はまだ機能しません。ルーチンの先頭に移動すると (2 回実行されるため)、機能します。
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 ;
私が見つけたすべてのサンプル コードは、OnCreate 中に DragAccept を呼び出しているようです。私の実験では、OnShow の最初の起動と同様に、これは時期尚早であることが示唆されています。他の場所で私のコードに何か問題があると確信していますが、何が原因でしょうか?