Pascal

Delphi 2010 … code name “Weaver”

martedì 4 Agosto 2009, 10:53
ivan.revelli@synaptica.info

In anteprima Devid Intersimone e Nick Hodges mostrano alcune delle nuove features di Delphi 2010, pubblicate sul sito di Embarcadero a questo indirizzo.

Sicuramente ciò che mi ha maggiormente colpito è l’estensione del Debugger, che si apre in modo semplicissimo in un applicazione multi thread. La cosa impressionante è che ogni thread viene automaticamente indicizzato, e si può saltare a livello di debug da un thread all’altro.
Fin qui bello, ma a un certo punto Nick clicca su uno dei processi thread visibili nella finestra di Debug e con il tasto destro dice al sistema di interrompere un thread, il tutto in un progetto nativo, da paura, per me fantascienza.

Oltre a queste cose, l’IDE e le funzionalità  di Delphi progrediscono da spavento, un piccolo assaggio delle news dell’ide :

Video relativo ai nuovi componenti che permetto di gestire in modo a dir poco banale tutti i nuovi sistemi di puntamento (viva Apple) [RAD Studio 2010 – Touch & Gestures]:

Video sulle potenzialità  del nuovo IDE :

Strumenti API migliorati , per dare un piccolo sguardo il link all’articolo

Delphi 2010, riassunto do Dr.Bob’s :

* User Experience
Weaver will place a strong emphasis on providing usability enhancements. We are examining the IDE for features large and small that improve usability and productivity. Often, focusing on major features that causes the delay for other, littler features. Most developers have a few “nitpick” features that they’d like to see integrated into the IDE. We plan on doing as many of those types of things as we can in order to improve the overall usability and development experience.
* Connectivity
Weaver will continue to provide support for high-quality, easy-to-use database connectivity for Client/Server and Multi-tier developers.
* Documentation
Weaver will place a heavy emphasis on providing thorough, complete, useful, and easy to access documentation.
* IDEInsight(tm)
easy keyboard action to almost everything
* Improvements to the DataSnap framework, including:
o HTTP protocol
o Server callbacks
o Restful Web Services
o Stream handling (i.e. for encryption or compression)
o .NET Procy generation
* Firebird Support
* .NET AOP (Aspect Oriented Programming)
* SCM
A new Open Tools API interface that provides support for Source Control Management. Weaver will provide an implementation for Subversion.
* Enhanced RTTI support
* Seamless .NET <> Native communication
* Windows 7 APIs and Direct2D
* Full support for SOAP 1.2 Clients

beh resto in attesa di news in merito, anche se la cosa che aspetto con maggiore ansia è la versione cross-platform di tutta la piattaforma.
lo so che son un sognatore..

a presto
Ivan

Delphi openGL and 3ds files….

giovedì 23 Luglio 2009, 16:11
ivan.revelli@synaptica.info

opengl.png

Ambiente di sviluppo : Microsoft Visual C++ , Delphi 7.0, GNU GCC

Come tutti ormai credo sappiano Borland include una libreria per la gestione dell’OpenGl che appunto si chiama OpenGl.pas che a sua volta mappa per windows buona parte dei metodi contenuti nella dll di sistema ‘opengl32.dll’. Questa libreria funziona molto bene, ed in passato la vecchia Borland aveva anche fatto il corrispondente .so per l’ormai defuntu Kylix.
Tutto ciò è molto carino ed esaltante, però a meno di volersi disegnare gli scenari da codice , una cosa sicuramente necessaria è la possibilità  di importare oggetti e scenari da un programma apposito. Quale programma se non il mitico 3d Studio ?
A questo punto ci si imbatte in una ricerca frenetica su internet incappando in diverse solozioni , tra cui una libreria interamente scritta in Delphi ed open source da un sito SULACO , a prima vista sembra funzioni tutto correttamente ma manipolando texture e punti luce affiorano dei piccoli problemi. Ovviamente è un buon lavoro che per chi è interessato permette di comprendere un po la struttura dei files 3ds e magari da una base per farne di conseguenza delle correzioni.
Provando e riprovando librerie si incappa nalla libreria “lib3ds” al sito www.lib3ds.org, questa libreria oltre ad essere molto veloce è anche semplicissima da utilizzare. A parte qualche prova iniziale ricompilandola come dll usando Microsoft Visual C++ ci è stato semplice utilizzarla con Delphi.

Su internet avevamo trovato già  dei sorgenti in C++ che permettevano di compilarne una dll facilmente utilizzabile, e la dll creata dal progetto si chiama lib3dsloader.dll , c’era però qualche problema nel richiamo delle procedure, perchè la definizione in C++ non era stdcall. Allora abbiamo apportato al sorgente questa piccola modifica :

1 – nel file lib3dsloader.h abbiamo definito il tipo di riferimento per l’esportazione dei metodi (LIB3DSLOADERAPI ) come __stdcall
2 – la funzione “ivan” dato un pathfile e un “filename” ritorna l’id “hadle” della memoria dove gli oggetti 3d studio sono caricati , i parametri da Delphi dovranno essere dei pChar che corrispondono in C a char *

nell’implementazione, cioè nel file lib3dsloader.cpp abbiamo modificato un po le definizioni in modo da renderle compliant, definendo il gruppo di funzioni esportate come “Extrnal C”

Download :
src libreria 3ds compreso di binario

Per usare questa libreria :

1) dovete copiare le due dll (lib3dsloader.dll e lib3ds-2_0.dll ) nella directory del progetto.
2) abbiamo creato una “unit” (libreria per i non delphini) che mappi i metodi della stessa (per il momento ci serve esclusivamente caricare gli oggetti 3dstudio), il codice della libreria per il richiamo :

ora creiamo un progetto… dove nel form main usiamo la unit dove abbiamo definito il map con la DLL

a questo punto avete caricato e state vedendo il vs modello 3DStudio all’interno del vostro form Delphi, ovviamente non ditemi quant’è veloce perchè ci son rimasto di stucco, viaggia alla stragrande anche dentro una virtual machine con le OpenGL in emulazione…. (da paura)

se avete bisogno di chiarimenti in merito lasciate pure un commento mi arriva la mail ….

a presto
ivan

Back from London …. Emabrcadero Workshop

giovedì 18 Giugno 2009, 9:02
ivan.revelli@synaptica.info

bang

