Cum de a crea un buton radio din Delphi

Cum de a crea un buton radio din Delphi.

Necesare pentru a crea programe butoane, dar rotund și cum să o facă nu știu, ajuta oameni buni!
Un subiect mai interesant de modul de a face acest lucru pe forma are o arie circulară atunci când treceți mouse-ul care va fi orice acțiune.

Dacă moștenesc de la TButton, acesta va fi făcut o treabă excelentă:

1. CreateParams set stil bs_OwnerDraw
2. CreateWnd a crea o regiune eliptică și atribuiți-l într-o cutie de buton
3. SetBounds reconstrui regiunea cu noi dimensiuni și alocați fereastră
4. Scrieți un mesaj și handler CN_DRAWITEM-l pentru a efectua desen pentru diferite stări (butonul nu este apăsat, butonul este apăsat, nu există nici o focalizare, există un accent), ca Windows nu poate desena butoane rotunde

Pentru o funcționalitate completă, trebuie să scrie, de asemenea, un mesaj stivuitoare:

5. CM_ENABLEDCHANGED
6. CM_FONTCHANGED
7. WM_LBUTTONDBLCLK

Trebuie remarcat faptul că, la o dată un astfel de buton este redesenat mai lent dreptunghiulare obișnuite.

Puteți crea butoane rotund cu Image
bitmap rotunde vtavlyaesh în Image, de exemplu, albastru.
Imagine transperent = true.
Numai atunci când apăsați mouse-ul # XA0; imagine trebuie să fie monitorizate
culoarea de sub cursor (nu sostovit probleme speciale).
În cazul în care culoarea de sub cursor când apăsați la fel cum se întâmplă ceva albastru sau un eveniment.
De asemenea, este posibil să se efectueze desen pentru diferite stări buton
înlocuind desene imagine.

> În cazul în care culoarea de sub cursor când apăsați același albastru care> există un anumit eveniment.

Și puteți utiliza teorema lui Pitagora

Și este posibil să se facă o componentă care interceptează WM_PAINT.

Nu putem folosi pur și simplu HemisphereButton chinuit și componenta. Există un buton și rotund, chiar și frumos (cu un gradient de umplere).

Dar unde să-l găsească?