Differenze tra le versioni di "Posizione equidistante di un Oggetto rispetto al margine destro del suo Contenitore e ad un punto alla sua sinistra"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
Per posizionare un Oggetto all'interno di un Contenitore in modo tale che esso sia equidistante sia rispetto al margine destro del suo Contenitore che ad un punto posto alla sua sinistra, si può adottare la seguente formula:  <SUP>[ [[#Nota|nota 1]] ]</sup>
+
Per posizionare un Oggetto grafico all'interno del suo Contenitore, in modo tale che esso sia equidistante sia rispetto al margine destro del suo Contenitore che ad un punto posto alla sua sinistra, si può adottare la seguente formula:  <SUP>[ [[#Nota|nota 1]] ]</sup>
  ((Margine_destro - Punto) / 2) + Punto
+
  Oggetto.X = (((Margine_destro - Punto) / 2) + Punto) - (Oggetto.W / 2)
 
laddove:
 
laddove:
* ''Margine_destro'' è il valore della larghezza del Contenitore (''Contenitore.Width'');
+
* ''Oggetto'' è l'Oggetto grafico (''Controllo'') da posizionare;
* ''Punto'' è il valore della coordinata x del punto posto anch'esso all'interno del Contenitore e comunque alla sinistra dell'Oggetto.
+
* ''Margine_destro'' è il valore della larghezza orizzontale del Contenitore (''Contenitore.Width'');
 +
* ''Punto'' è il valore della coordinata x del punto posto anch'esso all'interno del Contenitore e comunque alla sinistra dell'Oggetto grafico.
  
 +
Mostriamo di seguito un esempio pratico, nel quale si ha un ''Button'' da posizionare in modo equidistante fra il margine destro del ''Form'' e una sottile ''Label'':
 +
Public Sub Form_Open()
 +
 +
  Me.W = 400
 +
 +
  With Label1
 +
    .X = 40
 +
    .W = 1
 +
    .H = 40
 +
    .Background = Color.Red
 +
  End With
 +
 +
<FONT Color=gray<' ''Assicura che il "Button" sia posto comunque a destra della "Label":''</font>
 +
  Button1.X = Label1.X + 200
 +
 +
End
 +
 +
 +
Public Sub Button1_Click()
 +
 +
  Button1.X = (((Me.W - Label1.X) / 2) + Label1.X) - (Button1.W / 2)
 +
 +
End
  
  
 
=Note=
 
=Note=
 
[1] In via generale questa formula è utile per definire l'equidistanza di un punto rispetto ad altri due, tutti posti sulla medesima retta.
 
[1] In via generale questa formula è utile per definire l'equidistanza di un punto rispetto ad altri due, tutti posti sulla medesima retta.

Versione delle 17:20, 25 giu 2023

Per posizionare un Oggetto grafico all'interno del suo Contenitore, in modo tale che esso sia equidistante sia rispetto al margine destro del suo Contenitore che ad un punto posto alla sua sinistra, si può adottare la seguente formula: [ nota 1 ]

Oggetto.X = (((Margine_destro - Punto) / 2) + Punto) - (Oggetto.W / 2)

laddove:

  • Oggetto è l'Oggetto grafico (Controllo) da posizionare;
  • Margine_destro è il valore della larghezza orizzontale del Contenitore (Contenitore.Width);
  • Punto è il valore della coordinata x del punto posto anch'esso all'interno del Contenitore e comunque alla sinistra dell'Oggetto grafico.

Mostriamo di seguito un esempio pratico, nel quale si ha un Button da posizionare in modo equidistante fra il margine destro del Form e una sottile Label:

Public Sub Form_Open()

 Me.W = 400
 With Label1
   .X = 40
   .W = 1
   .H = 40
   .Background = Color.Red
 End With

<FONT Color=gray<' Assicura che il "Button" sia posto comunque a destra della "Label":</font>
 Button1.X = Label1.X + 200

End


Public Sub Button1_Click()

 Button1.X = (((Me.W - Label1.X) / 2) + Label1.X) - (Button1.W / 2)

End


Note

[1] In via generale questa formula è utile per definire l'equidistanza di un punto rispetto ad altri due, tutti posti sulla medesima retta.