Differenze tra le versioni di "Stampare un Controllo grafico posto sul Form"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Ogni Controllo (Oggetto) grafico, posto sul Form, è in definitiva una finestra inglobata nel Form medesimo. <BR>Per stampare un Controllo grafico, è necessario individuare d...")
 
Riga 22: Riga 22:
 
   
 
   
 
  '''Public''' Sub Button1_Click()
 
  '''Public''' Sub Button1_Click()
 +
 
 +
  With Printer1
 +
    .Paper = .A4
 +
    .Resolution = Desktop.Resolution
 +
    .Print
 +
  End With
 +
 
 +
'''End'''
 +
 +
'''Public''' Sub Printer1_Draw()
 
    
 
    
 
   Dim dw As DesktopWindow
 
   Dim dw As DesktopWindow
 
   Dim im As Image
 
   Dim im As Image
+
 
 
  <FONT Color=gray>' ''Individua la "finestra della "GridView" mediante il fuo identificatore:''</font>
 
  <FONT Color=gray>' ''Individua la "finestra della "GridView" mediante il fuo identificatore:''</font>
 
   With dw = New DesktopWindow(GridView1.Handle)
 
   With dw = New DesktopWindow(GridView1.Handle)
Riga 32: Riga 42:
 
   End With
 
   End With
 
    
 
    
   With Printer1
+
   With Paint
     .OutputFile = "/tmp/prova_stampa.pdf"
+
     .DrawImage(im, GridView1.X, GridView1.Y, GridView1.W, GridView1.H, 1.0, Null)
     .Print
+
    .Fill
 +
     .End
 
   End With
 
   End With
 
    
 
    
 
  '''End'''
 
  '''End'''

Versione delle 14:26, 21 mag 2021

Ogni Controllo (Oggetto) grafico, posto sul Form, è in definitiva una finestra inglobata nel Form medesimo.
Per stampare un Controllo grafico, è necessario individuare dunque il numero identificativo di tale Controllo, ossia della sua finestra, e passarlo alla Classe "DesktopWindow" del Componente "gb.desktop.x11".

Mostriamo un esempio pratico commentato, nel quale sul Form principale è posta una "GridView" che sarà dunque stampata.
E' necessario attivare il Componente "gb.desktop.11".

 Public Sub Form_Open()
 
 Dim r, c As Byte
 
 With GridView1
   .Rows.Count = 5
   .Columns.Count = 5
 End With
  
 For r = 0 To 4
   For c = 0 To 4
     GridView1[r, c].Text = "abcde"
   Next 
 Next

End

Public Sub Button1_Click()
 
 With Printer1
   .Paper = .A4
   .Resolution = Desktop.Resolution
   .Print
 End With
 
End

Public Sub Printer1_Draw()
 
 Dim dw As DesktopWindow
 Dim im As Image
 
' Individua la "finestra della "GridView" mediante il fuo identificatore:
 With dw = New DesktopWindow(GridView1.Handle)
' Cattura l'immagine della "GridView":
   im = .GetScreenshot(True).Image
 End With
 
 With Paint
   .DrawImage(im, GridView1.X, GridView1.Y, GridView1.W, GridView1.H, 1.0, Null)
   .Fill
   .End
 End With
 
End