Newsgroup: it.comp.lang.c++
Titolo: Ma qual'e' la strada per Windows ?

Salve ,
vorrei incominciare a programmare sotto windows ,ma fino adesso i
risultati non sono molto incoraggianti .
Premetto che ho la versione trial di Borland C++ Builder,e il vecchio
compilatore 3.0 Borland C++ per Dos e Windows (il quale lo uso da
molti anni per il Dos  con ottimi risultati ) .
Tralasciando la programmazione procedurale tramite le API di windows,
rimane la scelta delle OWL ,o delle nuove VCL di Builder .
All'inizio le VCL sembrano appetibili ,ma mi lasciano qualche dubbio
per quanto riguarda la flessibilita' di programmazione , per la
creazione dinamiche delle finestre e per il fatto che sono librerie di
Object Pascal adattate al C++, con alcuni limiti . 
D'altronde anche le OWL non scherzano in fatto di complessita' ,ma mi
sembrano strutturate in modo piu' flessibili e aperte .
Il problema fondamentale quindi ritengo sia quello di conoscere a
fondo le librerie OWL o VCL .
Non c'e' da aspettarsi molto dall'help in linea ,quindi ritengo siano
indispensabili testi specifici (in italiano) che trattano l'argomento.
Esistono tali publicazioni ?
Qual'e' il miglior compilatore fra C++Builder e Borland C++ 5.0 ?
E' questa la via da percorrere ?
Grazie .

...


 rimane la scelta delle OWL ,o delle nuove VCL di Builder .
Gia'.
Devi entrare in una filosofia diversa dal DOS.
Con le librerie di classe ogni parte dell'interfaccia e' un oggetto.
Un oggetto ha al suo interno tutti i metodi (le funzioni) che gli 
permettono di sapere come comportarsi, incluso disegnarsi sullo 
schermo e tutti i campi (dati) che lo descrivono.
E' un piccolo programma quasi indipendente all'interno del programma 
grande.
In Windows poi (come in tutti i moderni S.O. GUI) il tuo programma non
si svolge sequenzialmente come in DOS, ma ogni azione e' stimolata da 
un evento, ad esempio la pressione del tasto del mouse.
Windows in presenza di eventi invia messaggi all'applicazione 
interessata, nella fattispecie la tua, in OWL qualunque oggetto puo' 
rispondere in prima persona a un evento, l'oggetto che subisce 
l'evento e' il primo a saperlo.
Poiche' gli oggetti sono creati secondo una gerarchia (che decidi tu, 
pero' credo che come prima cosa convenga creare sempre una 
TApplication o sua derivata e una TWindow o una usa derivata), se ad 
esempio un pulsante non risponde a un evento che lo rigurda (pressione
di un tasto) puo' farlo l'oggetto di interfaccia sopra di lui e poi 
quello sopra ancora, fino ad arrivare a TApplication (o derivata) che 
sta al livello max.
Tutti gli eventi che non gestisci in prima persona vengono trattati 
automaticamente da OWL, il vantaggio rispetto alla programmazione con 
chiamate alle API e' questo, molte risposte sono definitie di default 
in OWL, questo ovviamente non significa che non puoi cambiarle, anzi 
cambiarle e' facile come ridefinirne il metodo in una tua classe 
derivata.
Sulla flessibilita' stai tranquillo che con OWL puoi fare qualsiasi 
cosa che faresti in C normale, non esistono limiti di flessibilita', 
laddove dovesse mancarti qualcosa puoi sempre ricorrere a una chimata 
all'API o al c standard, anche se ormai l'OWL stessa e' molto 
completa.
Comunque ci tengo a sottolineare che e' errata la credenza secondo la 
quale con le librerie di classi si perde in flessibilita', l'unica 
cosa vera e' che si guadagna in tempo e sicurezza.
Una nota, sopra ho parlato di gerarchia di oggetti, attenzione a non 
fare confusione, una cosa e' la gerarchia di classi che leggi dal 
diagramma sui manuali, un'altra e' come decidi di collegare gli 
oggetti che crei, sono due cose che non c'entrano nulla una con 
l'altra, tieni ben presente questo, se non l'hai ben chiaro fin 
dall'inizio e' piu' difficile imparare.
Per quanto riguarda OWL o VCL credo che sia un problema inesistente, 
quando ne avrai capito una avrai capito immediatamente l'altra, si 
trattera' giusto d conoscere i nomi degli oggetti, quindi scegli pure 
a caso.
--- Windows should be closed when running at Warp speed
** Email replies to 
md7...@mclink.it
 **
visit my homepage at: 
http://www.volftp.tin.it/IT/IT/ITALIANI/rullo/index.htm