Questa settimana abbiamo fatto una visitina a Londra al fine di partecipare al “Embarcadero Technologies Developer Workshop”, dove era presente David Intersimone “Chief Evangelist of Embarcadero”.
A questa sessione erano presenti diversi membri della comunità  Delphi Inglese, che è una comunità  di sviluppatori molto attiva. Gli argomenti affrontati da David I.sono stati molti, cercherò di fare un piccolo riassunto :

  • La futura versione di Delphi a 64Bit per Windows “Weaver”
  • ProjectX o DelphiX la versione in lavorazione e non ancora visibile di Delphi cross-platform
  • Una panoramica dei DB Tools di Embarcadero
  • Alcune novità  su Delphi Prism e DotNet 4.0
  • Emabrcadero All-Access
  • Un po di planning futuro…
  • Mi aspettavo presentassero una roadmap nuova per i loro prodotti,, ma per il momento hanno detto cosa vogliono fare ma non ho visto delle date ufficiali di rilascio dei vari prodotti.

    La futura versione di Delphi a 64Bit per Windows “Weaver” dovrebbe vedere la luce i primi del 2010, elenco alcuni dei punti di forza di questa versione :

  • La novità  maggiore è che dopo 14anni hanno messo mano al compilatore… Weaver permetterà  la compilazione del codice a 64bit per i sistemi Windows quindi il tipo di compilazione probabilmente sarà  scelta al momento della compilazione, ovviamente il supporto a 32bit rimarrà  a pieno.
  • Ovviamente ci sarà  il pineo supporto delle novità  di Windows 7
  • Hanno annunciato il supporto ufficiale di Firebird
  • Il compilatore sarà  comune per Delphi e C++ Builder
  • Supporto completo per la applicazioni native a SOAP 1.2
  • ProjectX o DelphiX la versione in lavorazione e non ancora visibile di Delphi cross-platform, che comprenderà  ovviamente anche C++ Builder , è una novità  attesa credo da moltissimi sviluppatori Delphi. A mio avviso un passo importante e dovuto, a quanto affermato ufficialmente da Embarcadero molti dei loro grossi clienti in America si sono spostati al mondo Mac. La domanda che risultava ovvia era il paragone tra questa nuova versione e il caro buon vecchio Kylix, al che David ha affermato delle grosse differenze. ProjectX probabilmente avrà  un unico IDE Windows e al momento della compilazione verrà  richiesto per quale ambiente compilare, sarà  possibile il debug su macchine remote e già  stanno lavorando a DataSnap per questa versione. Ciò significa la completa interoperabilità  delle applicazioni tra ambiente diversi sia a livello di metodi che di scambio dati. Importante inoltre il fatto che la VCL sarà  comune e indipendente dalla piattaforma, nel senso che per il programmatore un bottone sarà  un TButton sia per le applicazioni Windows che per tutte le altre piattaforme.
    Speriamo che questa versione esca presto, non vedo l’ora di ricompilare i miei lavori per linux.

    Una panoramica dei DB Tools di Embarcadero che sono veramente dei tool per DB fantastici, la cosa che mi piace di più di questi tools è che con lo stesso strumento gestisci DB diversi , quindi significa conoscere uno strumento unico. Al di là  delle features incredibili di questi tools (l’optimizer fa paura, l’ho visto girare su una stored oracle ), il fatto di conoscere un unico strumento abbatte tantissimo i tempi di migrazione da un db all’altro.

    David and I

    Alcune novità  su Delphi Prism e DotNet 4.0 è un argomento che personalmente non mi interessa un granchè, per DotNet tendo ad utilizzare C# trovo che Prism abbia una sintassi troppo differente da quella di Delphi pur essendo Object Pascal. Cmq Prism è compliant con le ultimissime versioni di Dot Net ed è integrato nel’IDE di Visual Studio. La cosa che mi interessa di questo ambiente per il momento è DataSnap che permette un veloce e semplice protocollo cross per il trasporto dei dati tra DotNet e le applicazioni native, senza dimenticare l’invocazione remota dei metodi. Altra cosa che Prism aggiunge alle potenzialità  di Visual Studio è il fatto di produrre applicazioni per le diverse distribuzioni di DotNet per gli ambienti Mac e Linux.

    All Access

    Emabrcadero All-Access è stile msdn di Microsoft, è una piattaforma che da accesso a tutti i tools di sviluppo e gestione DB di Embarcadero, una cosa molto carina è che tutta la piattaforma può essere copiata in locale ed eventualmente trasferita su chiavetta usb. Alcune delle applicazioni (ovviamente Delphi 2009 no) possono essere eseguite senza installazione dalla chiavetta.
    Altra cosa comoda è che per tutte le applicazioni è sufficiente una chiave unica riducendo drasticamente gli sbattimenti di liceze chiavi e quant’altro.

    future

    Un po di planning futuro.., alla fine David ha mostrato delle slides dove erano elencati tutti gli obiettivi futuri di Embarcadero e dei tools di sviluppo, attualmente credo che abbiano già  abbastanza carne al fuoco … e soprattutto io ero sfinito.

    Lazarus 0.9.26.2-0 beta ..

    giovedì 18 Giugno 2009, 8:33
    ivan.revelli@synaptica.info

    Lazarus

    The Lazarus project is a Delphi clone IDE based on the open source project “Free Pascal”, this project exists from several years. Under windows i use Delphi that is a really rocks , the advantage of Lazarus is that is OpenSource and work under a lot of O/S like Windows, MacOSX and Linux. The compiler of Lazarus is soo fast a the code produced is really good and fast.
    Last month was released the new version of Lazarus , and i am trying to use the 0.9.26.2-0 beta under Ubuntu Hardy, i found it really good and a lot of advanced between prev versions. In this period the lazarus comunity is on working a lot and there are a lot of new free components usable by Lazarus and Delphi. The compatibility between Delphi and Lazarus is good except for the components who not run on Lazarus.
    Here you can find the lastest snapshot of the project : http://snapshots.lazarus.shikami.org/lazarus/

    try it is cool
    by Ivan

    so funny…. from Delphi live

    domenica 24 Maggio 2009, 10:01
    ivan.revelli@synaptica.info

    Nick Hodges, R&D Manager Allen Bauer, Chief Scientist Embarcadero Technologies DelphiLive! 2009 May 2009 in San Jose RTTI Project “X” – Delphi application running on Mac OSX

    very funny video from delphi live, at the end of the video there is a JBuilder team developer that show a command line compiler of Delphi (incredible on a mac osx system) …. the speakers are so funny and show work maded some day before of the presentation. With a navigation class at one time compare a TKomponet class (only a cazy develor can do this…)

    have a good look
    bye
    ivan

    Create an invisible application with Delphi

    mercoledì 8 Aprile 2009, 15:56
    ivan.revelli@synaptica.info

    [lang_it]

    produrre un applicazione non visibile con Delphi è un gioco da ragazzi.

    per nascondere il form principale dell’applicazione dovete semplicemente aggiungere la seguente riga al codice del vs. progetto :
    Application.ShowMainForm:=False;

    esempio concreto, modifico il “dpr” della mia applicazione:

    non finisce qui, voglio anche esser sicuro che non si veda sulla taskbar il bottone associato all’applicazione, per far ciò nell’evento onCreate del form principale aggiungo quanto segue, se sto usando Delphi 7.0 o versioni precedenti :

    (with Delphi 7.0)

    Con Delphi 2007 o maggiore, per nascondere il bottone sulla taskbar è necessario semplicemente settare la proprietà  dell’oggetto form “MainFormOnTaskbar” a false.

    e questo è tutto, ora l’applicazione gira, pre chiuderla ovviamente non vi resta che il taskmanager.

    [/lang_it]
    [lang_en]
    to produce an invisible application with Delphi is soo simple….

    to hide the main form at application start you need to add in your project source a this code :

    Application.ShowMainForm:=False;

    full piece of code:

    for hiding the taskbar button you need to add following code on the create event handler of you main form like :

    (with Delphi 7.0)

    with Delphi 2007 or greater, to hide task bar button you need to set the property “MainFormOnTaskbar” to false of your main form.

    thats all, now you can’t see the application on your DeskTop.

    [/lang_en]

    Scoprite cosa possiamo fare per il vostro business
    I nostri linguaggi