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 14: | Riga 14: | ||
With Label1 | With Label1 | ||
− | .X = | + | .X = 41 |
.W = 1 | .W = 1 | ||
.H = 40 | .H = 40 | ||
Riga 20: | Riga 20: | ||
End With | End With | ||
+ | With Button1 | ||
+ | .W = 37 | ||
<FONT Color=gray>' ''Assicura che il "Button" sia posto comunque a destra della "Label":''</font> | <FONT Color=gray>' ''Assicura che il "Button" sia posto comunque a destra della "Label":''</font> | ||
− | + | .X = Label1.X + 200 | |
+ | End With | ||
End | End | ||
Riga 35: | Riga 38: | ||
=Note= | =Note= | ||
− | [1] In via generale questa formula è utile per definire l'equidistanza - orizzontale in questo | + | [1] In via generale questa formula è utile per definire l'equidistanza - orizzontale in questo caso - di un punto rispetto ad altri due. |
Versione delle 01:48, 26 giu 2023
Per posizionare un Oggetto grafico all'interno del suo Contenitore, in modo tale che la distanza del suo lato sinistro rispetto a un punto posto alla sua sinistra sia uguale alla distanza del suo lato destro dal margine destro del suo Contenitore, si può adottare la seguente formula: [nota 1]
Oggetto.X = (((Margine_destro - Punto) / 2) + Punto) - (Oggetto.W / 2)
che può essere così ridotta:
Oggetto.X = ((Margine_destro + Punto) / 2) - (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 = 41 .W = 1 .H = 40 .Background = Color.Red End With With Button1 .W = 37 ' Assicura che il "Button" sia posto comunque a destra della "Label": .X = Label1.X + 200 End With End Public Sub Button1_Click() Button1.X = ((Me.W + Label1.X) / 2) - (Button1.W / 2) End
Note
[1] In via generale questa formula è utile per definire l'equidistanza - orizzontale in questo caso - di un punto rispetto ad altri due.