Newsgroup: it.comp.lang.delphi
Titolo: NON CE LA FACCIO PIU' [Anchors]

Scusate il post urlato ragazzi ma sto letteralmente sclerando. E' 4 giorni 
che sono su di un form per cercare di farlo compatibile con le risoluzioni 
più disparate, soprattutto quelle per i nuovi portatili con schermo a 16:9 
ma sto sclerando. Non capisco la logica che governa i vari controlli come le 
anchors e i constraints. Ho già ottenuto buoni risultati sul form (nel senso 
che una parte di esso già si ridimensiona esattamente come voglio in base 
alle risoluzioni, ma un'altra parte (diversi suoi componenti per la 
precisione) non riesco proprio a farla stare dove voglio.
Mi sembra assurdo che non ci siano modi migliori per rendere una form 
compatibile alle risoluzionì se non ostiando come un cane e spaccarsi il 
cervello.
Voi ne conoscete qualcuno di alternativo alle anchors?
Oppure se proprip prioprio mi leggo anche una biblioteca intera di 
documentazione, sono disposto a tutto. Il tempo passa e i clienti aspettano 
il programma, mi capite? Dire di si :)
Saluti a tutti
Davide 

 Voi ne conoscete qualcuno di alternativo alle anchors?
Usando la proprietà /Align/ e cercare di mantenere il layout "fluido", 
generalmente si può fare ciò che si vuole.
Metodi alternativi? Viene spontaneo chiedersi...perchè? qual è il problema?
Descrivi la tua situazione dettagliatamente e si può vedere quale 
soluzione è adatta al tuo caso. :-)
-- 
Marco «Alka» Breveglieri
(marco [@] abls [.] it )
  ABLS Team S.n.c. - Software & Web
  42019 Scandiano (Reggio Emilia)
 
http://www.abls.it


Allora: ho un form principale sul quale ho impostato due pannelli, uno a 
sinistra che prende un 20% dello spazio totale che chiamerò Panelsx e uno a 
destra che prende il rimanente spazio e che chiamerò Paneldx.
Su quello di sinistra c'è posizionato un pagecontrol che contiene un 
treeview nella parte alta. Nella parte bassa di Panelsx c'è un componente 
TImage che mi contiene una piccola immagine. Per il resize di questa parte 
non ho + problemi, a qualsiasi risoluzione lo metto tutto si adatta 
correttamente.
La parte problematica riguarda il pannello di destra, Paneldx.
Su questo pannello ho:
delle label intervallate da degli editbox. Quindi ho label1 e sotto il suo 
relativo valore nel componente edit1, poi ho label2 e sotto il suo relativo 
valore contenuto in edit2 e così dicendo. La lunghezza degli edit prende la 
metà sinistra del pannello generale di destra, paneldx, di cui stiamo 
parlando. Nella parte destra del pannello è presente un pagecontrol che 
anchesso contiene un'immagine, grande esattamente l'altra metà del pannello 
di destra Paneldx. tutto chiaro fino a qui?
Sotto alle varie label e edit e pagecontrol houn grande DBMemoche occupa 
tutta la lunghezza di paneldx. Provo a fare un disegno su come è diviso il 
form principale per farmi capire meglio:
----------------------------------------------
|  panelsx     |         Paneldx               |
| _______   |------------- |---------------|
| |              |  |                 |                  |
| |              |  |     Edit      |  Image2     |
| | treeview |  |       +        |                  |
| |              |  |     Label    |                  |
| |              |  |                 |                  |
| |_______|  |________ |________  |
|                  |                                    |
|   Image1    |        DBMEMO            |
----------------------------------------------
Meglio di così non potevo :)
Non so come si comporti con altri MailReader, spero non faccia casini.
Morale della favola. Non riesco a fare in modo che facendo resize della 
finestra, oppure semplicemente facendo partire il programma a diverse 
risoluzioni, vengano mantenute le proprozioni di tutti i componenti del 
paneldx. A volte il DBMemo va a coprire tutte le Label e edit, altre volte 
la parte dove c'è image2 non si ridimensiona, quindi alle alte risoluzioni 
non si capisce niente e cose di questo tipo. Ormai le proprietà delle 
anchors le ho provate tutte, non c'è verso...
Se non vi è utile il disegno faccio uno screenshot del mainform e lo posto 
qua.
Grazie a chiunque mi faccia imboccare la retta via
Saluti
Davide

 Paneldx.
<segue kilometrica descrizione>
Ti va di fare uno screenshot e postarlo su 
http://www.imageshack.us/
 ?
E' proprio il caso di dire che un'immagine vale piů di 1000 parole ;))
-- 
Jax
====
"La bomba al centro commerciale finlandese e' stata costruita su Internet"
titolo di una diffusa newsletter

Ciao,
Ho letto il thread. Purtroppo i TPanel sono una brutta bestia, quando si
tratta di far cose un pò più esotiche(ne so qualcosa, visto che una
volta ho dovuto fare dei "pannelli intelligenti"... vabbeh, lasciamo
stare... ).
Secondo me, la soluzione più semplice è che PanelDx sia contenga a sua
volta dei panels i quali siano impostati con gli align giusti.
All'interno del singolo pannello, poi, imposti le anchors.
Ah, nel caso ti stesse venendo la pessima idea di far
scomparire/apparire detti pannelli... meglio se ci ripensi, fidati :-)
Ne guadagnerai in salute :-)
Ciao,
Andrea

Mi sembra di aver capito lo stato d'animo.
Per cui, scegli i tipi di 'screen' di cui ti vedi occupare.
Crea per ognuno di loro, separatamente, le dimensioni delle finestre dei
panell ecc.
Poi leggendo in formato testo il file .frm gestisci l'evento on resize
oppure con un test all'inizio del programma scegli il formato che desideri
oppure tramite variabile memorizzata nel registy definisci le dimensioni che
vuoi.
Voglio dire anche senza pensare di fare resize...
Puoi addirittura compilare la stessa applicazione con le varie dimensioni
che vuoi ed installarela sulle diverse macchine.
Inoltre se lo spazio ti serve usa sempre la form massimizzata.
Ciao
Mario - (
mari...@inwind.it
)
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Ne guadagnerai in salute :-)
Ma no, perchè dici così? :-)
Io ho realizzato dei pannelli che assomigliano - a livello di 
funzionamento - a quelli di Flash: riquadri allineati con barra del 
titolo e pulsanti che permette di "collassarli" ed "espanderli" a 
piacimento. Non ho avuto alcun effetto collaterale.
La funzionalità "drag&drop" per scambiarli di posizione sarebbe il top, 
ma non ho avuto il tempo di implementarla...
Ciao! :-)


 Ciao! :-)
ciao,
Andrea

 cosa.
Beh, il fatto che il "drag&drop" non fosse richiesto era l'unico motivo 
per cui ho scelto di non dedicare del tempo considerando quanto 
"background" è necessario acquisire sull'infrastruttura interna dei 
controlli visuali in Delphi...ma se era tra i requisiti, sarei stato 
obbligato a studiarmelo. :-)
Anzi, quando hai incontrato questi ostacoli, potevi scrivere sul gruppo 
e avviare un thread molto interessante, secondo me, col quale si poteva 
snocciolare tutto sull'argomento che io trovo molto particolare e curioso.


 Ciao! :-)
Ciao,
Andrea

 componenti da splittare... non so se mi spiego... <g>
Io ho avuto questa esigenza in un altro frangente, ma mi è bastato 
impostare correttamente la proprietà /Constraints/ per ottenere questa 
"forzatura", sempre se ho compreso bene il motivo per cui hai costruito 
lo *TSplitter* personalizzato.


 Ciao! :-)
Ciao,
Andrea

Io ho avuto problemi analoghi sia usando align che gli anchors
per cui posiziono manualmente i panel utilizzando per il posizionamento  
orizzontale le proprieta' width e left:
es. se ho due pannelli dei quali il secondo deve essere appiccicato al  
primo e occupare tutta la parte restante di sinistra del form scrivo:
panel2.left := panel1.left+panel1.width;
panel2.width := ClientWidth-panel2.left;
scusa l'ovvieta' dell'esempio (l'estensione al verticale e' ovvia).
Il tutto e' un po' piu' laborioso che impostare gli align a design time ma  
tanto lo fai una sola volta
e ripaga in termini di affidabilita'.
ciao
Luca
 

 Luca
Andrea

 Credimi, è *molto* diverso.
Io ho avuto dei problemi solo se in queste sparizioni erano coinvolti anche
degli splitter, altrimenti non ricordo problemi di sorta
-- 
Lis
Il mio sito: 
http://lis.altervista.org
FAQ di it.comp.lang.delphi: 
http://snipurl.com/faq_icld
Se un po' di sincerità è pericolosa, molta sincerità è addirittura fatale
(Oscar Wilde)

 Come detto, è un casino.
Ah, ok, se il casino è questo, anche a me è capitato, io mi aspettavo chissà
cosa :)
-- 
Lis
Il mio sito: 
http://lis.altervista.org
FAQ di it.comp.lang.delphi: 
http://snipurl.com/faq_icld
Per il momento, riguardo alla morale, so solo che è morale ciò che mi fa
sentir bene e immorale ciò che mi fa sentir male dopo che l'ho fatto
(E.Emingway)

 "numeri magici": quando si scrive una GUI, i numeri magici sono
??? numeri magici ???

 ??? numeri magici ???
Si, un "numero magico" in programmazione sono i "valori senza
spiegazione", tipo il tuo 2 :-)
Ciao,
Andrea