Gambas-it

Gambas3 => Programmazione => Topic aperto da: vuott - 22 Febbraio 2018, 19:31:04

Titolo: Impedire l'accesso alle risorse di un Oggetto
Inserito da: vuott - 22 Febbraio 2018, 19:31:04
Poter e sapere dunque accedere alle aree di memoria di un Oggetto, significa poter modificare i valori delle sue proprietà.

......potrei addirittura impedire l'accesso (anche temporaneamente) alle risorse (Proprietà, Metodi, Eventi)  di un Oggetto.

Nell'esempio che segue poniamo sul Form una Label e un Button, poi impostiamo il seguente codice:
Codice: [Seleziona]
Public Sub Form_Open()

' Attribuiamo il colore rosso allo sfondo della Label:'
  Label1.Background = Color.Red

End


Public Sub Button1_Click()

  Dim st As Stream

' Accediamo al 1° membro della Struttura del file sorgente ".../gambasdevel/main/gbx/gbx_object.h", propria di ciascun Oggetto creato:'
   st = Memory VarPtr(Label1) For Write
   
' Assegnando il valore zero, "impediamo" l'accesso alla Struttura propria di - in questo caso - "Label1":
   Write #st, 0 As Integer
   st.Close

' Verifichiamo se l'Oggetto "Label1" è valido, nonché il valore d'indirizzo dell'Oggetto "Label1":
   Print Object.IsValid(Label1), Label1

' Proviamo la conferma, chiedendo sia stampato il valore del colore dello sfondo di "Label1";  ma succede che....:'
   Print Label1.Background

End