Stampare un Controllo grafico posto sul Form: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
(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...")
 
Nessun oggetto della modifica
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