Gambas-it

Gambas3 => Domande tecniche => Topic aperto da: MrMe - 06 Dicembre 2014, 17:01:02

Titolo: [Risolto] Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: MrMe - 06 Dicembre 2014, 17:01:02
Ciao a tutti, sono solo da pochi giorni che ho ripreso ad usare ubuntu... ho la versione 14.04 ed uso gambas 3.
dato che su windows usavo VB.NET e mi trovavo molto bene ho cercato su google e ho trovato questo interessante terminale.
Ho fatto un MINI-PROGETTO e quando lo avvio tutto ok, ma il problema sorge quando vado ad espandere la finestra... tutto va a sinistra, gli elementi non si muovono. allora mi sono accorto che non c'e' o almeno io non trovo la proprieta'  :nono: :nono:  :-\ (degli elementi) ANCHOR, che permette, appunto, di decidere se ancorare o meno un elemento e dove ancorarlo TOP, BOTTOM, LEFT, RIGHT.... se esiste, quindi, questa proprieta', potete essere cosi gentili da indicarmela per favore? grazie  :) :) :) ??? :-\
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: Top Fuel - 06 Dicembre 2014, 17:23:42
C'è la proprietà Alignment, ma dipende da cosa vuoi fare e da cosa hai messo nel form. Dacci qualche info in più. :)
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: MrMe - 06 Dicembre 2014, 17:50:46
Praticamente contiene una TEXTBOX e dei bottoni... solo che i bottoni, io volevo farli rimanere o ridotta o massimizzata a DESTA  :nono:, ma così non succede...
e poi la textbox non si estende in base alla grandezza del form ma rimane sempre di quella dimensione...  ??? :'( :-\  :hatecomputer: :hatecomputer: :hatecomputer: aiuto per favore!!!!
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: Top Fuel - 06 Dicembre 2014, 22:03:48
Per la TextBox è facile, se setti la proprietà Arrangment del Form che la contiene a Vertical, la TextBox manterrà la sua larghezza uguale a quella del Form, altrimenti se vuoi mantenere una larghezza minore ma proporzionata, la devi calcolare all'interno dell'evento Resize del form.
La cosa dei bottoni invece non l'ho capita tanto bene, cosa intendi per ridotta massimizzata a destra? I bottoni non si possono ridurre a icona. ??? ???
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: vuott - 07 Dicembre 2014, 01:04:20
io non trovo la proprieta'  :nono: :nono:  :-\ (degli elementi) ANCHOR...

Va ricordato che Gambas (http://www.gambas-it.org/usr/share/gambas3/icons/application-x-gambasscript.png) non è una scopiazzatura di VB, o un adattamento minore per Linux. E' un'altra cosa, che apparentemente può sembrare somigliargli e... viceversa.
Pertanto è possibile che vi siano risorse identiche, simili, o diversamente denominate, in quantità superiore o inferiore rispetto al VB.

Ad ogni modo, a quanto suggerito da TopFuel segnalerei anche queste discussioni:
http://www.gambas-it.org/smf/index.php?topic=2153.0
http://www.gambas-it.org/smf/index.php?topic=3588.0
http://www.gambas-it.org/smf/index.php?topic=1601.0
http://www.gambas-it.org/smf/index.php?topic=1441.0
http://www.gambas-it.org/smf/index.php?topic=832.0
http://www.gambas-it.org/smf/index.php?topic=197.0
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: vuott - 08 Dicembre 2014, 18:35:19
il problema sorge quando vado ad espandere la finestra...


Ti ho scritto un brevissimo riassuntino nella nostra WIKI:

https://www.gambas-it.org/wiki/index.php/Fissare_la_distanza_di_un_Controllo_grafico_in_modo_costante_rispetto_ai_bordi_del_Form_durante_il_ridimensionamento_di_questo
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: MrMe - 17 Dicembre 2014, 18:37:51
Grazie mille delle risposte. Io intendo per ANCORAGGIO A DESTRA SOPRA CIOE CHE SE SI RIDIMENSIONA LA FINESTRA IL BOTTONO (O QUALUNQUE ELEMENTE) RIMANE POSIZIONATO SUL LATO DESTRO IN ALTO, O BASSO O SINISTRA IN BASE A CIO' CHE HO SCRITTO IO... non so se esiste anche in gambas e se si chiama in altro modo... grazie attendo risposte :) ;D ;D :ok:
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: vuott - 17 Dicembre 2014, 23:18:12
Io intendo per ANCORAGGIO A DESTRA SOPRA CIOE CHE SE SI RIDIMENSIONA LA FINESTRA IL BOTTONO (O QUALUNQUE ELEMENTE) RIMANE POSIZIONATO SUL LATO DESTRO IN ALTO, O BASSO O SINISTRA IN BASE A CIO' CHE HO SCRITTO IO...

Dovresti chiarire meglio il "posizionamento".
Non so se hai provato l'esempio presente nella pagina della Wiki da me segnalata.

Per "posizionamento" intendi un posizionamento costante dell'oggetto dai margini ? Ad esempio, o allarghi o restringi la finestra, l'oggetto posto su di essa resta sempre a tot pixel dai margini superiore e destro della finestra medesima e restando così sempre visibile. In tal caso o analogo rinvio nuovamente alla pagina dela Wiki sopra segnalata.
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: MrMe - 21 Dicembre 2014, 23:23:28
vuott ho letto la pagina del wiki, e ti ringrazio di avermela segnalata :ok: :ok: :ok: :-[ ;D :-*; si, intendo che l'elemento resti a "tot" pixel di un lato della pagina qualora si dovese ridimensionare :) (mi interessa il lato destro in alto) ;) :) :ok:
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: vuott - 22 Dicembre 2014, 00:43:45
mi interessa il lato destro in alto

Dell'esempio, che ho fatto nella pagina della WIKI, è il caso del Button3 (distanza assoluta dal bordo destro).
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: MrMe - 29 Dicembre 2014, 23:35:21
vuott... si, come ho già detto precedentemente... ho letto la pagina nel wiki... però non mi è molto chiara. comunque sia, non fa nulla.. ho deciso di cambiare progetto... devo mettere [risolto]? oppure no?
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: vuott - 29 Dicembre 2014, 23:51:48
... ho letto la pagina nel wiki... però non mi è molto chiara. comunque sia, non fa nulla..

Non esiste una proprietà o una funzione che - in caso di modifica delle dimensioni del Form - "àncora" un oggetto, posto su quel Form, alle coordinate desiderate.

In Gambas, almeno per ora, questo risultato si ottiene attraverso calcoli matematici all'interno della routine dell'evento Form_Resize() . E' dunque un calcolo che spetta al programmatore effettuare.

Con riferimento al terzo caso, sopra citato, della pagina dell WIKI:
Codice: gambas [Seleziona]
Button3.X = Me.W - (Button3.W + 20)
 Button3.Y = Me.H - (Button3.H + 200)

esso ci dice che in qualunque caso di ridimensionamento del Form la coordinata X del bottone (e più segnatamente l'angolo superiore sinistro del bottone) si porrà - all'interno del Form medesimo - ad una distanza dal margine sinistro del Form uguale:
1) all'intera larghezza del Form -> a questo punto il margine sinistro del Button3 si trova esattamente sul margine destro del Form;
2) meno la larghezza del bottone medesimo ampliata di 20 pixel -> a questo punto abbiamo spostato a sinistra il margine sinistro del Button3 di una quantità di pixel pari a Button3.W + 20 .

Ciò consente - rispetto alla situazione di cui al punto 1) - che il tasto sia sempre visibile.


Discorso analogo per la distanza del tasto (coordinata Y) dal margine superiore del Form.
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: Top Fuel - 30 Dicembre 2014, 00:09:08
Oppure, facendo:

Codice: [Seleziona]
Button3.X = Me.W - (Button3.W + Me.W\10)
Button3.Y = Me.H - (Button3.H + Me.H\10)

Si mantiene una distanza dai bordi proporzionale alla dimensione del Form. Ho diviso per 10 ma ovviamente si può mettere un valore qualsiasi.
Titolo: Re: Esiste un comando come in VB.NET per ancorare gli elementi?
Inserito da: MrMe - 02 Gennaio 2015, 14:44:30
ora mi è chiaro  ;) ;) :) grazie top fuel e vuott  :ciao: :ciao:  :ok: :ok: ;D ;D