掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Webbrowser1と2のダブルクリックされた方の判別 (ID:44575)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
あさん、Mr.XRAY さんどちらも成功しました。 下記のようにしてみたのですが、 たぶん馬鹿なコードを書いていると思いますが。 //WinSearchはMr.XRAY氏のユニットを使用しサンプルを参考にしました // http://mrxray.on.coocan.jp/Halbow/ProgCode/WinSearch.txt //これを拡張子をpasにしてprojectに追加 uses WinSearch,CommCtrl{LVIS_SELECTED; で必要}; {$R *.dfm} procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var Comp : TComponent; P : TPoint; begin //***********あ さんの回答****************** if Msg.message = WM_LButtonDown then Label0.Caption := FindDragTarget(Mouse.CursorPos, True).Name; //******************************************** { //***********Mr.XRAY さんの回答を参考 ********************* //マウス位置の取得 GetCursorPos(P); //コンポーネント名取得 Comp := FindDragTarget(P, True); if Comp <> nil then begin if Comp.Name='WebBrowser1' then begin Label0.Caption:=Comp.Name; end else if Comp.Name='WebBrowser2' then begin Label0.Caption:=Comp.Name; end else begin Label0.Caption:=''; end; end else Label0.Caption:=''; //******************************************************** } end; //Label0.Caption:= マウスカーソル直下のWebBrowser名 //Label1.Caption:= WebBrowser1に表示しているフォルダパス //Label2.Caption:= WebBrowser2に表示しているフォルダパス function MouseProc(nCode: Integer; wParam, lParam: Longint): Longint; stdcall; var Str : String; ItemCount : Integer; hListView : HWND; procedure FileNameGet; var iState : Integer; i : Integer; mask : Integer; pszText : array[0..255] of AnsiChar; begin mask := LVIS_SELECTED; for i:=0 to ItemCount-1 do begin iState := ListView_GetItemState(hListView,i,mask); if (iState and LVIS_SELECTED)<>0 then begin ListView_GetItemText(hListView,i,0,pszText,SizeOf(pszText)); Str:= pszText; break; end; end; end; var szClassName : array[0..255] of Char; begin if (nCode < 0) then begin Result := CallNextHookEx(HookID, nCode, wParam, lParam); exit; end; if (wParam = WM_LBUTTONDBLCLK) then begin if Form1.Label0.Caption='WebBrowser1' then begin hListView := FindChildOfClass(Form1.WebBrowser1.Handle,LV_Name); end else if Form1.Label0.Caption='WebBrowser2' then begin hListView := FindChildOfClass(Form1.WebBrowser2.Handle,LV_Name); end else begin Result := HC_SKIP; exit; end; ItemCount := ListView_GetItemCount(hListView); GetClassName(PMOUSEHOOKSTRUCT(lParam)^.HWND,szClassName,SizeOf(szClassName)); if lstrcmp(@szClassName[0], @LV_name[1]) = 0 then begin FileNameGet; if Form1.Label0.Caption='WebBrowser1' then begin str:=Form1.Label1.Caption+'\'+str; Form1.memo1.Lines.Add(str); end else if Form1.Label0.Caption='WebBrowser2' then begin str:=Form1.Label2.Caption+'\'+str; Form1.memo1.Lines.Add(str); end; Result := HC_SKIP; exit; end; end; Result := CallNextHookEx(HookID, nCode, wParam, lParam); end; ありがとうございました。 ご報告まで。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.