Meni tvoj kod postavljen u prvoj poruci radi sasvim lepo. Medjutim...
Citat:
CursorX := GetClassLong(Handle, GCL_HCURSOR); // dopuna komentara - uzimamo kursor iz klase instance forme
Na prvu loptu, ova linija ne radi ono sto ti mozda ocekujes. Bez obzira koji kursor da izaberemo za svoju formu (kroz "Object Inspector"), vrednost CursorX koja se dobija ce biti ista (crDefault, 65541), jer GetClassLong() vraca trenutnu (obicno Windows default) vrednost kursora za datu
klasu (TForm), a ne instancu (tvoja konkretna forma). Medjutim, ako tu liniju zamenimo sa:
Citat:
CursorX := GetWindowLong(Handle, GCL_HCURSOR); // uzimamo kursor iz instance forme
... onda CursorX zaista dobija vrednost kursora koji je (trenutno) dodeljen formi (instanci klase forme), i onda ce i ostatak koda raditi shodno ocekivanju, gde ce Panel1 (i svi ostali paneli iste klase!) dobiti isti taj (ocekivani) kursor.
Probaj, pa javi sluzi li ti sluzi svrsi ovako.
Jos jednom napominjem da tvoj trenutni pristup sa SetClassLong() postavlja taj kursor za sve objekte tog tipa, a ne samo za jedan panel - ukoliko imas vise panela, svima ce kursor biti promenjen, bez obzira sto si koristio Panel1.Handle u pozivu. Ukoliko je to ono sto zelis, u redu je, u suprotnom bi mnogo laksa varijanta bila da ceo svoj kod jednostavno zamenis sa:
Citat:
Panel1.Cursor = Form1.Cursor // (tj. bolje Self.Cursor umesto Form1.Cursor, ako se nalazis u metodi klase kojoj pripada objekat Form1)
... tek da se ne komplikuje bez potrebe :)
Pozdrav, BugA