Builder C++ canvas

0

Witam. Programuje w C++ Builder. I mam problem. Mam rysunek prostokąta z zaokrąglonymi rogami narysowanym za pomocą Canvas. Obok nachodzi na niego koło narysowane Shapem. I chce aby cały mój prostokąt był widoczny pod tym kołem czy na tym kole ale jest tak że koło przykrywa powierzchnią swoją mi ten prostokąt nawet większą niż średnica tego koła. Nie wiem jak tu zadziałać juz wiele próbowałem i nic.

0

Narysuj koło na canvasie a potem ten roundrect ? ;p

0

Tak działa owszem ale zapomniałem dodać ze kółeczko po naciśnięciu klawisza rośnie w przypadku gdy rysowałem kółeczko Canvas to rosło ale tylko w jedną stronę i pozostawiło po sobie poprzednie kółka. A kółeczko ma sobie iść do góry dlatego spróbowałem Shape kółeczko ale jest problem bo mi zamazuje prostokąt.

0

To w razie potrzeby przerysowania odswiez canvasa ;) Chocby zamalowujac go prostokatem w kolorze tla, a potem rysujac to, co trzeba.

0

Dokładnie. Kiedy skalujesz kółko wyczyść canvasa i odrysuj wszystko od nowa. Jeśli to canvas który jest bezpośrednio widoczny, to zrób sobie w pamięci TCanvas czy TBitmap (chyba to 2) i zrób na nim operacje a potem przerysuju na ekran, inaczej będzie mrygał obraz.

0

Tak właśnie próbuje ale aby w momencie kliknięcie kółeczko rosło a Canvas rysował się od nowa lecz za bardzo mi nie idzie. No i jeszcze mam kilka pomysłów żeby zamalowywać rysunki Canvas ale póki co poprzednie nie działają. Dzięki za porady będę próbował dalej.

0

Żeby zamalować dajesz po prostu fillrect() w rozmiarze canvasa i kolorze tła.

0
void __fastcall TForm1::Button5Click(TObject *Sender)
{
double i=25;
double j=10; 
if (Shape1->Height<=200)
{
Shape1->Height+=i;
Shape1->Top-=j;
}

Canvas->RoundRect(205,635,285,735,10,10);;

}

Udało mi się wyczyścić Form z Canvas ale nadal kółeczko zasłania mi kwadrat. Zrobiłem że rysowało od nowa ale rysował kawałek a nie że cały czas widoczny jest mój prostokąt;/. Próbuje dalej, a podpowiedziami nie gardzę;)/ Pozdrawiam

0

Dobra udało się kółeczko nie zamazuje mi prostokąta. Wstawiłem rysowanie w akcji OnPaint. I w momencie włączenie jedyny problem to taki że rysunek jest niekompletny muszę zresetować przyciskiem pole i wcisnąć przycisk który rysuje od nowa. Powoli może dojdę do sukcesu;)

0

Teraz się głowie nad tym aby przed wciśnięciem przycisku który rysuje prostokąt nie był on już namalowany (choć nie musi ale teraz jest tak że ten prostokąt jest niekompletny). A i teraz kółko powinno by ć tyle widoczne ile wystaje za prostokąt a widać całe na prostokącie nie chowa się za niego.

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