Ĺadny brzuch
Jak nadać pozycję wskaźnika myszy.
Powiedzmy, że chce żeby po naciśnięciu jakiegoś przycisku kursor znalazł się w pozycji ekranu: 100,100.
O ile dobrze pamiętam to:SetCursorPos(100,100);
To ustawia pozycję na całym ekranie a jak ograniczyć się tylko do obszaru jednego komponentu np Image.
Problem w tym, że poruszam się po Image i chce żeby myszka skakała co 4 piksele (komponent image nie wypełnia całego obszaru formy).
SetCursorPos(FORMA.Left + IMG.Left + 100,FORMA.Top + IMG.Top + 100);
FORMA : TForm;
IMG : TImage;
Jak chcesz zrobił przeskoki co 4pix?(popatrz na szybkość i ekonomie bo ja tego nie widze :P )
SetCursorPos(FORMA.Left + IMG.Left + 100,FORMA.Top + IMG.Top + 100);
FORMA : TForm;
IMG : TImage;
Jak chcesz zrobił przeskoki co 4pix?(popatrz na szybkość i ekonomie bo ja tego nie widze :P )
No niestety to nie działa dobrze
No sprawdziłem i rzeczywiście - pasek ma chyba 32pix ale pewien nie jestem.
Lepszym rozwiązaniem będzie obliczanie punktów wg. Left i Top TForm na onmove TImage.
//+30pix w pionie w XP
////+4pix w poziomie w XP
IMO jak chodzi tylko o jeden komponent to po co odowływać sie do współrzędnych formy, jak można odwołać sie do współrzędnych teo obrazka i problem z paskiem znika ;-).
A ClientHeight nie jest wysokoscia okna bez paska? :> jesli jest wystarczy odjac go od Height i otrzymamy wysokosc paska tytulowego ;]
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Powiedzmy, że chce żeby po naciśnięciu jakiegoś przycisku kursor znalazł się w pozycji ekranu: 100,100.
O ile dobrze pamiętam to:SetCursorPos(100,100);
To ustawia pozycję na całym ekranie a jak ograniczyć się tylko do obszaru jednego komponentu np Image.
Problem w tym, że poruszam się po Image i chce żeby myszka skakała co 4 piksele (komponent image nie wypełnia całego obszaru formy).
SetCursorPos(FORMA.Left + IMG.Left + 100,FORMA.Top + IMG.Top + 100);
FORMA : TForm;
IMG : TImage;
Jak chcesz zrobił przeskoki co 4pix?(popatrz na szybkość i ekonomie bo ja tego nie widze :P )
SetCursorPos(FORMA.Left + IMG.Left + 100,FORMA.Top + IMG.Top + 100);
FORMA : TForm;
IMG : TImage;
Jak chcesz zrobił przeskoki co 4pix?(popatrz na szybkość i ekonomie bo ja tego nie widze :P )


No niestety to nie działa dobrze
No sprawdziłem i rzeczywiście - pasek ma chyba 32pix ale pewien nie jestem.
Lepszym rozwiązaniem będzie obliczanie punktów wg. Left i Top TForm na onmove TImage.
//+30pix w pionie w XP
////+4pix w poziomie w XP

IMO jak chodzi tylko o jeden komponent to po co odowływać sie do współrzędnych formy, jak można odwołać sie do współrzędnych teo obrazka i problem z paskiem znika ;-).
A ClientHeight nie jest wysokoscia okna bez paska? :> jesli jest wystarczy odjac go od Height i otrzymamy wysokosc paska tytulowego ;]