お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"RE:[+]とか[-]がついたアイコン"

この発言は
#01390 アイクビー さんの[+]とか[-]がついたアイコン
に対するコメントです

TTreeView でノードをドラッグ中に、これらのアイコンを表示する方法です。 uses ..., ComCtrls; type THTreeView = class(TCustomTreeView) private FfDrag: Boolean; protected procedure DoDragOver(fSender: TObject; fSource: TObject; iX, iY: Integer; fState: TDragState; var fAccept: Boolean); procedure DoEndDrag(fSender, fTarget: TObject; iX, iY: Integer); reintroduce; procedure DoStartDrag(fSender: TObject; var fObject: TDragObject); reintroduce; procedure WndProc(var M: TMessage); override; public constructor Create(fOwner: TComponent); override; end; procedure TForm1.FormCreate(Sender: TObject); begin // (前の発言を参照してください) with THTreeView.Create(Self) do begin Parent := Self; Align := alClient; DragCursor := crArrow; DragMode := dmAutomatic; Items.AddChild(nil, '1'); Items.AddChild(nil, '2'); Visible := True; OnDragOver := DoDragOver; OnEndDrag := DoEndDrag; OnStartDrag := DoStartDrag; end; end; constructor THTreeView.Create(fOwner: TComponent); begin inherited Create(fOwner); FfDrag := False; end; procedure THTreeView.DoDragOver(fSender: TObject; fSource: TObject; iX, iY: Integer; fState: TDragState; var fAccept: Boolean); begin fAccept := True; end; procedure THTreeView.DoEndDrag(fSender, fTarget: TObject; iX, iY: Integer); begin FfDrag := False; end; procedure THTreeView.DoStartDrag(fSender: TObject; var fObject: TDragObject); begin FfDrag := True; end; procedure THTreeView.WndProc(var M: TMessage); var fS: TShiftState; iC: TCursor; fP: TPoint; begin if FfDrag and ((M.Msg = WM_KEYDOWN) or (M.Msg = WM_KEYUP)) then begin fS := KeyDataToShiftState(TWMKey(M).KeyData); case Ord(ssShift in fS) + (Ord(ssCtrl in fS) * 2) of 0: begin iC := crDefault; end; 1: begin iC := 1; end; 2: begin iC := 2; end; else begin iC := crDefault; end; end; if not (iC = DragCursor) then begin Screen.Cursor := iC; if GetCursorPos(fP) then begin SetCursorPos(fP.X, fP.Y); end; DragCursor := iC; end; end; inherited WndProc(M); end; アイクビー  Original document by アイクビー 氏 ID:(KHB01350)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum