喫茶XRAYトップページ
[
スレッド全体
]
[4024]
Re9:947_ExplorerBrowser の plExplorerFolderTreeにて
返信
削除
2010/12/16 (木) 23:23:15
Mr.XRAY
▼ Saraさん,どうも
> plExplorerFolderTreeにOnMouseEnterイベントを発生させるには、
> どうすればよいでしょうか?
http://
mrxray.
on.
coocan.
jp/
Delphi/
plSample
s/
947_Expl
orerBrow
sert.
htm#
03
ですよね.
これは,
http://
msdn.
microsof
t.
com/
en-
us/
library/
bb774328
%
28v=
VS.
85%
29.
aspx
のリストの,INameSpaceTreeControlCustomDrawインターフェイスを
使用しています.
インターフェイスのリストから,使えそうなのを調べて,そのインターフェイス
を実装することになります.
ただし,インターフェイスの組合せによっては,正常に機能しない場合があります.
今,ちょっとみたところでは,
INameSpaceTreeControlEvents:
http://
msdn.
microsof
t.
com/
en-
us/
library/
bb761567
%
28v=
VS.
85%
29.
aspx
が使えそうですね.ここの
OnItemClick MethodのnsctsFlags [in]に
Indicates which button was clicked and the kind of click.
One of the following values:
という説明があります.
サンプルでは,
TplCNameSpaceTreeControlHost = class(TInterfacedObject,
INameSpaceTreeControlCustomDraw)
となっていますから,
TplCNameSpaceTreeControlHost = class(TInterfacedObject,
INameSpaceTreeControlCustomDraw,
INameSpaceTreeControlEvents)
として,このINameSpaceTreeControlEventsの定義のところを開いて,
([Ctrl]+クリックでShlObj.pasの定義のところを開く)
メソッド(関数類)を全て実装します.インターフェイスでは,必要な関数だけを
実装するということはできません.全てです.
戻り値は,とりあえず,Result := S_OK などとしておいて,
MSDNの英語の記事を解読しながら,作成していくことになります.
[4025]
Re10:947_ExplorerBrowser の plExplorerFolderTreeにて
返信
削除
2010/12/16 (木) 23:29:23
Mr.XRAY
> 戻り値は,とりあえず,Result := S_OK などとしておいて,
イベントの検出だけですから,MSDNの該当関数の説明を全て読んだわけでは
ないですが,何もすることはないようなきがします.
(Result := S_OKでいいという意味です)
Result := E_NOTIMPL;
という,何もしないというのもあります.
[4026]
Re10:947_ExplorerBrowser の plExplorerFolderTreeにて
返信
削除
2010/12/16 (木) 23:37:25
Mr.XRAY
> として,このINameSpaceTreeControlEventsの定義のところを開いて,
> ([Ctrl]+クリックでShlObj.pasの定義のところを開く)
> メソッド(関数類)を全て実装します.
釈迦に説法になってしまうと思いますが,定義してある関数のコードを,
全てコピーして,自分のプロジェクトのところに貼り付け,後は,
[Ctrl]+ [Shift] + [C]
で一揆に実装部を作ってしまうと便利です.
[
▼次のスレッド
]
INCM/CMT
Cyclamen v3.82