Disegnare in una DrawingArea un carattere punto per punto

Da Gambas-it.org - Wikipedia.
Versione del 23 nov 2024 alle 10:36 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

E' possibile disegnare un carattere (ad esempio una lettera dell'alfabeto) punto per punto (o meglio: pixel per pixel) su una DrawingArea mediante il metodo .FillRect() della Classe Paint.

Nell'esempio che segue sarà disegnata la lettera "p" dell'alfabeto:

Public Sub Form_Open()

 Dim DrawingArea1 As DrawingArea

 Me.Arrangement = Arrange.Fill

 With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
   .X = 0
   .Y = 0
   .Background = Color.White
 End With

End


Public Sub DrawingArea1_Draw()
 
 Dim t, b, j, i As Byte
 Dim ii As Integer[] = [&FFFFFF, &FFFFFF, &000000, &000000, &000000, &FFFFFF, &FFFFFF, &FFFFFF,
                        &FFFFFF, &FFFFFF, &000000, &FFFFFF, &FFFFFF, &000000, &FFFFFF, &FFFFFF,
                        &FFFFFF, &FFFFFF, &000000, &FFFFFF, &FFFFFF, &000000, &FFFFFF, &FFFFFF,
                        &FFFFFF, &FFFFFF, &000000, &FFFFFF, &FFFFFF, &000000, &FFFFFF, &FFFFFF,
                        &FFFFFF, &FFFFFF, &000000, &000000, &000000, &FFFFFF, &FFFFFF, &FFFFFF,
                        &FFFFFF, &FFFFFF, &000000, &FFFFFF, &FFFFFF, &FFFFFF, &FFFFFF, &FFFFFF,
                        &FFFFFF, &FFFFFF, &000000, &FFFFFF, &FFFFFF, &FFFFFF, &FFFFFF, &FFFFFF,
                        &FFFFFF, &FFFFFF, &000000, &FFFFFF, &FFFFFF, &FFFFFF, &FFFFFF, &FFFFFF]

  t = 100
   
  With Paint
    For j = 0 To 7
      For b = 0 To 7
        .FillRect(t + b, t + j, 1, 1, ii[i])
' oppure:.Brush = .Color(ii[i])
       ' .Arc(t + b, t + j, 1, Rad(0), Rad(360), False)
       ' .Fill
        Inc i
      Next
    Next
    .End
  End With  

End