Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20
  1. #11
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da Ephestus
    Alka il tuo modo di chiudere le form mi dà qualche problema...
    Dovresti scrivere qual è il problema (e scrivere il tuo codice) se vuoi che ti dica sì o no...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  2. #12
    Il problema non è all'atto pratico (non ci sono errori perché non l'ho ancora compilato), ma è che non ho mai avuto a che fare con le eccezioni e quindi me le sono lette in queste ultime 4 orette di "pseudolavoro".

    Nelle varie guide ho notato che try si usa per far compiere una funzione o processo, il quale, se non va a buon fine, restituisce un errore che, seguito dalla parola chiave catch e da qualche altra funzione, si può far si di controllare e gestire l'errore.

    __finally{func();}invece è l'azione che viene eseguita alla fine della funzione, o processo, presente in try...prima di chiudere il tutto...

    fin qui è esatto?


    Bhé se io nel progetto ho questo:
    codice:
    #include <vcl.h>
    #pragma hdrstop
    USERES("CTC.res");
    USEFORM("..\Cisco Template Creator\Inizio.cpp", F_Inizio);
    USEFORM("..\Cisco Template Creator\About.cpp", AboutBox);
    USEFORM("..\Cisco Template Creator\C_827.cpp", F_827);
    USEFORM("..\Cisco Template Creator\C_2520.cpp", F_2520);
    USEFORM("..\Cisco Template Creator\C_1601.cpp", F_1601);
    //-----------------------------------------------------------
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
            try
            {
                     Application->Initialize();
                     Application->CreateForm(__classid(TF_Inizio), &F_Inizio);
                     Application->CreateForm(__classid(TAboutBox), &AboutBox);
                     Application->CreateForm(__classid(TF_827), &F_827);
                     Application->CreateForm(__classid(TF_2520), &F_2520);
                     Application->CreateForm(__classid(TF_1601), &F_1601);
                     Application->Run();
            }
            catch (Exception &exception)
            {
                     Application->ShowException(&exception);
            }
            return 0;
    }
    1)Dove lo piazzo __finally?? io l'ho posto subito prima di return 0;
    2)Più lo rileggo più sono convinto che tutto questo non va in questo .cpp, ma in quello relativo alla Form F_Inizio

    Ne ho altre ma ho finito il mio turno...continuo domani...


  3. #13
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Il costrutto try...catch serve per intercettare eventuali eccezioni che potrebbero verificarsi nel blocco di istruzioni compreso tra le parole chiave try e catch.

    Il costrutto try...finally permette di definire un blocco di istruzioni (quello incluso in finally) che viene comunque eseguito qualsiasi cosa accada nel blocco di istruzioni incluso tra le parole chiave try e finally.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #14
    Ho capito...finalmente ho capito cosa significa e dove va inserito try...__finally
    Dopo 4 giorni di vacanze ho realizzato quello che intendevi dire.

    Grazie dell'aiuto


  5. #15
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da Ephestus
    Ho capito...finalmente ho capito cosa significa e dove va inserito try...__finally
    Dopo 4 giorni di vacanze ho realizzato quello che intendevi dire.
    Ricordati di leggere anche la Guida in linea a riguardo: ci sono tutte le indicazioni, per qualsiasi costrutto e parola chiave.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #16
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Ma in C++ Builder le interfacce grafiche con che libreria sono costruite? Uan libreria sviluppata da borland (vcl? ) o si usano le MFC? E il codice che gestisce l'interfaccia si puo editare a mano o si possono solo scrivere le funzioni handler degli eventi?



  7. #17
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da anx721
    Ma in C++ Builder le interfacce grafiche con che libreria sono costruite? Uan libreria sviluppata da borland (vcl? ) o si usano le MFC? E il codice che gestisce l'interfaccia si puo editare a mano o si possono solo scrivere le funzioni handler degli eventi?
    Delphi e C++Builder sono due ambienti di sviluppo RAD che si basano sulla VCL (Visual Component Library); si tratta di una libreria che contiene un insieme ben nutrito di classi, funzioni e procedure.

    Alcune classi sono di infrastruttura; ad esempio, TObject è la classe base dalla quale derivano (implicitamente) tutte le classi, poi vi sono classi come TComponent, TControl e altre che danno vita a gerarchie di classi legate alla creazione di componenti, controlli visuali e così via, fino ai controlli di tipo più complesso. Esistono inoltre classi di supporto (liste, pile, code, collezioni, ecc.) nonchè funzioni e procedure per la conversione dei valori, il calcolo con valori data/ora e più moduli (unit) che contengono la definizione delle API di Windows, usate all'interno della librerie stessa per creare poi i controlli visuali e incapsulare funzionalità del sistema operativo affinchè lo sviluppatore possa trarne vantaggio.

    La libreria VCL viene distribuita con il codice sorgente, pertanto è utile anche dare una sbirciata al codice per capire come Borland ha implementato una determinata cosa, che pattern ha usato e come si può fare tesoro del caso in esame per replicarlo nell'organizzazione del proprio codice.

    Il codice sorgente a disposizione permette inoltre di compilare i file eseguibili includendo tale codice, come se lo sviluppatore lo avesse scritto di proprio pugno (o dito?), sebbene sia stato implementato da Borland; è per questo che Delphi e C++Builder producono eseguibili "standalone".
    In alternativa, si possono compilare i programmi utilizzando package (librerie) che contengono tale codice già compilato in una sorta di DLL condivisibile tra le applicazioni...in poche parole, la massima varietà di scelta nel deploy delle proprie applicazioni, a seconda delle esigenze.

    Le risorse offerte dalla VCL (classi, metodi, funzioni e procedure) sono identiche per Delphi e C++Builder, così come sono compatibili i compilatori, sebbene nel primo essa sia implementata in linguaggio Object Pascal (ora denominato solo "linguaggio Delphi"), mentre nel secondo è scritta in linguaggio C++. Questo consente da un ambiente la produzione di componenti, librerie e package condivisibili con l'altro, e viceversa.

    Essendo fornita col sorgente, è ovviamente possibile modificarlo, anche se io in genere preferisco non farlo per i seguenti (buoni) motivi:
    dato che non si può avere tutto il background esperienziale dei programmatori Borland nella creazione della libreria, è possibile renderla inservibile se le modifiche riguardano una parte "centrale" di essa, con il risultato che si dovrebbe reinstallare il prodotto; in secondo luogo, stiamo parlando di linguaggi completamente object oriented, pertanto è molto meglio creare discendenti delle classi che ci interessa estendere e modificarne (leggi: specializzarne) il comportamento, evitando tutti i possibili problemi derivanti da una modifica del codice originale, che tra l'altro porrebbe lo sviluppatore nella condizione di avere un codice differente da quello di tutti gli altri rendendo difficile ottenere aiuto da forum e newsgroup.

    Parere del tutto personale: la VCL è la libreria meglio progettata che ho mai visto, poichè esiste da Delphi 1 ed ha già attraversato il porting da Win16 a Win32 (con Delphi 2), poi quello da Win32 a .NET (di recente introduzione con Delphi 8) con una compatibilità all'indietro ineguagliabile per i prodotti della categoria RAD di cui fa parte (per controprova, prova a chiedere ad un programmatore VB .NET proveniente da VB6 quanto è facile eseguire il porting in .NET di una propria applicazione legacy realizzata con VB6 o una versione precedente)...

    Questo indica senz'altro che Borland mette un certo impegno nell'aiutare il porting delle applicazioni, ma anche che la VCL è stata comunque progettata sin dalla nascita con delle prerogative in grado di renderla robusta nel tempo.
    In definitiva, era già un ottimo prodotto.

    Credo di essere stato esaustivo...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #18
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da alka

    Credo di essere stato esaustivo...
    si, grazie,


  9. #19
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Ma la diffewrenza tra c++Builder e c++BuilderX qual è? Sul sito della borand si lege che X include piu compilatori, ma per il resto?

  10. #20
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da anx721
    Ma la diffewrenza tra c++Builder e c++BuilderX qual è? Sul sito della borand si lege che X include piu compilatori, ma per il resto?
    La differenza tra C++Builder e C++BuilderX è totale.

    Si tratta di due prodotti completamente differenti.

    C++Builder, che penso abbia raggiunto la versione 6, è un ambiente per lo sviluppo di applicazioni Win32 (incluse console, DLL, CGI/ISAPI e altre ancora) con il linguaggio C++, ed è basato sulla VCL come descritto nel messaggio precedente.

    C++BuilderX è un ambiente C++ per la programmazione distribuite su diverse piattaforme e sistemi operativi (ad esempio, PDA e cellulari); si tratta di un ambiente che è più simile ad Eclipse piuttosto che al classico C++Builder. E' integrabile con diversi compilatori nonchè con diversi SDK i quali, ospitato al proprio interno, rendono l'ambiente uno strumento consistente per sviluppare applicazioni per i dispositivi più diffusi usando estensioni fornite dai rispettivi produttori (ad esempio, Symbian, Siemens e altri che distribuiscono i propri SDK).

    Al momento, non sono a conoscenza di nuove versioni in produzione di C++Builder, ma è probabile che ve ne saranno, che ne so forse integrate con C#Builder (un altro ambiente ancora, basato sul linguaggio C#, per lo sviluppo con il .NET Framework).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.