掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DragOverイベントが発生しない場合がある (ID:149917)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
レスありがとうございます。 サンプルソースに入れて試したところ MouseDownイベント内で処理に時間がかかっても 処理終了後にAcceptが Trueの状態でDragOverイベントが発生するという理想通りの動作になりました。 BeginDragも試していたのですがBeginDragがあるならEndDragも必要だろうと色々やっていたのも動作に影響を与えていたようです。 本番の環境にも組み込んで試して見ます。 ありがとうございました。 procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := Sender = Source; if Accept then begin ListBox1.Items.Add('Accept'); ListBox1.ItemIndex := ListBox1.Items.Count-1; end; end; procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then begin TListBox(Sender).BeginDrag(True); ListBox1.Items.Add('BeginDrag'); ListBox1.ItemIndex := ListBox1.Items.Count-1; end; Sleep(500); end; procedure TForm1.ListBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // これを加えると動かなくなる //TListBox(Sender).EndDrag(True); ListBox1.Items.Add('EndDrag'); ListBox1.ItemIndex := ListBox1.Items.Count-1; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.