Schimbați aspectul cursorului în zona sa de masă e

Modificați aspectul cursorului în MouseDown e

Pe formular există un buton MyButton: TButton când faceți clic pe acest buton vizualizarea cursorului cu crDefault ar trebui să se schimbe la crHandPoint.






Pentru asta, nu scriu la MyButtonMouseDown
MyButton.Cursor: = crHandPoint, dar cursorul nu se modifică.
Deci, cum schimbați cursorul?
Metoda prin intermediul Screen.Cursor să nu oferiți.

> Cum schimb cursorul?

Deci scrie: MyButton.Cursor: = crHandPoint. Doar nu este clar, de ce să selectați handlerul OnMouseDown, în loc de OnClick.


> OnClick

OnClick nu este universal. Acesta va servi pentru buton, dar pentru DBGrid "a nu există un astfel de eveniment.


> De ce să alegeți handlerul OnMouseDown, nu OnClick.

OnMouseDown este selectat deoarece cursorul ar trebui să fie schimbat făcând clic și nu pe Faceți clic pe "e.


> Deci, care este întrebarea? În căutarea unui "universală"
> evenimente?

Nu, nu este. Este necesar ca în DBGrid "cursorul să se schimbe în OnMouseDown".


> Minuni. În întrebare, TButton a apărut, acum "apare"






> TDbGrid. Cu toate acestea, acest lucru nu schimbă nimic.

Aveam nevoie atât de TButton "a și de TDBGtrid" a.
Și cursorul ar trebui să se schimbe când mouse-ul este apăsat. în "OnMouseDown" a acestor componente.
Deci, scriu codul în OnMouseDown "e DBGrid" a:
# xA0; DBGrid1.Cursor: = crHandPoint
Cursorul a fost crDefault și a rămas.
Alogonically totul se întâmplă pentru TButton "a.

Încercați acest lucru:
Plasați componenta ApplicationEvents pe formular și în manualul de scriere OnMessage scrieți:
dacă (Msg.hwnd = DBGrid1.Handle) și (Msg.message = WM_LBUTTONDOWN) atunci
dbgrid1.Cursor: = crHandPoint;

> Metoda prin Screen.Cursor să nu oferiți.

Și ce versiune nu se potrivea?


> Și dacă mutați mouse-ul, nu eliberați butonul - se schimbă?

nu


> Și această variantă nu se potrivea?

Trebuie să schimb doar cursorul DBGrid "a și nu întreaga aplicație.

- Când faceți clic pe schimbarea DBGrid.Cursor și Screen.Cursor
- Când apăsați pe Restore Screen.Cursor la starea anterioară

Când faceți clic pe mouse-ul în OnMouseDown, firește.

Deci nu am înțeles - [9] care nu funcționează?

> Deci nu am înțeles - [9] care nu funcționează?

Și cine ar trebui să știe dacă funcționează sau nu?

Deci, funcționează pentru mine. În mod normal funcționează. Pur și simplu, dacă funcționează, de ce întregul bazar? Asta am cerut.

IMHO, arată-te. utilizatorul și fără a sări peste cursoare va costa.

deși ca o problemă abstractă - este interesantă)

# xA0; Panel1.Cursor: = crHandPoint;
# xA0; ReleaseCapture


> # xA0; Panel1.Cursor: = crHandPoint;
> # xA0; ReleaseCapture

Mulțumesc, Jo. Mi-ai rezolvat problema.







Trimiteți-le prietenilor: