Witam, zrobiłem sobie Painta, ale mam problem z czyszczeniem. Na obrazek chce nałożyć prostokąt o odpowiednik wymiarach ( nałożyć ), aby de facto zmazać poprzednią pracę. Robię to tak:
Image1->Canvas->FillRect(Rect(0,0,100,100));
Ale nie działa...
Witam, zrobiłem sobie Painta, ale mam problem z czyszczeniem. Na obrazek chce nałożyć prostokąt o odpowiednik wymiarach ( nałożyć ), aby de facto zmazać poprzednią pracę. Robię to tak:
Image1->Canvas->FillRect(Rect(0,0,100,100));
Ale nie działa...
Powinieneś użyć jedną z dwóch wersji:
Rysuje w PaintBox1 w OnPaint, obrazek czyszcze w ten sposób:
PaintBox1->Refrehs()
działa, ale teraz chce zmienić tło PaintBox1
PaintBox1->Color=clRed
TO już nie działa...
Box->Canvas->Brush->Color=clRed;
Box->Canvas->FillRect(Rect(0,0,100,100));
Pomogłeś mi dziękuje, kolejna sprawa to taka, że nie działają mi style Pisaka ( Pen )
W PaintBox1 w zdarzeniu OnMouseDown, ustawiam:
PaintBox1->Canvas->Brush->Style = bsClear;
PaintBox1->Canvas->Pen->Style = bsDiagCross;
Zresztą nawet jak dam do OnMouseMove także nie działa mi styl. Natomiast kolor tak.
bsClear - to bs z przodu oznacza Brush Style - przypisujesz do Brush->Style
psClear - to ps z przodu oznacza Pen Style - przypisujesz do Pen->Style
nie wolno mieszać
Kolejny problem
W GroupBox Ustawiam sobie 3 komponenty RadioButton, w każdym kod np;
PaintBox1->Canvas->Pen->Width=5;
Po zmianie ze standardowego rozmiaru na rozmiar "5" czyli po zaznaczeniu RadioBoxa widać tą nową kreskę dopiero po innej operacji np. po przełączeniu znowu na RadioButton1....
Niestety nadal to samo..
Całe rysowanie ma się odbywać w OnPaint.
Tak jak zrobiłeś to nie jest poprawnie, narysuj linię, zminimalizuj program i znów podnieś, rysunek zniknie.
Masz zapamiętać wszystkie ustawienia w klasie i wszystko rysować w OnPaint.
Trochę tego nie przetrawiam, zdawałem sobie sprawie, że po naciśnięciu myszki program zmienia zmienną logiczną a true oraz określa położenia kursora, I dalej idę w zdarzeniu OnMouseMove, nie wiem jak mam to zrobić w OnPaint, nie widzę tego..