ExtPascal: Installazione e configurazione /  ExtPascal: Installation and configuration

Italiano   English

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 installazione di Lazarus/Free Pascal.

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:
 
With this mini howto we'll see how install ExtPascal in Lazarus. I tryed this installation on LinuxMint 11 but, I think, it may safely be considered valid for any linux distro with Lazarus / Free Pascal already installed.                                                            

The first prerequisite is to verify the Indy components existence and (successful) compilation of package itself and a demo project. Without Indy is useless to continue with the installation of ExtPascal. However, for information, in my case I used Indy 10.                                                      

To perform my installation I followed the guide found 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
 
The first question comes immediately. ExtJS, at the time of writing, is at release 4, the latest minor release (referred to 3) is 3.4.0, while the guide refers explicitly to 3.2.1.
The doubt is soon dissolved: download the 3.2.1 cause compilation using 3.4.0 is successful but you'll get ugly surprises at runtime...                                                                        

So use the following link                              


http://www.sencha.com/products/extjs/download/ext-js-3.2.1



Download di ExtPascal



Ora possiamo scaricare la versione 0.9.8.0 di ExtPascal e, per fare questo, seguiamo il link sotto riportato
 
Now we can download version 0.9.8.0 of ExtPascal and, to do this, follow the link below                        


http://code.google.com/p/extpascal/downloads/list


Segue il link della guida, della quale per ora seguiremo solo la prima parte, quella che ci permetterà di ottenere un ambiente di lavoro funzionante su Lazarus.
 
Ora segue il link della guida, della quale per ora seguiremo solo la prima parte, che ci permetterà di ottenere un ambiente di lavoro funzionante in Lazarus.    


http://code.google.com/p/extpascal/wiki/GettingStarted

Citazione

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



Riguardo questo punto, non credo ci sia molto da dire. :)                                                                                                                        
 
Regarding this point, I do not think there's much to say. :)                                                                                                                      


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.
 
You will be pleased to know that, at least I've found everything correctly preset and then, most likely, you too will experience the same sense of satisfaction.              


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.                                                                                                                                                      
 
These steps, when installing on Lazarus, can be ignored.                                                                                                                                                


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:
 
In Project -> Compiler Options -> "other unit files (-Fu)" make sure you find paths for Indy and ExtPascal; in my case:                                                


- /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:
 
Open ExtPascal_embedded.lpi project. This is the fastest way to start using ExtPascal because without having set up a web server, we can have a binary with a web server embedded inside. And this, thanks to Indy.                                                                                                                        
In case your port 80 is not free, e.g. used by a web server, please find in source code the following line:        


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.
 
and substitute the 80 with 8080. In this way you will have no interference against the web server port already in use.



Ultime impostazioni / Last settings



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.
 
Before launching this demo you need a last setting. Do you remember ExtJS downloaded few minutes ago? Well, unzip into a folder, rename it "ext" and copy it into the root of the web server. In our case, in the same folder as the binary obtained from the compilation.



Lancio! / Run!



A questo punto non vi resta che lanciare da riga di comando:                                                                                                                                
 
All you need is execute following code from a shell                                                                                                                                              


Codice: [Seleziona]

./ExpPascalSample



e far puntare il vostro browser su:                                                                                                                                                                  
 
and set your favourite browser pointing to                                                                                                                                                        


http://localhost:8080/Home


ExtPascal toolkit



Per programmare 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:
  • FmToExtP: un tool a linea di comando che, udite udite, converte form in delphi/lazarus in codice ExtPascal!
  • Componenti specifici per la programmazione in ExtPascal
  • l'aggiunta di "ExtPascal Application" e "ExtPascal Form" alla lista "Nuovo..."
  • un componente griglia aggiuntivo da usare con ExtPascal da Lazarus o Delphi

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
 
To easily work with Lazarus and ExtPascal you need to install additional components "ExtPascal toolkit" (http://web.me.com/macpgmr/ExtPascal/).
We can consider these components almost indispensable to develop new applications as they provide:
  • FmToExtP: a command line tool to convert Delphi / Lazarus forms in ExtPascal code!
  • Specific components for programming in ExtPascal
  • addition of "ExtPascal Application" and "ExtPascal Form" to "New ..." list options
  • a ExtPascal grid component to use from Lazarus or Delphi

If you've followed the ExtPascal installation guide up to here, means that you have already downloaded almost everything you need. We can proceed our installation process. Let's take it for granted that correct location for ExtPascal folder is in Lazarus components folder. E.g. on linux you must save the ExtPAscal folder in the following location:

/usr/lib/lazarus/0.9.30/components/ExtPascal-0.9.8 / (where 0.9.30 represents your Lazarus release)

on Windows

c:\lazarus\components\ExtPascal-0.9.8\

Well, within this folder you can find "ExtP Toolkit" subfolder and we're going to rename as "ExtPToolkit", without any spaces. Just to avoid problems at compile time.

Well now we need to download orpheus, then go to the webpage


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:
 
and download using snv into the folder you're in: "ExtPascal-0.9.8"                                            
Now run Lazarus to install following packages in the same order as:

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.
 
After these packages are compiled and installed, you must open and compile the project fmtoextp/fmtoextp.lpi.
Well now you're ready to work with lazarus ExtPascal.



Configurare Apache / Configure 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
 
To make all works fine with Apache web server, "components/fpweb/weblaz.lpk" component is required, so you must compile and install this one too.
Then download the following 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
 
rename as "mod_fastcgi.so"
and move in c:\apache\modules (or equivalent)
In (C:\Apache\conf) httpd.conf file insert following line in same section of other "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:
 
To declare the fastcgi external server, add following line at bottom of httpd.conf file:                


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
 
Restart Apache and run, on a shell, as command line, NameOfYourCGIApplication program (stored in cgi-bin folde) using                      



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)
 
(you can find more info at http://code.google.com/p/extpascal/wiki/GettingStarted e.g. on ubuntu Apache configuration is slightly different)



Hello world


Bene, ora vediamo come costruire la nostra prima applicazione con le ExtPascal:
 
Well, now we see how to build our first application with 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
 
A new (type TextWindow) form will appear.
Go to the "ExtPascal" palette and drag a button (type TExtButton) on the form. Double click on the button, and enter the following code


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)
 
Now change the Text property of the button "CLICK HERE".
Now compile the project and move it, when you got the executable, in c:\apache\cgi-bin\ or /usr/lib/cgi-bin/ folder.
So in case your project is called as "project1", referring to previous line, from
fastcgiexternalserver cgi-bin/NomeDelVostroEseguibileCGI-host localhost: 2014-idle-timeout 3
now should become (on linux)


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


(Windows)

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
 
Assume that your executable is called project1 you open a shell and run this console or your application.                                        
Now if everything is set correctly you should open a browser and type


http://localhost/cgi-bin/project1.exe                       (Windows)

http://localhost/cgi-bin/project1                              (Linux)


Godetevi le fatiche del vostro lavoro!                                                                                                  
 
Enjoy your work!                                                                                                                                  


xinyiman e nomorelogic





Per gli amici di Lazarus/FreePascal che leggono la parte scritta in inglese, ci scusiamo per eventuali imprecisioni invitandoli a segnalarci eventuali correzioni da apportare.
Grazie.
 
For the friends of Lazarus / FreePascal who read the part written in English, we apologize for any errors, inviting them to report any corrections to be made.
Thanks.



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

Go back to article