Newsgroup: it.comp.lang.c++
Titolo: principiante

Ciao a tutti vorrei iniziare a programmare con c++ ma mi trovo subito
di fronte ad un problema.....i menu.........
Vorrei realizzare un'applicazione che abbia un menu a tendina e quindi
nello stesso form gestisca i vari processi......beh..il menu l'ho
messo ma tutto il resto??????????
Naturalmente non so se il principio è esatto....cioè realmente viene
caricato tutto nello stesso form?????????
O si richiamano dei form secondari che xo' sono itegrati graficamente
nel primo....
Ciao grazie dell'aiuto............

messo ma tutto il resto??????????
Se parli di "form", intuisco che tu stia usando C++ Builder, č cosě?

 Se parli di "form", intuisco che tu stia usando C++ Builder, è così?
si infatti è proprio lui ....:D:D:D:D:D e quindi????????????
Beh cmq a prescindere dal metodo credo che la domanda sia invece che
approccio utilizzare, mi spiego.....io sto pensando a questo menu che
ripropone nello stesso form le eventuali procudere
dell'applicazione............o sarebbe meglio fare un form con un menu
che apre in ogni nuovo form le procedure?????????????
ciao e grazie

che apre in ogni nuovo form le procedure?????????????
La questione non è prettamente attinente al C++, quanto alle tecniche
da adottare con C++ Builder. Non so che cosa intenda tu con "processi"
e "procedure"; immagino siano le operazioni specifiche legate alle
voci di menu. Devi fare chiarezza su come vuoi che l'applicazione
venga costruita e realizzarla secondo quel modello. Per esempio, se
vuoi avere un menu e consentire a diverse "procedure" di alternarsi
sullo stesso form, puoi creare dei frame per ogni procedura, poi
crearli e distruggerli a seconda delle evenienze. Oppure puoi creare
form distinti, ognuno con le operazioni specifiche per la procedura,
ecc... ecc... Un altro approccio (che io ho seguito spesso) è quello
di avere la form dell'applicazione divisa in due parti: una parte
sinistra più stretta in cui compare un menu in stile outlook con
grossi bottoni e categorie di bottoni scorrevoli verso l'alto e il
basso (ogni categoria corrisponde a una funzionalità applicativa
specifica e può racchiudere più bottoni) e una parte destra più larga
(tipicamente tutta l'area client restante) in cui creare i form
relativi alla funzionalità selezionata dal menu verticale sinistro.
I modelli comunque sono veramente tanti, devi solo scegliere quello
che meglio risponde alle tue esigenze.
Spero di esserti stato d'aiuto.

(tipicamente tutta l'area client restante) in cui creare i form
Errata Corrige: in cui creare i *frame* (non i form).

 Errata Corrige: in cui creare i *frame* (non i form).
Hai centrato il mio problema.............l'unica perplessità è sui
frame?????????????
Che cosa sarebbero:D.....non ho trovato neanche della
documentazione.....nell'indice l'unico riferimento è al
Tcanvas:Rect?????
Non che ha a che fare con il fatto che uso c++ buider 1.0.
Scusa x questa serie in finite di domande, mi hai messo sulla strada
giusta ma mi resta il prob su come attivare, oscura questi
frame.........
Al momento l'applicazione è realizzata con il menu in un form e ad
ogni opzione apre un form in showmodal.....quindi per cambiare form
devo chiudere il form secondario e cliccare sulla voce del menu
corrispondente.....
Io vorrei modificare mettendo il menu e i form dell'applicazione allo
stesso livello.
Grazie ancora Jake

 Non che ha a che fare con il fatto che uso c++ buider 1.0.
I Frame sono dei componenti che puoi disegnare con l'IDE come le form,
ma che non sono finestre a se stanti. Sono molto comodi per realizzare
form complesse in modo strutturato. Se non ricordo male sono state
introdotte in C++Builder 4.0.
C++ Builder 1.0 ha piu' di dieci anni; se non stai mantenendo codice
pre-esistente non esiste alcun motivo valido per utilizzarlo, tanto
piu' che puoi scaricare gratuitamente Turbo C++ (corrispondente a C++
Builder 2006, se non ricordo male)
Ciao,
Nicola

Non che ha a che fare con il fatto che uso c++ buider 1.0.
I frame sono... frame :-)... semplici superfici, su cui puoi piazzare
i componenti visuali alla stregua delle form. Solo che sono superfici
piazzabili su qualunque form (ovviamente un frame non ha senso, senza
una form che lo ospiti). Sono molto comodi - ma è solo uno dei tanti
possibili utilizzi - quando non vuoi imbarcarti nella costruzione di
componenti visuali e quindi accorpi più componenti su un frame e ti
limiti a istanziare il frame tutte le volte che ti serve. Esempio
concreto: inserimento di un indirizzo IP4. Potresti pensare a un frame
che ospita quattro editbox separate da un punto. Lo istanzi su
qualunque form, tutte le volte che ti serve inserire un indirizzo IP.
La cosa bella dei frame è che essendo di fatto delle classi, il
comportamento è isolato. Al contrario, con le form, si mischia in modo
confusionario logica di presentazione e logica "controller" nelle
stesse unit. 
Nel tuo caso, i frame ospiteranno tutti i componenti e la logica che
riguarda la particolare sezione di dati che rappresentano. Una buona
soluzione è quella di avere il menu a sinistra, come ti ho già
spiegato, e la parte destra in cui, in un tabsheet, vengono create al
volo le pagine che ospiteranno i vari frame (una pagina <-> un frame).
Ovviamente l'utente deve poter chiudere le singole sheet. In questo
modo eviti l'orripilante e bloccante showmodal (che costringe l'utente
ad annullare un inserimento se deve andare in anagrafica a controllare
dei dati) e costruisci qualcosa di molto simile alle tab di Mozilla o
IE7.
Ovviamente, quando costruisco un'applicazione con questi sistemi, io
faccio uso avanzato di tutte le "facilities", come la mirabolante
ereditarietà visuale. Una vera manna dal cielo per chi vuol scrivere
rapidamente delle GUI.
E' un po' difficile, così, a parole, spiegare come fare queste cose,
specie quando si tratta di ambienti RAD in cui bastano due colpi di
click.
Considera che io conosco C++ Builder dalla versione 5.0 in poi, quindi
ignoro che cosa vi fosse nelle primissime edizioni. Posso intuire,
avendo visto lo scarnissimo Delphi 1.0, che non vi fosse alcunché di
"avanzato" tra i componenti visuali. Se è vero quello che dice Nicola,
dovrai dotarti di una versione più recente dell'IDE.

spiegato, e la parte destra in cui, in un tabsheet, 
Errata Corrige: in un pagecontrol.