Il linguaggio di programmazione Delphi
 

Form in Tabsheet

Stark 2 Apr 2017 12:12
Ho provato ad usare la tecnica di creare dei forms all'interno dei tabsheet
di un PageControl. Allo scopo di nascondere il bordo del form, uso
Borderstyle=bsNone, ma ho scoperto che questo ha l'effetto collaterale di
nascondere, non solo il bordo del form, ma anche il Menu del form stesso.
Vi risulta ? C'è una soluzione ?
4ndre4 2 Apr 2017 20:21
On 02/04/2017 11:12, Stark wrote:

> Ho provato ad usare la tecnica di creare dei forms all'interno dei
> tabsheet di un PageControl.

Di quale tecnica parli? Perche` crei dei form?


--
4ndre4
Stark 3 Apr 2017 16:02
"4ndre4" ha scritto nel messaggio news:obrfa8$nf7$6@dont-email.me...
On 02/04/2017 11:12, Stark wrote:
> Ho provato ad usare la tecnica di creare dei forms all'interno dei
> tabsheet di un PageControl.
Di quale tecnica parli? Perche` crei dei form?
--
4ndre4
---
E' una tecnica che, ho letto nel web, è usata da chi non vuole adottare l'
MDI. Praticamente si ospita un Form all'interno di un altro form (in
unTPanel) oppure in un pageControl per cui, per esempio, io creo due diversi
form in due pagine diverse. A lato del PageControl ho un pannello verticale
con dei bottoni che fanno da menu per la creazione alternativa di un form o
dell'altro o volendo per spostarsi tra l'uno e l'altro.
Al form si da la poprietà BorderStyle bsNone, che però (solo quando il form
è 'ospitato') oltre a non mostrare il Titlebar, non mostra nemmeno
l'eventuale MainMenu.
Questo è il poblema a cui chiedevo se si potesse rimediare.
Giacomo Degli Esposti 3 Apr 2017 17:58
Il giorno domenica 2 aprile 2017 12:12:36 UTC+2, Stark ha scritto:
> Ho provato ad usare la tecnica di creare dei forms all'interno dei tabsheet
> di un PageControl. Allo scopo di nascondere il bordo del form, uso
> Borderstyle=bsNone, ma ho scoperto che questo ha l'effetto collaterale di
> nascondere, non solo il bordo del form, ma anche il Menu del form stesso.
> Vi risulta ? C'è una soluzione ?

Si, anche a me risulta cosi': il menu' puo' solo andare a livello della finestra
principale.

Ci sono due alternative:

- fare un MERGE del menu della finestra figlia all'interno di quella
contenitore (in modo simile a quello che avvine con MDI)

- provare a usare componenti come toolbar, coolbar, barmanager e compagnia
cantante....
In quel caso puoi mettere una toolbar configurata in modo da fare da menu'
Non so se si riesce con i componenti nativi di delphi, qui al lavoro
usiamo i componenti devexpress e con quelli si puo' fare.
Pero' una volta che abbiamo provato... abbiamo visto che un menu'
dentro ad un tabsheet esteticamente non ci piaceva... abbiamo adottato la
tecnica del merge sul menu principale :-)

ciao
Giacomo
4ndre4 3 Apr 2017 20:43
On 03/04/2017 15:02, Stark wrote:

> E' una tecnica che, ho letto nel web, è usata da chi non vuole adottare
> l' MDI.

Dove viene citata?

PS quota come si deve, per favore. Ti e` stato detto piu` di una volta.
Continui a rispondere dopo una serie di trattini, facendo si` che i
newsreader taglino il tuo messaggio quando si cerca di rispondere.

--
4ndre4
Stark 4 Apr 2017 12:44
"4ndre4" ha scritto nel messaggio news:obu4vq$qpi$2@dont-email.me...

On 03/04/2017 15:02, Stark wrote:

> E' una tecnica che, ho letto nel web, è usata da chi non vuole adottare
> l' MDI.

Dove viene citata?

PS quota come si deve, per favore. Ti e` stato detto piu` di una volta.
Continui a rispondere dopo una serie di trattini, facendo si` che i
newsreader taglino il tuo messaggio quando si cerca di rispondere.

--
4ndre4

http://ux.stackexchange.com/questions/13724/alternatives-to-mdi-layout
http://pasotech.altervista.org/delphi/articolo32.htm
https://www.codeproject.com/questions/142030/mdi-alternative

