Wypełnienie komponentu TImage

Wypełnienie komponentu TImage
P2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 138
0

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:

Kopiuj
Image1->Canvas->FillRect(Rect(0,0,100,100));

Ale nie działa...

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1

Powinieneś użyć jedną z dwóch wersji:

  1. Rysujesz na konkretną TBitmap a potem Image1->Graphics->Assign(Bmp);
  2. Użyć TPainBox, rysować w zdarzeniu OnPaint, dla przerysowywania wystarczy Invalidate().
P2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 138
0

Rysuje w PaintBox1 w OnPaint, obrazek czyszcze w ten sposób:

Kopiuj
 PaintBox1->Refrehs()

działa, ale teraz chce zmienić tło PaintBox1

Kopiuj
 PaintBox1->Color=clRed

TO już nie działa...

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Box->Canvas->Brush->Color=clRed;
Box->Canvas->FillRect(Rect(0,0,100,100));

P2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 138
0

Pomogłeś mi dziękuje, kolejna sprawa to taka, że nie działają mi style Pisaka ( Pen )

W PaintBox1 w zdarzeniu OnMouseDown, ustawiam:

Kopiuj
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.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

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ć

P2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 138
0

Kolejny problem

W GroupBox Ustawiam sobie 3 komponenty RadioButton, w każdym kod np;

Kopiuj
 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....

P2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 138
0

Niestety nadal to samo..

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

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.

P2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 138
0

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..

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.