ExtPascal: Installazione e configurazione

Con questo mini howto vedremo come è possibile installare ExtPascal su Lazarus. L'installazione che ho eseguito è stata effettuata su LinuxMint 11 ma credo che possa tranquillamente essere ritenuta valida per qualsiasi distribuzione linux con Lazarus/Free Pascal già funzionanti.

Il primo requisito fondamentale da verificare è la presenza dei componenti Indy e la compilazione (andata a buon fine) di uno dei progetti demo del pacchetto stesso. Senza Indy è inutile proseguire con l'installazione di ExtPascal. Comunque, a titolo informativo, nel mio caso si tratta di Indy 10.

Per effettuare la mia installazione ho seguito la guida che trovate in:
http://code.google.com/p/extpascal/wiki/GettingStarted


Download di ExtJs


Il primo dubbio arriva già ora. ExtJs, nel momento in cui scrivo, è alla versione 4; l'ultima release disponibile della 3 è la 3.4.0 mentre nella guida si fa riferimento esplicitamente alla 3.2.1.
Il dubbio è presto sciolto: scaricate esclusivamente la 3.2.1 in quanto con la 3.4.0 la compilazione dei progetti ExtPascal va a buon fine ma a run-time avrete delle bruttissime sorprese...

Usate quindi, per il download, il seguente link
http://www.sencha.com/products/extjs/download/ext-js-3.2.1



Download di ExtPascal

Scaricare la versione 0.9.8.0 da http://code.google.com/p/extpascal/downloads/list

Seguiamo la guida che troviamo in http://code.google.com/p/extpascal/wiki/GettingStarted
Per ora ci interessa seguire solo la prima parte, quella che ci permetterà di ottenere un ambiente di lavoro funzionante su Lazarus.

Citazione

01. Open ExtPascalSamples.dpr source in ExtPascalSamples folder using your favorite ObjectPascal IDE.


Riguardo questo punto, non credo ci sia molto da dire. :)


Citazione

02. For Lazarus set these Parsing options (menu \Project\Compiler Options\Parsing):
Syntax mode: 'Delphi'
ON C++ Styled INLINE
ON C Style macros
OFF Constructor name must be init
OFF Static Keyword in Objects
ON Use Ansi Strings


Sarete felici di sapere che, almeno io, ho trovato tutto correttamente
preimpostato e quindi, con molta probabilità, anche voi proverete lo
stesso senso disoddisfazione.

Citazione

03. For Delphi set these Syntax options (menu \Project\Options\Compiler):
04. For FreePascal use -Smdghie50 -venwhi -l as compiler options. Append these options -O2pPENTIUM4 -CXpPENTIUM4 -XXsi -CfSSE to release/final version. In Lazarus these options are not necessary, but you can use this path:


Questi punti, installando su Lazarus, vanno ignorati.


Citazione

05. Set the compiler "Search path" according. By example to C:\ExtPascal; C:\ExtPascal\ExtJSWrapper


In progetto -> Opzioni del Compilatore -> campo "altri file unit (-Fu)"
verificate che siano impostate sia la path per Indy che per ExtPascal:
nel mio caso:
- /usr/lib/lazarus/0.9.28.2/components/indy/lazarus/lib/
- /usr/lib/lazarus/0.9.28.2/components/ExtPascal-0.9.8/


Citazione

06. Compile ExtPascalSamples as example.


Aprite il progetto ExtPascal_embedded.lpi
Si tratta del modo più veloce di iniziare a vedere ExtPascal in
quanto, senza dover né reperire né configurare un web server, abbiamo
la possibilità di avere un binario con un web server embedded, cioè
è il binario stesso il web server. E questo grazie ad Indy.

Se nel vostro PC avete comunque già un web server che occupa la porta
80, prima di compilarlo cercate la riga

Codice: [Seleziona]

Application := TIdExtApplication.Create('ExtPascal Samples ' + ExtPascalVersion, TSession, 80, 5);


e sostituite il parametro 80 con 8080. In questo modo non avrete
interferenze sulla porta del web server che avete già installato.


Ultime impostazioni

Prima di lanciare la demo occorre fare un'ultima operazione. Ricordate
ExtJs scaricato all'inizio? Ebbene decomprimetelo in una cartella,
rinominatela in "ext" e copiatela nella cartella root del web server.
Nel nostro caso, nella stessa cartella del binario ottenuto dalla
compilazione.



Lancio

A questo punto non vi resta che lanciare da riga di comando:
./ExpPascalSample

e far puntare il vostro browser su:
http://localhost:8080/Home



ExtPascal toolkit