Delphi Developer's Guide (1st edition 1995), Chapter 21 ******* Core
Windows' describes Subclassing forms. I used this technique in a
large application I wrote and it worked well for me. Basically, you
have a main form with a large TPanel area. You then create several *******
forms, and using the technique below, show the ******* forms on
the Tpanel of the Main form. The example creates all forms at
startup, but you could modify to create and destroy as needed.

PS: Come devo fare a quotare? Mi metto al di sotto del messaggio ricevuto e
scrivo il mio. E' sbagliato?
Stark 4 Apr 2017 12:49
"Giacomo Degli Esposti" ha scritto nel messaggio
news:de7beb28-7cdb-4228-bb84-06e038b8fcad@googlegroups.com...

Il giorno domenica 2 aprile 2017 12:12:36 UTC+2, Stark ha scritto:
> Ho provato ad usare la tecnica di creare dei forms all'interno dei
> tabsheet
> di un PageControl. Allo scopo di nascondere il bordo del form, uso
> Borderstyle=bsNone, ma ho scoperto che questo ha l'effetto collaterale di
> nascondere, non solo il bordo del form, ma anche il Menu del form stesso.
> Vi risulta ? C'è una soluzione ?

Si, anche a me risulta cosi': il menu' puo' solo andare a livello della
finestra principale.

Ci sono due alternative:

- fare un MERGE del menu della finestra figlia all'interno di quella
contenitore (in modo simile a quello che avvine con MDI)

- provare a usare componenti come toolbar, coolbar, barmanager e compagnia
cantante....
In quel caso puoi mettere una toolbar configurata in modo da fare da menu'
Non so se si riesce con i componenti nativi di delphi, qui al lavoro
usiamo i componenti devexpress e con quelli si puo' fare.
Pero' una volta che abbiamo provato... abbiamo visto che un menu'
dentro ad un tabsheet esteticamente non ci piaceva... abbiamo adottato la
tecnica del merge sul menu principale :-)

ciao
Giacomo

L'idea del merge sul menu principale mi era venuta, ma avrei voluto
mantenere i forms anche indipendenti. Comunque, visto che non si tratta di
errore da parte mia e che si tratta di un disegno e non di un errore, dovrò
decidermi a fare qualcosa di quello che suggerisci.
4ndre4 4 Apr 2017 23:01
On 04/04/2017 11:44, Stark wrote:

> Delphi Developer's Guide (1st edition 1995),

Se il Xavier-Pacheco, e` un ottimo libro, ma renditi conto che stiamo
parlando di 22 anni fa. Se devi usare quella tecnica (orribile,
peraltro), ti conviene semplificarti la vita e usare i frame.

> PS: Come devo fare a quotare? Mi metto al di sotto del messaggio
> ricevuto e scrivo il mio. E' sbagliato?

Non usare i doppi trattini. Sono una convenzione per le firme. I
newsreader cancellano automaticamente ogni contenuto oltre quelli.

--
4ndre4
Stark 5 Apr 2017 00:46
"4ndre4" ha scritto nel messaggio news:oc11ei$pht$10@dont-email.me...

On 04/04/2017 11:44, Stark wrote:

> Delphi Developer's Guide (1st edition 1995),

Se il Xavier-Pacheco, e` un ottimo libro, ma renditi conto che stiamo
parlando di 22 anni fa. Se devi usare quella tecnica (orribile,
peraltro), ti conviene semplificarti la vita e usare i frame.

> PS: Come devo fare a quotare? Mi metto al di sotto del messaggio
> ricevuto e scrivo il mio. E' sbagliato?

Non usare i doppi trattini. Sono una convenzione per le firme. I
newsreader cancellano automaticamente ogni contenuto oltre quelli.

--
4ndre4

Grazie dei consigli e in effetti i frames sarebbero una soluzione, ma
paradossalmente più laboriosa nel mio caso, perchè i due o tre form che
pensavo di includere nel PageControl li ho già funzionanti per conto loro.
Mi sono però reso conto che il loro uso, spesso contemporaneo e in parallelo
con il main dell'applicazione a cui si può sempre accedere per il menu,
ingombrano il desktop notevolmente con tutte quelle finestre aperte e
l'utente non ci capisce più niente. Aggiungi che, per ragioni che mi sono
sconosciute, a volte alcune finestre rimangono nascoste sotto altre senza
possibilità di recupero...
Ecco perchè ho cercato una soluzione alternativa, che funziona con veramente
poche righe di codice. L'unico inconveniente che ho trovato, almeno finora,
è quello del menu che sparisce con il borderstyle bsnone.

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione Delphi | Tutti i gruppi | it.comp.lang.delphi | Notizie e discussioni delphi | Delphi Mobile | Servizio di consultazione news.