Newsgroup: it.comp.appl.access
Titolo: qualcuno sa aiutarmi sul posizionamento di etichette in una form?

mi spiego meglio, il database aprirà una form a tutto schermo ma potrebbe variare la risoluzione dello schermo e quindi le misure della form a tutto schermo variano
 
avrei la necessità di posizionare 
alcune etichette sempre a sinistra 
alcune altre sempre a destra
e alcune altre sempre in centro
a prescindere dalla misura della form che è data dalla risoluzione.
 
grzie per eventuali aiuti o consigli.

La cosa sarebbe un po complessa... richiederebbe le API ma forse... se leggi le dimensioni della form WindowsWidth mi pare... puoi riposiziona quelle al centro e quelle a destra...
Il riferimento a sinistra non cambia mai...
 
Prova a scrivere qualche cosa...
 
@Alex


tramite del codice vba su apertura del db riesco a capire quale risoluzione è in uso sul pc e quyindi ho fatto un select case che imposta la larghezza e altezza della form adeguati e poi il posizionamento dei vari controlli è semplice.
 
grazie.

Già speriamo che nessuno modifichi lo stato della MDI Access da massimizzato... altrimenti sarà un macello...
 
Se va bene a te... a me abbonda, che sia semplice come hai fatto è altrettanto vero ma che sia giusto è tutt'altro concetto.
 
@Alex

p.s. per come ti avevo suggerito... nemmeno servivano le API perché non serviva la risoluzione del monitor... quanto la larghezza reale della Form che, anche in modalità NON MASSIMIZZATA avrebbe consentito un corretto posizionamento fatto su dimensioni RRLATIVE... ma forse era troppo semplice e le API fanno scena tecnica... ;-) 
 
@Alex

 @Alex
 
no anzi se posso evitarle le API preferisco 
come potevo sapere la larghezza che avrebbe avuto la form massimizzata in risoluzioni diverse per poi posizionare i controlli?
 
stai dicendo che c'era un modo per posizionarli in centro, a sinistra o a destra senza conoscere prima la larghezza e l'altezza della form?

Questo significa che il suggerimento che ti ho dato inizialmente nemmeno lo hai preso in considerazione...? Parlo del determinare il WINDOWSWIDTH... 
 
Beh... cosa potrei mai aggiungere...
Buon lavoro.
 
@Alex 

a prescindere dalla misura della form che è data dalla risoluzione.
 
Scusa non so se ho capito... assumo che tu non debba fare lo zoom delle 
dimensioni dei pulsanti, etichette, ecc.
Supponiamo, cioè, che al variare della risoluzione schermo e del 
ridimensionamento finestra, solo le posizioni dei pulsanti o le dimensioni 
delle sotto-form debbano essere modificati (anchor sempre a sx, anchor 
sempre a dx, estensioni verso il basso e a destra delle sottoform, ecc.).
Ho riadattato un programma Access che trovai in rete ancora circa 10 anni 
fa, forse c'è ancora su "sitocomune".
Io non uso mai gli ancoraggi proposti da Access perché alle volte non 
ottengo i risultati voluti, preferisco controllarli da codice.
L'idea di base è questa:
- per ogni oggetto alimenta la proprietà Tag con un codice che faccia capire 
alla routine quale tipo di allineamento deve essere eseguito al 
ridimensionamento del form (es. S per "attaccato" a sinistra, B per 
"attaccato" in al bordo inferiore, ecc.);
- nell'evento "su ridimensionamento" del form fai scattare la routine (anche 
globale passando come parametro l'oggetto form) che si spazzola tutti gli 
oggetti buttons, forms, etc.
- se trova il Tag alimentato, leggi le proprietà Top,Left,Width,Height 
dell'oggetto, quindi leggi le proprietà InsideHeight/Width del form, a 
seconda del tipo di operazione del Tag applichi la formula per il ricalcolo 
di Top,Left, e cosi via.  Occhio a controllare con degli IF di non 
specificare coordinate che puntino fuori form (es. valori negativi).
Comunque se trovo quel programma su sitocomune te lo segnalo, fa veramente 
tutto basta valorizzare opportunamente la proprietà Tag. 
 
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 

Un esempio da espandere:
 
' Ancora il pulsante all'angolo in basso a destra
 
Private Sub Form_Resize()
    If Me.cmdPulsante1.Tag = "SB" Then
        If Me.InsideWidth - Me.cmdPulsante1.Width > 0 Then 
Me.cmdPulsante1.Left = Me.InsideWidth - Me.cmdPulsante1.Width
        If Me.InsideHeight - Me.cmdPulsante1.Height > 0 Then 
Me.cmdPulsante1.Top = Me.InsideHeight - Me.cmdPulsante1.Height
    End If
End Sub 



grazie, avevo usato anch'io i tag "centro", "sinistra" e "destra" non avevo considerato l'evento su ridimensionamento della form da te indicato