よろしくお願いします。
windows7 Delphi 6 personalです。
Webbrowserの勉強をしています。
Form1にTWebbrowserを貼り付けて、
画像のあるフォルダパスにナビゲートすると
WebBrowser1.Navigate('c:\xxxx(画像のあるフォルダパス)');
Imageのアイコンを表示してくれます。
質問1
表示しているイメージのアイコンを右クリックするとデフォルトの
ブラウザーのポップアップメニューが開きます。
このメニューの「名前の変更」を実行したいのですが、入力さえ受け付けてくれません。
ReadOnlyプロパティも見あたらないので、どうしたら名前の変更が
可能になるのか教えてくれませんか。
質問2:
前記の続きでアイコンを表示している画面のアイコンではない空白の部分を右クリックすると
デフォルトのポップアップメニューに「表示」があり、プルダウンメニューで
アイコンの大きさや、表示の種類を選べますが、
これを、プログラムのソフトでボタンの命令で表示を変える方法はないでしょうか。
以上質問1、質問2のどちらでもいいです。よろしくお願いします。
その1
https://www.petitmonte.com/bbs/answers?question_id=6369
その2
https://www.petitmonte.com/bbs/answers?question_id=5582
とりあえずこの辺見てみては。
あさんありがとうございました。
質問1:は完動です。
質問2はやや完動です。
ご指摘のサイトの例ではアイコンが消えないため、やや不完全です。
上のコメント部分です。
他のサイトで見つけたのがありまして、それはほぼ正常に作動します。
出来れば、windows7から見かけた特大のアイコンがあれば言うこと無しですが。コンスタントをめくらめっぽうやってみましたが当たらないです。
procedure TForm1.mSamnaileClick(Sender: TObject);
{var
h : HWND ;
GWLSTYLE : Longint;
LVS : Word;
begin
if Sender=mSamnaile then LVS := LVS_ICON
else
if Sender=mTitle then LVS :=LVS_REPORT
else
if Sender=mIcon then LVS := LVS_SMALLICON
else
if Sender=mList then LVS := LVS_LIST
else
if Sender=mReport then LVS:= LVS_TYPEMASK;
h := FindWindowEx(WebBrowser1.Handle , 0, 'SHELLDLL_DefView', nil);
h := FindWindowEx(h, 0, 'SysListView32', nil);
GWLSTYLE := GetWindowLong(h,GWL_STYLE);
GWLSTYLE := GWLSTYLE and (not LVS_TYPEMASK);
GWLSTYLE := GWLSTYLE or LVS ;
SetWindowLong(h,GWL_STYLE,GWLSTYLE );
}
const
SHVIEW_Default = 0;
SHVIEW_ICON = $7029;
SHVIEW_LIST = $702B;
SHVIEW_REPORT = $702C;
SHVIEW_THUMBNAIL = $702D;
SHVIEW_TILE = $702E;
SHVIEW_SLIDE = $702F;
var
AViewStyle : Integer;
begin
if Sender=mSamnaile then begin
AViewStyle := SHVIEW_THUMBNAIL;
end else
if Sender=mTile then begin
AViewStyle := SHVIEW_TILE;
end else
if Sender=mIcon then begin
AViewStyle := SHVIEW_ICON;
end else
if Sender=mList then begin
AViewStyle := SHVIEW_LIST;
end else
if Sender=mReport then begin
AViewStyle := SHVIEW_REPORT;
end;
if Sender=mDefault then begin
AViewStyle := SHVIEW_Default;
end;
SendMessage(Webbrowser1.Handle,WM_COMMAND,AViewStyle,0);
end;
もう、見ないかもしれませんが、覚書として。
'SHELLDLL_DefView'でWM_COMMANDをキャプチャしたところ、
SHV_ICON_LL = $704D; // 特大アイコン
SHV_ICON_L = $704F; // 大アイコン
SHV_ICON_M = $704E; // 中アイコン
SHV_ICON_S = $7050; // 小アイコン
SHV_LIST = $7051; // 一覧
SHV_DETAIL = $704B; // 詳細
SHV_SIDEBY = $704C; // 並べる
でした(定数名は勝手に命名)。
オーナー(Webbrowser1)ハンドルに送っても同じ動作でした。
Novさん、貴重な情報をありがとうございました。
しばらく自分のコード作成に夢中になり見ませんでした、
大変遅くなりすみません。
ありがたく利用させていただきます。
では。<(_ _)>
ツイート | ![]() |