Differenze tra le versioni di "Visualizzare l'elenco di tutti gli elementi rilevanti del linguaggio Gambas contenuti dal codice del progetto"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
Se si intende vedere l'elenco di tutti gli elementi rilevanti del linguaggio Gambas contenuti dal codice del progetto, è possibile dereferenziare opportunamente il ''Puntatore'' ottenuto dal Metodo "''Object.Address( )''", nel quale sia stato posto come suo argomento la parola-chiave "''Me''".
+
Se si intende vedere l'elenco di tutti gli elementi rilevanti del linguaggio Gambas contenuti dal codice del progetto, è possibile dereferenziare opportunamente il ''Puntatore'' ottenuto dal Metodo "Object.Address()", nel quale sia stato posto come suo argomento la parola-chiave "Me".
 
<BR>Gli elementi presenti nel codice possono essere anche dichiarati come "''Privati''".
 
<BR>Gli elementi presenti nel codice possono essere anche dichiarati come "''Privati''".
  
Riga 6: Riga 6:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    
  Dim p As Pointer
+
  Dim p As Pointer
  Dim s As String
+
  Dim s As String
 
    
 
    
 
   p = Object.Address(Me)
 
   p = Object.Address(Me)
Riga 20: Riga 20:
 
  '''Private''' Procedure Visualizza(po As Pointer)
 
  '''Private''' Procedure Visualizza(po As Pointer)
 
    
 
    
  Dim i As Integer
+
  Dim i As Integer
  Dim p1, p2 As Pointer
+
  Dim p1, p2 As Pointer
 
      
 
      
 
   p1 = Pointer@(po + SizeOf(gb.Pointer) * 5)
 
   p1 = Pointer@(po + SizeOf(gb.Pointer) * 5)

Versione delle 15:07, 11 ago 2021

Se si intende vedere l'elenco di tutti gli elementi rilevanti del linguaggio Gambas contenuti dal codice del progetto, è possibile dereferenziare opportunamente il Puntatore ottenuto dal Metodo "Object.Address()", nel quale sia stato posto come suo argomento la parola-chiave "Me".
Gli elementi presenti nel codice possono essere anche dichiarati come "Privati".


Mostriamo un semplice esempio pratico:

Public Sub Main()
 
  Dim p As Pointer
  Dim s As String
  
  p = Object.Address(Me)
  
  s = "Testo qualsiasi."
  
  Visualizza(p)
  
End


Private Procedure Visualizza(po As Pointer)
 
  Dim i As Integer
  Dim p1, p2 As Pointer
   
  p1 = Pointer@(po + SizeOf(gb.Pointer) * 5)
  p2 = Pointer@(p1)
  
  For i = 0 To 87
    If Byte@(p2 + i) > 0 Then
      Print Chr(Byte@(p2 + i));
    Else
      Print
    Endif
 Next
  Next
  
End

Per conoscere il nome del Modulo che contiene questo codice, si farà partire il ciclo For da -8 o più oltre.