OT: Delphi - opet scrollovani v D6 - problem

Prichy prichy@volny.cz
Sobota Leden 8 20:06:27 CET 2005


Zdravim vsechny a zadam o nasmerovani:

Kdyz jsem zjistil, ze v Delphi 6 nefunguje scrollovani
koleckem mysi  RichEditu (zatimco Memo chodi) a navic
jsem potreboval rolovat i ScrollBox (v nem 2 panely a nejake
 neokeni komponenty) napsal jsem si nasl. obsluhu OnMouseWheel XX

procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
var
  hWnd1, hWnd2,hWnd3,hWnd4,hWnd5: THandle;
  rPos: TPoint;
begin
  if boolean(GetCursorPos(rPos))
  then
  begin
  hWnd1 := WindowFromPoint(rPos);     // vraci handle z objektu pod  mysi
  hWnd2:= RichEdit1.Handle;
  hWnd5:= ListBox2.Handle;
  If hWnd1 = hWnd2 then RichEdit1.Perform(WM_VSCROLL,SB_LINEDOWN,0);
  If hWnd1 = hWnd5 then ListBox2.Perform(WM_VSCROLL,SB_LINEDOWN,0); // 
po uprave
  hWnd1 := WindowFromPoint(rPos);
  hWnd2:= ScrollBox1.Handle;
  hWnd3:= Panel3.Handle;
  hWnd4:= Panel4.Handle;
  If (hWnd1 = hWnd2) or (hWnd1=hWnd3) or (hWnd1=hWnd4) then 
ScrollBox1.Perform(WM_VSCROLL,SB_LINEDOWN,0);
 end;
end;

Chodi to slusne, kdyz je nad komponentou mys roluje se prave ona.

Ale pri dalsim vyvoji softu jsem na form umistil ListBox2, nastal problem.
Zustane-li focus na ListBoxu roluje tento i kdyz nechci. ( jsem mysi 
jinde a chci
rolovat komponentu pod mysi)  To znamena ListBox si ubsluhuje OnMouseWheelXX
a sam si roluje, coz je nezadouci.

Vi, prosim, nekdo jak tomu zamezit.


Dekuji za napady a prosim spise polopaticky, pravdepodobne
vim, ze pujde o "chytani zprav" a nejsem s tomto buhvijak zdatny :)

Prichy




Další informace o konferenci Hw-list