Autore Topic: Impedire l'accesso alle risorse di un Oggetto  (Letto 170 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.178
  • Ne mors quidem nos iunget
    • Mostra profilo
Impedire l'accesso alle risorse di un Oggetto
« il: 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
« Ultima modifica: 22 Febbraio 2018, 19:51:59 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »