Właściwość AutoRedrawWłaściwość AutoRedraw ustawia lub zwraca wartość określającą sposób automatycznego odtwarzania grafiki stworzonej przez metody graficzne. Wykorzystywana jest, gdy stworzona przy pomocy tych metod grafika może zostać przesłonięta przez inne okno.Składnia właściwości AutoRedraw: obiekt.AutoRedraw [=boolean] obiekt to obiekt który wykorzystuje właściwość AutoRedraw, dostępny na liście boolean to wyrażenie typu Boolean określające sposób odtwarzania grafiki:
Właściwość AutoRedraw pracuje z metodami graficznymi: Circle, Cls, Line, Point, Print, and PSet. Ustawienie właściwości AutoRedraw na True powoduje automatyczne odtworzenie grafiki stworzonej przy pomocy tych metod na obiekcie formy lub kontrolce PictureBox, np. po zmianie rozmiarów obiektu lub przy odtworzeniu obiektu, który był przysłonięty prze z inny obiekt. Można zmieniać wartość właściwości AutoRedraw w fazie wykonywania, aby przełączać pomiędzy rysowaniem trwałej grafiki (jak tło lub siatka) a grafiką tymczasową. Jeżeli właściwość AutoRedraw ma wartość False to poprzednio stworzona grafika staje się częścią tła. Kiedy właściwość AutoRedraw jest ustawiona na False, to grafika "w tle" nie jest usuwana przy wykorzystaniu metody Cls do wyczyszczenia obszaru rysowania. Ustawienie właściwości AutoRedraw ponownie na True i użycie metody Cls spowoduje usunięcie grafiki "w tle". Jeżeli ustawiona jest właściwość BackColor to cała grafika i tekst, włączając grafikę trwałą, zostanie usunięta. Ogólnie cała grafika może być wyświetlana z użyciem zdarzenia Paint o ile właściwość AutoRedraw nie jest ustawniona na True. Aby odzyskać grafikę trwałą stworzoną podczas gdy właściwość AutoRedraw jest ustawiona na True, należy użyć właściwości Image. Aby przekazać grafikę trwałą do Windows API kiedy właściwość AutoRedraw jest ustawiona na True, należy użyć właściwości hDC obiektu. Jeżeli właściwość AutoRedraw formy jest ustawiona na False, to po zminimalizowaniu jej, właściwości ScaleHeight i ScaleWidth zostają zmienione do rozmiarów ikony. Jeżeli właściwość AutoRedraw jest ustawiona na True, to ScaleHeight i ScaleWidth przechowują wartości rozmiarów odtwarzanego (przywracanego) okna. Jeżeli właściwość AutoRedraw jest ustawiona na False, to metoda Print będzie rysować "na wierzchu" kontrolki graficznej (jak Image albo Shape. Lista obiektów wykorzystujących właściwość AutoRedraw: Form PictureBox PropertyPage UserControl UserDocument Przykład użycia właściwości AutoRedraw: Option Explicit Private Sub Command1_Click() Picture1.AutoRedraw = Not (Picture1.AutoRedraw) Label1 = Picture1.AutoRedraw 'zmien autoredraw End Sub Private Sub Command2_Click() Picture1.Circle (50, 50), 30 'rysuj koło End Sub Private Sub Command3_Click() Dim I For I = 5 To 95 Step 10 'rysuj linie Picture1.Line (I, 0)-(I, 100) Next End Sub Private Sub Command4_Click() Picture1.Cls 'czysc obraz End Sub Private Sub Form_Load() Form1.Width = 5000 Form1.Height = 5000 'ustaw rozmiary formy Picture1.Top = 100 Picture1.Left = 100 Picture1.Height = 3000 Picture1.Width = 3000 Picture1.ScaleHeight = 100 Picture1.ScaleWidth = 100 'ustaw rozmiary obrazka Picture1.ForeColor = 0 'ustaw kolor Picture1.FillColor = QBColor(9) 'ustaw kolor wypelnienia Picture1.FillStyle = 0 'ustaw rodzaj wypelnienia Command1.Caption = "&Zmień AUTOREDRAW" Command1.Left = 100 Command1.Top = 3500 Command1.Width = 3000 Command1.Height = 500 'ustaw parametry przycisku 1 Command2.Caption = "&Koło" Command2.Left = 3500 Command2.Top = 100 Command2.Width = 1000 Command2.Height = 500 'ustaw parametry przycisku 2 Command3.Caption = "&Linie" Command3.Left = 3500 Command3.Top = 1000 Command3.Width = 1000 Command3.Height = 500 'ustaw parametry przycisku 3 Command4.Caption = "&Czyść" Command4.Left = 3500 Command4.Top = 2000 Command4.Width = 1000 Command4.Height = 500 'ustaw parametry przycisku 4 Label1.Left = 3500 Label1.Top = 3500 Label1.AutoSize = True Label1.Caption = Picture1.AutoRedraw End Sub Kontrolki CommandButton, Label, PictureBox, Form, właściwości: AutoSize, Caption, FillColor, FillStyle, ForeColor, Height, Left, ScaleHeight, ScaleWidth, Top, Width, metody: Circle, Cls, Line, operator Not, funkcja QBColor(), Zmienne i pętla For zostały opisane w innych częściach kursu. Aby sprawdzić działanie przykładu należy na czystej formie utworzyć cztery obiekty typu CommandButton, jeden typu Label i jeden typu PictureBox pozostawiając ich domyślne nazwy, a następnie do okna kodu wprowadzić kod przykładu. Przykład ten umieszcza na formie przyciski, etykietę i obraz. Jeden z przycisków powoduje narysowanie koła wewnątrz obrazu, drugi powoduje narysowanie linii, trzeci służy do czyszczenia obszaru rysunku, a czwarty powoduje zmianę właściwości AutoRedraw obrazu. Można zauważyć jak wartość właściwości AutoRedraw wpływa na sposób rysowania i czyszczenia obrazu. Jeżeli przy AutoRedraw ustawionym na True narysowane zostanie koło, a potem przy AutoRedraw=False narysowane zostaną linie, to użycie metody Cls obrazka (przy AutoRedraw=False) spowoduje wyczyszczenie linii, podczas gdy koło pozostanie w obrazie. |