jak zrobić zeby kursor nie mógł wyjśc poza obszar formy?

Odpowiedz Nowy wątek
2006-08-23 16:17
cjv
0

Witam, jak zrobic w Delphi zeby kursor nie mógł wyjśc poza obszar formy? ewentualnie zeby jak uzytkownik bedzie probowal wyjsc poza obszar formy to zeby kursor ustawial sie na jej srodku. domyslam sie ze trzeba uzyc tego:GetCursorPos(xy); ale nie mam pojecia co dalej, szukalem na forach i w googlach i nic :-|


Pozostało 580 znaków

2006-08-23 16:28
0

albo dokładnie taka porada jest na tej stronie albo bardzo podobna
http://cyfbar.republika.pl/
w każdym razie poczytaj porady to napiszesz to sam :)

/edit
ha znalazłem
http://cyfbar.republika.pl/curious.html#cur2

Pozostało 580 znaków

2006-08-23 17:22
cjv
0

ale podales mi z C++ a jak zrobic to w delphi?????????????


Pozostało 580 znaków

2006-08-23 17:47
0

aj, w tym kodzie nie ma nawet co tłumaczyć na delphi

 TRect R = Rect(Left + Memo1->Left + 4,
                Top + Memo1->Top + 30,
                Left + Memo1->Left + Memo1->Width + 4,
                Top + Memo1->Top + Memo1->Height + 30);
 ClipCursor(&R);

hmm ..
var
R : TRect;
begin
R.Left = Left + Memo1.Left + 4;
R.Top = Top + Memo1.Top + 30;
R.Right = Left + Memo1.Left + Memo1.Width + 4;
R.Bottom = Top + Memo1.Top + Memo1.Height + 30;
ClipCursor( ^R) ;

Nie mam pojęcia czy to jest dobrze dawno nie pisałem w delphi

Pozostało 580 znaków

2006-08-23 17:54
cjv
0

wywala bląd przy: ClipCursor( ^R) ;
[Error] Unit1.pas(35): Incompatible types: 'Char' and 'PRect'
hehe widocznie cos tam trzeba tlumaczyc:)


Pozostało 580 znaków

2006-08-23 18:40
0
cjv napisał(a)

wywala bląd przy: ClipCursor( ^R) ;
[Error] Unit1.pas(35): Incompatible types: 'Char' and 'PRect'
hehe widocznie cos tam trzeba tlumaczyc:)

hmm, tam ma być referencja do recta, nie wiem jak wygląda referencja w delphi wydawało się że tak "^"
spróbuj jeszcze napisać tak:
ClipCursor( R);

i koniecznie do uses dodaj windows

Pozostało 580 znaków

2006-08-24 14:08
cjv
0

dlaej nie dziala;(

ehhh moze ktos jednak wie jak to zrobic w delphi?;> nijak sobie z tym nie radze a jest mi bardzo potrzebne


Pozostało 580 znaków

2006-08-27 18:10
0
var R:TRect;
begin
R:=Rect(100, 100, 200, 200);
ClipCursor(@R);
end;

Pamiętaj, że po każdej zmianie stanu okna powinieneś wywołać to ponownie.

Edycja: komentarz do poniższego - jak chcesz ograniczyć kursor do ruchu tylko po powierzchni okna, a nie jego obszarze systemowym, zerknij na ten kod:

R:=GetClientRect();
R.TopLeft:=ClientToScreen(R.TopLeft);
R.BottomRight:=ClientToScreen(R.BottomRight);
ClipCursor(@R);

<font color="red">Konto porzucone</span>

Dzięki wszystkim forumowiczom za lata wspólnych dyskusji; miłej zabawy w programowanie!
Sławomir 'Szczawik' Włodkowski

Pozostało 580 znaków

2006-08-27 19:21
cjv
0

Umieszczam to w tym dziale bo mysle ze może sie niejednemu przydać, ale decyzja i tak nalezy do moderatora;) a wiec to trzeba wkleic zeby kursor myszy nie mogl wyjsc poza forme:

var
R : TRect;
begin
R.Left :=  form1.Left ;
R.Top :=   form1.Top  ;
R.Right :=  form1.Left + form1.Width;
R.Bottom := form1.Top + form1.Height ;
ClipCursor( @R) ;

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0