Differenze tra le versioni di "Centrare un oggetto grafico all'interno di un Contenitore"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per centrare un Oggetto grafico all'interno del proprio Contenitore ''Padre'', si potrà provvedere mediante apposito calcolo. Mostriamo un esempio, nel quale una ''Label'' c...")
 
Riga 1: Riga 1:
Per centrare un Oggetto grafico all'interno del proprio Contenitore ''Padre'', si potrà provvedere mediante apposito calcolo.
+
Consideriamo qui tre tipi di porre al centro un ''Controllo'' rispetto al suo Contenitore ''Padre'':
 +
* centrare il Controllo orizzontalmente;
 +
* centrare il Controllo verticalmente;
 +
* centrare il Controllo sia orizzontalmente, sia verticalmente.
  
 +
==Centrare orizzontalmente il ''Controllo'' rispetto alle dimensioni del suo Contenitore==
 +
Nel centrare "orizzontalmente" un Oggetto grafico all'interno del proprio Contenitore ''Padre'', non si terrà conto della sua posizione sull'asse della y del ''Contenitore'' medesimo.
 +
<BR>Si provvederà mediante un calcolo tra la sua dimensione e quella del proprio Contenitore===
 +
Public Sub Form_Open()
 +
 +
  Dim hButton As Button
 +
 +
  With hButton = New Button(Me) As "Button1"
 +
    .W = 100
 +
    .H = 50
 +
    .X = (Me.W - .W) / 2
 +
    .Y = 250
 +
  End With
 +
 +
End
 +
 +
 +
==Centrare verticalmente il ''Controllo'' rispetto alle dimensioni del suo Contenitore==
 +
Nel centrare "verticalmente" un Oggetto grafico all'interno del proprio Contenitore ''Padre'', non si terrà conto della sua posizione sull'asse della x del ''Contenitore'' medesimo.
 +
Si provvederà anche in questo caso mediante un calcolo tra la sua dimensione e quella del proprio Contenitore.
 +
Public Sub Form_Open()
 +
 +
  Dim hButton As Button
 +
 +
  With hButton = New Button(Me) As "Button1"
 +
    .W = 100
 +
    .H = 50
 +
    .X = 250
 +
    .Y = (Me.H - .H) / 2
 +
  End With
 +
 +
End
 +
 +
 +
==Centrare sia orizzontalmente sia verticalmente il ''Controllo'' rispetto alle dimensioni del suo Contenitore==
 +
In sostanza in questo caso si porrà il ''Controllo'' esattamente al centro del proprio Contenitore.
 +
 +
===Uso degli Oggetti ''HBox'' e ''Spring''===
 +
Si potrà fare uso degli Oggetti grafici ''HBox'' e ''Spring'': <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
 +
Public Sub Form_Open() 
 +
 +
  Dim hControl As HBox
 +
  Dim hSpring As Spring
 +
  Dim hButton As Button
 +
 
 +
  With Me
 +
    .W = 500
 +
    .H = 500
 +
    .Arrangement = Arrange.Vertical
 +
  End With
 +
  With hControl = New HBox(Me)
 +
    .Expand = True
 +
  End With
 +
  With hControl = New HBox(Me)
 +
    .H = 28
 +
  End With
 +
  hSpring = New Spring(hControl)
 +
  With hButton = New Button(hControl) As "Button1"
 +
    .AutoResize = True
 +
    .Text = "Click me !"
 +
  End With
 +
  hSpring = New Spring(hControl)
 +
  With hControl = New HBox(Me)
 +
    .Expand = True
 +
  End With
 +
 +
End
 +
 +
===Mediante un calcolo tra la sua dimensione e quella del proprio Contenitore===
 
Mostriamo un esempio, nel quale una ''Label'' colorata viene posizionata al centro del ''Form'':
 
Mostriamo un esempio, nel quale una ''Label'' colorata viene posizionata al centro del ''Form'':
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
 
   With Label1
 
   With Label1
Riga 10: Riga 82:
 
   End With
 
   End With
 
   
 
   
  '''End'''
+
  End
 +
 
 +
 
 +
 
 +
=Note=
 +
[1] Il codice è stato suggerito dal membro [https://www.gambas-it.org/smf/index.php?action=profile;u=1249 Gianluigi] del forum www.gambas-it.org.

Versione delle 08:06, 23 giu 2023

Consideriamo qui tre tipi di porre al centro un Controllo rispetto al suo Contenitore Padre:

  • centrare il Controllo orizzontalmente;
  • centrare il Controllo verticalmente;
  • centrare il Controllo sia orizzontalmente, sia verticalmente.

Centrare orizzontalmente il Controllo rispetto alle dimensioni del suo Contenitore

Nel centrare "orizzontalmente" un Oggetto grafico all'interno del proprio Contenitore Padre, non si terrà conto della sua posizione sull'asse della y del Contenitore medesimo.
Si provvederà mediante un calcolo tra la sua dimensione e quella del proprio Contenitore===

Public Sub Form_Open()

 Dim hButton As Button

 With hButton = New Button(Me) As "Button1"
   .W = 100
   .H = 50
   .X = (Me.W - .W) / 2
   .Y = 250
 End With

End


Centrare verticalmente il Controllo rispetto alle dimensioni del suo Contenitore

Nel centrare "verticalmente" un Oggetto grafico all'interno del proprio Contenitore Padre, non si terrà conto della sua posizione sull'asse della x del Contenitore medesimo. Si provvederà anche in questo caso mediante un calcolo tra la sua dimensione e quella del proprio Contenitore.

Public Sub Form_Open()

 Dim hButton As Button

 With hButton = New Button(Me) As "Button1"
   .W = 100
   .H = 50
   .X = 250
   .Y = (Me.H - .H) / 2
 End With

End


Centrare sia orizzontalmente sia verticalmente il Controllo rispetto alle dimensioni del suo Contenitore

In sostanza in questo caso si porrà il Controllo esattamente al centro del proprio Contenitore.

Uso degli Oggetti HBox e Spring

Si potrà fare uso degli Oggetti grafici HBox e Spring: [nota 1]

Public Sub Form_Open()   

 Dim hControl As HBox
 Dim hSpring As Spring
 Dim hButton As Button
 
 With Me
   .W = 500
   .H = 500
   .Arrangement = Arrange.Vertical
 End With
 With hControl = New HBox(Me)
   .Expand = True
 End With
 With hControl = New HBox(Me)
   .H = 28
 End With
 hSpring = New Spring(hControl)
 With hButton = New Button(hControl) As "Button1"
   .AutoResize = True
   .Text = "Click me !"
 End With
 hSpring = New Spring(hControl)
 With hControl = New HBox(Me)
   .Expand = True
 End With

End

Mediante un calcolo tra la sua dimensione e quella del proprio Contenitore

Mostriamo un esempio, nel quale una Label colorata viene posizionata al centro del Form:

Public Sub Form_Open()

 With Label1
   .X = (Me.W - .W) / 2
   .Y = (Me.H - .H) / 2
   .Background = Color.Yellow
 End With

End


Note

[1] Il codice è stato suggerito dal membro Gianluigi del forum www.gambas-it.org.