PDA

Visualizza la versione completa : [C++BUILDER] Stile Form annidato


sliver80
10-03-2006, 19:21
salve, vorrei mettere un Form all'interno di un altro Form (il principale) con MDIChild e fin qui nessun problema.

Il problema è che il form, appena diventa figlio, ignora il borderstyle di tipo ToolWindow (quello senza caption del form, la barretta blu e la sola X di chiusura piccoline, in pratica come il form del photoshop dove ci sono gli elementi di disegno).

A questo punto non capisco se è un qualche bug o limitazione del borland che non consente di avere un formchild con quello stile o se devo settare qualche altro parametro. :dhò:

grazie anticipatamente :)

sliver80
13-03-2006, 22:41
up, nessuno ?

ho aggirato un pò il problema annidando il form figlio non con formChild, ma settandogli come Parent un Panel del form padre ed Align = alClient.

Il problema adesso è che gli oggetti (come i pulsanti) del form figlio funzionano perfettamente, ma le TMemo è come se fossero disable, il cursore cambia opportunamente quando ci passo sopra, ma cliccando non si può scrivere e non succede niente.

sliver80
14-03-2006, 23:17
a chi interessasse....risolto.

il secondo problema sfruttando le sdk e la gestione dell'handle, il primo (da dove è nato tutto) mi sa che è irrisolvibile, guardando bene nel photoshop stesso, la toolbar non è una mdichild, infatti può andare anche fuori del form principale.

e se non ne sono capaci alla borland non vedo come nè perchè ne dovrei essere capace io :D


grazie a tutti per l'aiuto :rollo:

per i mod: si può chiudere.

alka
15-03-2006, 01:38
La discussione mi era sfuggita. :)

Non uso C++Builder bensì Delphi, ma i principi sono gli stessi in quanto basati entrambi sulla libreria VCL e sulle API di Windows.

Il problema è che tu stai chiedendo ad una form di essere una "MDI Child" e di apparire in un modo differente da come appare in realtà una finestra di questo tipo.

In sostanza la soluzione è percorribile secondo due strade: o non hai bisogno di una form MDI Child, o non hai bisogno del form con stile Toolbox.

Inoltre, non vedo l'utilità di assegnare un Panel come Parent di un Form; non so quale versione stai utilizzando, ma in Delphi esistono da tempo i Frame che sono strumenti appositamente studiati per organizzare "pezzi di interfaccia" da disporre dove si vuole senza ricorrere alla pesantezza e alla complessità dell'uso di un form annidato, che consuma memoria come un form ma non svolge funzionalità maggiori.

Eventualmente, delinea con precisione quale tipo di interfaccia stai cercando di realizzare e il modo in cui deve funzionare; così, sarà possibile forse suggerirti come impostare i controlli in modo da ottenere l'effetto desiderato.

Se cerchi aiuto su come far funzionare qualcosa che ha due impostazioni discordanti, le probabilità di successo si riducono. :)

Ciao! :ciauz:

sliver80
15-03-2006, 02:08
ciao, fondamentalmente a me interessa (più che altro per un fattore puramente estetico) un borderStyle bsToolWindow, in modo da realizzare un'interfaccia simile a quella del photoshop (vedi immagine sotto).

http://img128.imageshack.us/img128/176/stile4bi.th.jpg (http://img128.imageshack.us/my.php?image=stile4bi.jpg)

Il motivo dell'assegnazione del parent al panel del form era appunto quello di poter ottenere un form con quel borderStyle all'interno di un altro form aggirando il problema di MDIChild ed MDIForm, ma era più una soluzione di ripiego che una necessità.

Il problema fondamentale cmq adesso non sussiste, perchè vedendo bene l'interfaccia del photoshop, quelle toolbox con lo stile che voglio io non sono delle MDIChild, infatti sono libere di vagare fuori dal main form e stare anche sul desktop sole solette, anche se cmq io reputo a gusto personale che sarebbe più indicato che queste toolbox siano vincolate a stare all'interno del main form, ma come dicevo prima: se non ci sono riusciti in adobe posso mai riuscirci io ? :D

ciao e grazie delle info :)

alka
15-03-2006, 02:58
Originariamente inviato da sliver80
quelle toolbox con lo stile che voglio io non sono delle MDIChild

E' quello che dicevo io. :)


Originariamente inviato da sliver80
se non ci sono riusciti in adobe posso mai riuscirci io?
Non è che non ci sono riusciti: non hanno voluto. :)

Loading