Differenze tra le versioni di "Posizione equidistante di un Oggetto rispetto al margine destro del suo Contenitore e ad un punto alla sua sinistra"
(Creata pagina con "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 s...") |
|||
(12 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | Per posizionare un Oggetto all'interno | + | 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: <SUP>[[[#Nota|nota 1]]]</sup> |
− | ((Margine_destro - Punto) / 2) + Punto | + | 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: | 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 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 un punto alla sua (del ''Button'') sinistra qui rappresentato per ragioni meramente didttiche da una sottilissima ''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 | ||
+ | <FONT Color=gray>' ''Assicura che il "Button" sia posto comunque a destra della "Label":''</font> | ||
+ | .X = Label1.X + 10 | ||
+ | End With | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub Button1_Click() | ||
+ | |||
+ | <FONT Color=gray>' ''Calcola e imposta l'equidistanza del lato sinistro del "Button" dalla "Label" e dal lato destro del "Button" dal margine destro del suo Contenitore:''</font> | ||
+ | <FONT Color=#B22222>Button1.X = <B>((Me.W + Label1.X) / 2) - (Button1.W / 2)</b></font> | ||
+ | |||
+ | End | ||
+ | Se, invece del punto, abbiamo sul ''Form'' un Oggetto grafico con una sua estensione in lunghezza maggiore di 1 (come era per motivi didattici nell'esempio sopra), e desideriamo impostare l'equidistanza del lato sinistro del "Button" dal <U>lato destro</u> "Label" e dal lato destro del "Button" dal margine destro del suo Contenitore, allora la formula sarà la seguente: | ||
+ | Button1.X = ((Me.W + <FONT Color=#B22222>(Label1.X + Label1.W)</font>) / 2) - (Button1.W / 2) | ||
+ | |||
+ | |||
+ | |||
+ | =Note= | ||
+ | [1] In via generale questa formula è utile per definire l'equidistanza - orizzontale in questo caso - di un punto rispetto ad altri due. |
Versione attuale delle 13:04, 16 nov 2024
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 un punto alla sua (del Button) sinistra qui rappresentato per ragioni meramente didttiche da una sottilissima 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 + 10 End With End Public Sub Button1_Click() ' Calcola e imposta l'equidistanza del lato sinistro del "Button" dalla "Label" e dal lato destro del "Button" dal margine destro del suo Contenitore: Button1.X = ((Me.W + Label1.X) / 2) - (Button1.W / 2) End
Se, invece del punto, abbiamo sul Form un Oggetto grafico con una sua estensione in lunghezza maggiore di 1 (come era per motivi didattici nell'esempio sopra), e desideriamo impostare l'equidistanza del lato sinistro del "Button" dal lato destro "Label" e dal lato destro del "Button" dal margine destro del suo Contenitore, allora la formula sarà la seguente:
Button1.X = ((Me.W + (Label1.X + Label1.W)) / 2) - (Button1.W / 2)
Note
[1] In via generale questa formula è utile per definire l'equidistanza - orizzontale in questo caso - di un punto rispetto ad altri due.