Per progrmmare agevolmente con il binomio Lazarus + ExtPascal si necessita di installare anche i componenti "ExtPascal toolkit" (http://web.me.com/macpgmr/ExtPascal/).
Questi componenti sono pressoché indispensabili per sviluppare nuove applicazioni in quanto mettono a disposizione:

Se già avete seguito la guida di installazione di ExtPascal fino a quì vuol dire che avete già scaricato quasi tutto quello che vi serve. Ora procediamo all'installazione, per prima cosa diamo per assodato che se vi trovate su linux avete messo la cartella con ExtPascal nella seguente posizione

/usr/lib/lazarus/0.9.30/components/ExtPascal-0.9.8/ (dove ovviamente 0.9.30 corrisponde con la vostra versione di Lazarus)

oppure se siete sotto windows

c:\lazarus\components\ExtPascal-0.9.8\

Bene all'interno di questa cartella trovate la seguente sotto cartella "ExtP Toolkit" andate a rinominarla così "ExtPToolkit", ovvero senza spazi. Perchè può dare problemi in fase di compilazione.

Bene ora abbiamo bisogno di scaricare orpheus, quindi andate alla seguente pagina web

http://wiki.lazarus.freepascal.org/OrphPort

ed eseguite il download tramite svn nella cartella in cui vi trovate ora ovvero "ExtPascal-0.9.8"

Ora aprite lazarus ed installate i seguenti package nell'ordine:

extp_ctrls/extp_ctrls.lpk
extp_proj/extp_proj.lpk
orpheus/orpheus.lpk
extp_grid/extp_grid.lpk

Bene ora che avete compilato ed installato questi package dovete aprire il progetto fmtoextp/fmtoextp.lpi e compilarlo. Bene ora il vostro lazarus è pronto per lavorare con ExtPascal.



Configurare Apache

Per far funzionare il tutto con Apache come web server, si richiede che sia installato il package components/fpweb/weblaz.lpk

Poi scaricare il seguente file
 http://www.fastcgi.com/dist/mod_fastcgi-2.4.6-AP22.dll

rinominarlo in "mod_fastcgi.so"
spostarlo in c:\apache\modules o equivalente

In (C:\Apache\conf) httpd.conf file inserire la seguente riga dove si trovano anche gli altri LoadModule

Codice: [Seleziona]
LoadModule fastcgi_module modules/mod_fastcgi.so


Dichiarare il server esterno del fastcgi, aggiungere la seguente riga al fondo del file httpd.conf:

Codice: [Seleziona]
fastcgiexternalserver cgi-bin/NomeDelVostroEseguibileCGI –host localhost:2014 –idle-timeout 3


Riavviare apache, eseguire da linea di comando il programma NomeDelVostroEseguibileCGI (contenuto nella cartella cgi-bin) e digitare

Codice: [Seleziona]
localhost/cgi-bin/NomeDelVostroEseguibileCGI


(altre informazioni le potete reperire all'indirizzo http://code.google.com/p/extpascal/wiki/GettingStarted ad esempio per ubuntu la procedura è leggermente diversa)


Hello world

Bene, ora vediamo come costruire la nostra prima applicazione con le ExtPascal:

File --> New --> ExtPascal Application

Vi compare una form (di tipo TExtWindow)

andate nella tab "ExtPascal" della palette e trascinate un pulsante (di tipo TExtButton) sulla form. Cliccate due volte sul pulsante e inserite il seguente codice

Codice: [Seleziona]
ExtMessageBox.Alert('Hello','Wolrd');


Ora andate a cambiare la proprietà Text del pulsante in "PREMERE QUI".

Ora compilate il progetto e quando avete ottenuto l'eseguibile spostatelo nella cartella c:\apache\cgi-bin\ oppure in /usr/lib/cgi-bin/

Quindi la riga che prima abbiamo menzionato se l'eseguibile si chiama project1 da così

fastcgiexternalserver cgi-bin/NomeDelVostroEseguibileCGI –host localhost:2014 –idle-timeout 3

dovrebbe diventare (per linux)

Codice: [Seleziona]
fastcgiexternalserver cgi-bin/project1 –host localhost:2014 –idle-timeout 3


oppure (per window)

Codice: [Seleziona]
fastcgiexternalserver cgi-bin/project1.exe –host localhost:2014 –idle-timeout 3


Ipotizziamo che il vostro eseguibile si chiama project1 dovete aprire una console o shell ed eseguire questa vostra applicazione.

Ora se tutto è correttamente impostato dovreste aprire un browser e digitare

http://localhost/cgi-bin/project1.exe                       (se usate windows)

http://localhost/cgi-bin/project1                              (se usate linux)


Godetevi le fatiche del vostro lavoro!
xinyiman e nomorelogic




SMF 2.0.8 | SMF © 2011, Simple Machines
Privacy Policy
SMFAds for Free Forums
TinyPortal © 2005-2012

Go back to article