TreeView で D&D 中の描画処理
|
TreeView のアイテムをドラッグ・ドロップする際に、挿入位置をグラフィカルに表示するためのサンプルコードです。[Delphi-ML:67348] Halbow さん作。
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
AnItem: TTreeNode;
r:TRect;
begin
AnItem := TreeView1.GetNodeAt(X, Y);
if not Assigned(AnItem) then exit;
r := AnItem.DisplayRect(true);
with TreeView1.Canvas do begin
Brush.Color := TreeView1.Color;
Pen.Color := clRed;
Font := TreeView1.Font;
TextRect(r,r.Left+2,r.Top+1,AnItem.Text);
if (GetAsyncKeyState(VK_CONTROL) and $8000) = 0 then begin
Brush.Style := bsClear;
Rectangle(r.Left,r.Top,r.Right,r.Bottom)
end else begin
MoveTo(r.Left+1,r.Bottom-1);
LineTo(r.Right-1,r.Bottom-1);
end;
end;
end;
|
|