Einzelnen Beitrag anzeigen

Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Rechtsklick auf TreeView Item in einem Fenster

  Alt 30. Aug 2007, 22:36
Zitat von Die Muhkuh:
Da werde ich wohl erst noch runterscrollen müssen.

[edit] Nach dem Scrollen funktioniert es wieder 1a. Danke vielmals [/edit]
Hi,

du könntest auch das gesuchte Item als TopItem setzen, dann kurz warten und erst danach die Position des Items abfragen. Um das Item als TopItem zu setzen könntest du den Code so abändern:
Delphi-Quellcode:
        ...
        and ReadProcessMemory(hProc, Pointer(Cardinal(MemR)+ SizeOf(TTvItem)), Pointer(Cardinal(MemL)+ SizeOf(TTvItem)), SizeOf(TRect), BytesR) then
        begin
          ItemRect:= PRect(Cardinal(MemL)+ SizeOf(TTvItem))^;
          if PChar(Cardinal(MemL) + SizeOf(TTVItem)+ SizeOf(TRect))= 'Arbeitsplatzthen
          begin
             SendMessage(hTree, TVM_SELECTITEM, TVGN_FIRSTVISIBLE, Cardinal(hItem));//als TopItem setzen

             (*windows.GetWindowRect(hTree, TreeRect);
            SetCursorPos(TreeRect.Left+ (ItemRect.Right+ ItemRect.Left) div 2,TreeRect.Top+ (ItemRect.Bottom+ ItemRect.Top) div 2);
            mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
             mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0); *)

          end;
          ...
Damit wird praktisch automatisch auf die richtige Position gescrollt. Getestet mit dem Windows Explorer unter Windows XP.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat