Gambas-it

Gambas3 => Domande tecniche => Topic aperto da: perseo - 31 Ottobre 2010, 19:09:44

Titolo: Applicazione layout e menu
Inserito da: perseo - 31 Ottobre 2010, 19:09:44
Ho una domanda basilare relativa al layout dell'applicazione (di un ipotetico gestionale).

Nel precedente, realizzato in VB6, avevo strutturato il progetto su un form_main dal quale, cliccando sui pulsanti si aprivano tante finestre quante erano le funzioni del gestionale. Ad esempio c'era il pulsante per mostrare il form_inserimento_dati, il form_lavori_archiviati, il form_inserimento_nuovi_lavori, ecc.

In questa nuova esperienza vorrei migliorare il progetto inserendo anziché i pulsanti direttamente un menù (e magari anche i pulsanti, tipo una barra_degli_strumenti).
Per la creazione del menù ho seguito la guida, e mi sembra relativamente semplice.
La mia domanda è questa:

Come si crea un pacchetto in cui le form (che ho elencato prima) si aprano direttamente nella FMain? Cioè, anziché come finestre separate, io vorrei far comparire direttamente ogni form nell' FMain.  In pratica la form è sempre la stessa, ma cambiano i suoi componenti a seconda della funzione dell'applicazione cliccata. Si può fare?

Dopo averci ragionato su un po' credo che dovrei creare ogni componente da codice, magari in dei moduli, e farli comparire quando clicco sulla voce del menu...

Non so se invece è possibile disegnare i diversi Form (graficamente) e poi richiamarli dentro l'FMain. Se fosse possibile in quest'altro modo mi risparmierei parecchio lavoro, credo?)

Mi potreste consigliare un progetto son un layout simile, di cui potrei scaricare i sorgenti per capire come è stato strutturato?

PS: vi prego di sopportarmi per le tante domande che posto!
Titolo: Re: Applicazione layout e menu
Inserito da: fsurfing - 31 Ottobre 2010, 20:54:20
una soluzione può essere quella nell' esempio seguente, in alternativa puoi utilizzare il componente  embledder

ps:
Citazione
PS: vi prego di sopportarmi per le tante domande che posto!
se nessuno facesse domande questo forumnon servirebbe a nulla :)
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 31 Ottobre 2010, 21:32:00
fsurfing,

Innanzitutto ti ringrazio della risposta! La vedo appena finisco di cenare.


Nel frattempo che ho postato la domanda mi sono fatto un giro sul web, e tra esempi, sorgenti, ecc. ho trovato la soluzione.

Sono euforico... e la spiego, nel caso servisse anche agli altri.

La soluzione è la creazione di un form MDI... ossia un form_padre, nel quale dentro ci sia un componente, chiamato Workspace, che visualizza i form_figli.

Per attivarlo bisogna andare sulla gestione componenti ed attivare gb.form.mdi (che richiede anche gb.settings).

A questo punto il gioco è semplicissimo. E vi spiego cosa ho fatto io:

1) Creazione del FMain (che sarà il nostro form MDI),

2) all'interno del FMain piazzeremo il componente Workspace (che sarà comparso tra gli "special"), e lo chiamiamo "mioWorkspace"

3) Disegniamo un altro form (che sarà uno dei figli), "Ffiglio1".

4) per far visualizzare "Ffiglio1" nel "mioWorkspace" dobbiamo lo istanziamo e lo aggiungiamo. Questo è il codice da inserire per esempio nel _new dell'FMain:

Codice: gambas [Seleziona]

  DIM mioform AS NEW Ffiglio1
  mioWorkspace.add(mioform)


Ora non so bene tutto il resto... però è una figata! Inoltre, ci dovrebbe essere anche la toolbar da qualche parte. Continuo la ricerca...
Titolo: Re: Applicazione layout e menu
Inserito da: milio - 31 Ottobre 2010, 22:30:30
Proprio come tutte le applicazioni che ho fatto io  ;)
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 31 Ottobre 2010, 23:06:19
Purtroppo devo fare una retrofront!

Non ci avevo capito una mazza, come al solito...  :-[
Il formMDI ed il relativo Workspace serve per creare finestre multi-documenti, tipo le finestre-codice della console di gambas.
In pratica quando apriamo più documenti li accodiamo (finché non vengono chiusi) e possiamo saltare dalla letture di un codice all'altro semplicemente usando la linguetta...
(http://gambasdoc.org/image/control/:workspace?it)

Per quello che voglio fare io la soluzione è proprio quella di fsurfing.  :ok:

Sono destinato a rimanere gamberetto a vita...  :-X
Titolo: Re: Applicazione layout e menu
Inserito da: fsurfing - 31 Ottobre 2010, 23:16:28
Citazione
Sono destinato a rimanere gamberetto a vita...  Bocca cucita

ahha hahah  ma no figurati ! che dici , io ho avuto solo fortuna ,non avevo idea di come si potesse risolvere il tuo quesito , poi mi è venuto in mente questa soluzione e ho fatto una prova , non è detto che sia ottimale, al limite puoi sempre utilizzare embledded(ma se la mia soluzione non da problemi è preferibile)
Titolo: Re: Applicazione layout e menu
Inserito da: milio - 31 Ottobre 2010, 23:54:26
In pratica la soluzione di fsurfing e' come un Workspace, ma senza linguetta, quindi secondo me, la soluzione migliore rimane quella del Workspace...
Titolo: Re: Applicazione layout e menu
Inserito da: leo72 - 01 Novembre 2010, 00:01:57
Premetto che non ho scaricato l'esempio di fsurfing.
Dico: ma perché non usare dei Panel?
Ne crei tanti quanti form ti servono e poi su ogni Panel (che è in pratica un raccoglitore senza bordi) inserisci gli elementi che ti occorrono.
Poi li rendi invisibili e visualizzi di volta in volta solo quello che ti serve.
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 01 Novembre 2010, 00:53:48
Ottimo Leo, alla fine ho fatto un mix tra il codice di fsurfing e la tua proposta...

In pratica rispetto a quello di fsurfing dove i forms figli vengono istanziati, aperti e chiusi, ho usato l'approccio visibile ...e non.
Questo perché aprendo e chiudendo ogni volta l'istanza del form si viene a perdere il lavoro o le modifiche fatte. Metti che su un form_figlio riempi delle textbox, poi ti sposti su un altro form_figlio, quando torni sul precedente in realtà è una nuova istanza ed è tutto rigenerato ex-novo (e quindi non c'è più il contenuto nelle textbox).
Inoltre, se modifico una proprietà in modalità invisibile non mi restituisce errore.

La comodità è che posso scrivere il codice direttamente in ogni form_figlio ed usare un unico contenitore per richiamarli singolarmente...

Lo allego, così mi dite se è migliorabile.

PS: ho abbozzato anche una barra dei menù.

[edit]
Nel mio allegato c'è un piccolo bug... cliccando sulla voce di menu "form3" viene visualizzato il form2. Mi sono dimenticato di rinominare l'oggetto form2 in form3 nell'apposito evento...
[/edit]
Titolo: Re: Applicazione layout e menu
Inserito da: Picavbg - 01 Novembre 2010, 01:02:21
Ho guardato l'esempio di fsurfing e l'ho trovato molto pratico e sbrigativo. Naturalmente esistono altre alternative.

Quella suggerita da Leo mi sembra ottima. Secondo me, se ti piace, potresti aggiungere nella tua FMain una barra di menu ed associ a ciascun menù il contenitore panel contenente la form che vuoi vedere:
Es. Menù.1 nel cui codice evento attiveresti  il panel1 contenete la Form1
      Menù.2 nel cui codice evento attiveresti  il panel2 contenete la Form2
e così via.

Azzardo poi un'ipotesi. Siccome l'ultimo pannello richiamato viene posto in primo piano, se le Form hanno tutte le stesse dimensioni, non hai neppure bisogno di giocare sulla proprietà "visible" di ciascun panel.
 ;)
Ciao.
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 01 Novembre 2010, 03:17:32
Mi sono arenato su un punto...

Come faccio da FMain a gestire un componente di fr1, ossia l'istanza pubblica di Form1, che sta dentro il panel1 di FMain?

C'è un componente di fr1, ad esempio Label1.... Se io volessi da Fmain cambiare il .caption di questo label come faccio?

Se da un qualunque evento di FMain scrivo fr1.label1.caption = "modifica_label" il programma mi restituisce errore... Non capisco perché?

Questo è il codice dell'FMain, che contiene il "panel1" in cui compaiono "fr1" o "fr2", che, come è dichiarato nell'evento "Form_Open()" sono istanze del "Form1" e del "Form2".
Io voglio cambiare il testo del componente "label1" che si trova sia in "Form1" che in "Form2"... E pensavo che avendo istanziato sia "fr1" ed "fr2", automaticamente questi richiamassero anche tutti i sotto-oggetti (ossia i componenti dell'oggetto Form), con "fr1.Label1.Caption = '....' " ed "fr2.Label1.Caption = '....' "
L'errore che mi restituisce quando in run-time clicco sul "button1" o sul "button2" è: "Unknown symbol "Label1" in class "Form" (a riga 17 dell'FMain)

Codice: gambas [Seleziona]

' Gambas class file
Public fr1 As Form
Public fr2 As Form

Public Sub _new()
End

Public Sub Form_Open()
  fr1 = New Form1(Panel1) As "fr1"
  fr2 = New Form2(Panel1) As "fr2"
  nascondifrm
End

Public Sub Button1_Click()
  nascondifrm
  fr1.Visible = True
  fr1.label1.caption = "Prova_Cambio_Caption"
End

Public Sub Button2_Click()
  nascondifrm
  fr2.Visible = True
  fr2.label1.caption = "Prova_Cambio_Caption"
End

Public Sub form1_Click()
  Button1_Click()
End

Public Sub form2_Click()
  Button2_Click()
End

Public Sub nascondifrm()
  Dim frmX As Form
  For Each frmX In Panel1.Children
    frmX.Visible = False
  Next
End



PS: in Progetto --> Proprietà --> Opzioni --> "I controlli del form sono public" --> è settato su "NO".
Se setto "SI" mi da un errore a riga 9 dell'FMain... senza neppure far partire l'applicazione: "Form.Show" is badly overridden in class "Form1"
Titolo: Re: Applicazione layout e menu
Inserito da: fsurfing - 01 Novembre 2010, 10:50:16
modifica l' intestazione così

Codice: [Seleziona]
Public fr1 As Form1
Public fr2 As Form2
Public fr3 As Form3

poi abilita nelle opzioni l'uso dei metodi public per i simboli dei moduli e i controlli dei form
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 01 Novembre 2010, 11:05:14
fsurfing,

ho cambiato l'intestazione dell'Fmain in:

Codice: vb.net [Seleziona]

' Gambas class file
Public fr1 As Form1
Public fr2 As Form2

Public Sub _new()
End

Public Sub Form_Open()
  fr1 = New Form1(Panel1) As "fr1"
  fr2 = New Form2(Panel1) As "fr2"
  nascondifrm
End


Ho settato "SI" sia l'opzione "I controlli del form sono 'public' ", sia l'opzione "I simboli dei moduli sono 'public' "...

Però mi da sempre lo stesso errore:
"Form.Show" is badly overridden in class "Form1" ...a riga 9 dell'FMain
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 01 Novembre 2010, 11:40:27
Ho riscritto il codice su Gambas2 e funziona senza problemi!

Come si può risolvere su Gambas3?
Titolo: Re: Applicazione layout e menu
Inserito da: fsurfing - 01 Novembre 2010, 11:45:50
a me così funge

ps non utilizzare come nome di menu form1, potrebbe generar eproblemi.
ps1: label1.caption  dovresti sostituirlo con label1.text che è più in linea con gambas
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 01 Novembre 2010, 12:23:06
Incredibile!

I codici sono identici... ed anche le opzioni! Però se lancio il mio codice mi restituisce l'errore, mentre se lancio il tu funziona perfettamente.
Poi ho preso il tuo codice ed ho modificato i tuoi due form_figli rendendoli identici ai miei form_figli ...e rifunziona perfettamente.

Mi viene in mente solo una cosa... quando ho costruito i due Form_figli, avevo chiesto di creare il secondo figlio da uno già esistente (ossia il primo figlio). L'errore potrebbe dipendere da questo procedimento sbrigativo?
Cmq appena posso riscrivo il codice da capo, creando i form_figli da zero.

 :ok:

[edit]
Nel progetto dove mi restituiva l'errore ho cancellati i due form_figli e li ho ricreati da capo (ognuno da "crea form --> nuovo") e l'errore è scomparso!
Quindi ho supposto che l'errore poteva derivare proprio dal fatto che il form_figlio_2 l'avevo creato da crea form --> esistente --> "form_figlio_1.

Allora ho verificato simulando l'errore con la creazione del form_figlio_2 proprio da quello esistente form_figlio_1... ed invece anche così funziona perfettemente.

Giusto per curiosità, ma quell'errore da cosa poteva dipendere?
[/edit]
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 01 Novembre 2010, 15:25:12
Ecco fatto...

In questo esempio ho messo nei form_figli delle GridBox che richiamano i records di una tabella (log) di un DB MySQL.
Chiaramente ho anche editato il codice di avvio, per la connessione a MySQL e la ricerca del DB (che se non c'è lo crea). Per far ciò ho semplicemente seguito, copiato e riadattato al mio caso il codice di GOSH (GestHotel)...

E' solo una bozza di ogni cosa... ma il mio "Gestionale" comincia a prendere forma!  :D

Che ne pensate?  :)

PS: per disabilitare i pulsanti_toolbar ed i pulsanti_menu del form visualizzato ho usato una tecnica piuttosto procedurale... Va bene così oppure ci sono metodi più idonei?
Titolo: Re: Applicazione layout e menu
Inserito da: leo72 - 01 Novembre 2010, 23:24:20
Non vorrei dire una cazzstroneria (bello 'sto neologismo  ;D) ma forse può dipendere dal fatto che:
1) non hai ricompilato il progetto prima di eseguirlo, così che l'IDE visualizzava il nuovo codice ma l'interprete eseguiva ancora il vecchio programma;
2) qualcosa nei file del tuo programma in Gambas non era andato a posto durante le tante tue modifiche (Gambas salva tante informazioni su file di testo)
3) la Luna era in congiunzione con Nettuno  :-\
Titolo: Re: Applicazione layout e menu
Inserito da: dex - 02 Novembre 2010, 02:05:48
in Vb si poteva creare il main e all'interno tutti i form children i quali seguivano gli eventi del main, per esempio si riduceva ad icona il main e tutti i form aperti si iconizzavano, e se non ricordo male avendo un form in fase di modifica tentando di chiudere il main usciva un message.
su gambas tutto questo non è stato programmato, ma con un pò di pazienza si può fare.
All'inizio anche io ho testato varie opzioni, Workspace panel vari e persino una classe con all'interno  una base form e aggiungendo man mano quello che mi serviva, solo che man mano che andavo avanti nel progetto uscivano tutti i limiti.

per il Workspace:
apre tutti i form con dimensioni e coordinate fisse, non è possibile spostare un form sullo schermo o ridimensionarlo, non è possibile visualizzare 2 form contemporaneamente, immagina che vuoi visualizzare contemporaneamente il form clienti e il form fatture.

con i panel si può fare a condizione di avere pochi form nel progetto, durante la progettazione grafica è un casino avere tutti i panel sovrapposti, per modificare il primo bisogna spostare tutti gli altri, inoltre i controlli seguono un'unico incremento per esempio se su panel1 metti una label1 su panel2 due non puoi usare label1, sembra una sciocchezza ma pensa a quando il tuo progetto crescerà con migliaia di controlli e ti devi ricordare ogni controllo a quale panel appartiene.
Inoltre per spostare i panel sul monitor devi intercettare le coordinate del mouse e da codice muovere il panel.

Nel mio progetto ci sono oltre 80 form e più di 1500 controlli e alla fine la soluzione che ho usato è quella del main con tutti i form children inserendo del codice per farlo diventare simile a VB, con un array mi memorizzo i form aperti e quando riduco ad icona il main

ti posto una bozza che ho realizzato all'inizio vedi se ti può servire qualche spunto.

nb. è stato realizzato con gambas2 ma aprendolo con il 3 e facendo aggiorna form e modificando il codice sui select case (gambas3 non accetta codice su più righe) funziona.
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 02 Novembre 2010, 12:28:13
Grazie Leo,
forse è proprio come dici. Mi ero incuriosito perché quel tipo di errore l'ho riscontrato anche in altre occasioni (ma a forza di fare prove non ricordo quali...). Però se dovesse ricapitare proverò a ricompilare il codice prima di eseguirlo.

Se invece dipendesse dal "file di testo" gambas, che succede su un progetto in corso di grosse dimensioni? C'è la possibilità di mettere ordine in quel file di testo? Cosa contiene?

@ Dex,
ho provato a scaricare il tuo sorgente, ma non riesco ad eseguirlo nè da g2 nè da g3. Il primo non mi visualizza nulla, come se il programma fosse in stand-by, su g3 invece (dopo aver aggiornato le form) mi da una serie di errori sulle variabili private, ecc. (c'era un errore su un solo "select case" e l'avevo già corretto).

@fsurfing,
intanto sto continuando sulla strada del concatenamento di un "form_figlio" all'interno di un panel nel "form_padre".
Il problema è che non so come fare per metterne uno "nipote"...  ;D
Ti ricordi il form sul calcolo del codice_fiscale? Questo sarebbe il "form_nipote" che vorrei mettere in un panel_figlio del "form_figlio", che a sua volta finisce nel panel_padre del "form_padre".
Ho provato con la stessa tecnica di sopra, ossia dichiarando nel form_"figlio":

FMain --> è il "form_padre" (con dentro il "panel_padre")

Form1 --> è il "form_figlio" (con dentro il "panel_figlio") --> Fr1 è la sua istanza nell'FMain

FormCF --> il "form_nipote", con il codice fiscale... --> FrCF è la sua istanza nel Form1


In pratica, nel codice di Form1 ho scritto questo codice:
Codice: [Seleziona]
Public frCF As FormCF

...e poi nell'evento Form_Open()
Codice: [Seleziona]
frCF = New FormCF(panel_figlio) As "frCF"

Il programma si avvia... ma quando visualizzo fr1 il "panel_figlio" è vuoto...  ???
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 02 Novembre 2010, 12:46:29
risolto...

Ho dichiarato tutto nell'FMain...

Codice: vb.net [Seleziona]
Public FrSon As FormFiglio
Public FrNip As FormNipote

Public Sub Form_Open()
  FrSon = New FormFiglio(Me.pnlMain) As "FrSon"
  FrNip = New FormNipote(FrSon.pnlson) As "FrNip"
End


Un'altra cosa...

Con questa tecnica vengono meno alcuni controlli... Ad esempio, nel form_nipote "codice fiscale" avevo usato dei comandi nell'evento Form_Open... ma non vengono attivati. Invece, trasferendoli in _new sì.
Ma il form istanziato non dovrebbe ereditare anche gli eventi? Quando visualizzo un form istanziato... non si verifica l'evento _Open?

[edit]
Ora capisco anche perché prima non mi visualizzava nulla... perché lo dichiaravo nell'evento Open del figlio... Ora ho riprovato a dichiararlo nell'evento _new e funziona anche così! Anzi così è meglio perché c'è più fluidità nel codice... ed i form sono più evidentemente concatenati tra loro (metti che mi dimentico che nel FormX avevo concatenato il FormY nel FormZ, ecc..). :D
[/edit]
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 02 Novembre 2010, 14:09:25
Un'altra domanda...

Il concatenamento è "Form_nipote" --> "Form_figlio" --> FMain.
Quindi FrNip --> FrSon --> FMain.

Mentre da FrSon è possibile richiamare un componente di FrNip, come faccio a fare il contrario, ossia da FrNip a richiamare un componente di FrSon.

Il "nipote" calcola il codice_fiscale e poi comanda il refresh della GridBox del "figlio"... Come faccio a far fare il refresh della GridBox?


PS: mi sa che mi sto incasinando un pochino...  :rolleyes:
Titolo: Re: Applicazione layout e menu
Inserito da: milio - 02 Novembre 2010, 14:35:21
Potresti gestirlo con gli eventi...

nel FrNip dichiari un evento che si scatena quando meglio credi, e volendo gli passi anche, che so, il codice fiscale. Nell'esempio scateno l'evento in una sub che richiami quando i dati inseriti per il codice fiscale ritornano un codice valido:

Codice: vb [Seleziona]
' Codice in FrNip
Event CodiceOk(Cf as String)


Public Sub CodiceValido()

  Raise CodiceOk(CodiceFiscaleValido)

End



Codice: vb [Seleziona]
'Codice in Fmain

Public Sub FrNip_CodiceOk(Cf As String)

  FrSon.GridBox1.LoadData(Tua Query & Cf)

End


Titolo: Re: Applicazione layout e menu
Inserito da: dex - 02 Novembre 2010, 14:47:50
avevo aperto il progetto con il 3 e non andava più sul 2

in allegato il progetto per il 2

per gambas 3 devi modificare le variabili private aggiungendo new
esempio Private MyVar as Float[15] diventa Private MyVar as new Float[15]
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 02 Novembre 2010, 17:39:28
@ Dex:
Grazie per l'esempio, ma l'ho aperto è non ho capito molto. Sono troppo newbie!  :-[

@ Milio:
Ciao genio... come dicevo anche a Dex sono ancora troppo newbie per capire certe cose... Credo che il problema sostanziale è che ho una fretta tremenda di realizzare il mio progetto e quindi sto cercando di assimilare tante cose un po' qua ed un po' là. Forse dovrei prendermi una pausa e studiarmi meglio le basi. Ma come si fa... ora che ho fatto il mio primo pannello di inserimento-dati nel db, che ho creato da codice?!  :D

Facendo il punto della situazione ...in questi pochi giorni di forum, a grosse linee, ho imparato:
1) come si struttura un layout (panel & V/Hbox)
2) come si crea un modulo, e a che serve... (molto alla larga)
3) come si crea una classe, e a che serve... (alla larga qui è dire poco...  ;D )
4) gestire le variabili
5) connettersi ai database
6) qualcosa sugli eventi
7) connettersi alla Shell (ad esempio attivare i comandi vocali... sono una figata per chi come me lavora in piedi, spesso lontano dalla postazione!
8 ) conoscere alcuni componenti di base, e soprattutto la GridBox  ;)

E di tutto questo sono contentissimo e vi ringrazio tutti!  :2birre:
Titolo: Re: Applicazione layout e menu
Inserito da: milio - 02 Novembre 2010, 18:09:06
Se vuoi che ti faccia un esempio veloce veloce... non hai che da chiedere  :2birre:


ps. Dovrei aver finito la 'conversione' della GridBox per le gtk... servono altri test  ;)
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 03 Novembre 2010, 18:00:50
Intanto, visto che a me ha aiutato vi posto un'immagine che mi sono disegnato simulando la disposizione degli oggetti in un Panel, settando diversamente la sua proprietà Arrangement.

(http://img834.imageshack.us/img834/7533/panelm.png)

http://img834.imageshack.us/img834/7533/panelm.png

Se nei diversi casi osservate bene la disposizione "restituita" rispetto a quella "visuale/grafica" si dovrebbe capire abbanza bene come lavorano questi contenitori.

Inoltre, a quanto ho capito...

HBOX è identico a Panel con Arrangement "Horizontal"
VBOX è identico a Panel con Arrangement "Vertical"

HPANEL è identico a Panel con Arrangement "Row"
VPANEL è identico a Panel con Arrangement "Column"

Mi chiedo quale sia la differenza... Forse sono preferibili perché potrebbero occupare meno memoria?  ???
Titolo: Re: Applicazione layout e menu
Inserito da: Ceskho - 04 Novembre 2010, 01:52:05
La differenza sta nel comportamento che essi hanno nel ridimensionarsi se inseriti in un contenitore.....

Se, ad esempio, usi una hbox essa tenderà ad occupare tutto lo spazio orizzontale che ha a disposizione anche se si ha .Expand=FALSE
Titolo: Re: Applicazione layout e menu
Inserito da: perseo - 04 Novembre 2010, 02:21:09
Che imbranato che sono... non ci avevo fatto caso.  :rolleyes:
Quindi, nell'ottica di un layout ben strutturato, direi che questa differenza è decisamente importante! :)