Written by nomorelogic Marzo 23, 2012, 12:42:00 pm26241 ViewsRating: (1 Rates)Print
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:
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...
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.
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:
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:
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
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
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:
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
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"
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
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)
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
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.
About the author
nomorelogic registered at Italian community of Lazarus and Free Pascal on Marzo 10, 2012, 12:27:59 pm and has posted 2907 posts in the boards since then. Last visit was Oggi alle 04:20:44 pm.
Questo blog non rappresenta una testata giornalistica poiché viene
aggiornato senza alcuna periodicità. Non può pertanto considerarsi un
prodotto editoriale ai sensi della legge n. 62/2001.
Questo sito utilizza cookie, anche di terze parti, per offriti servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, acconsenti all’uso dei cookie.