* * * *
13 Visitatori, 0 Utenti
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:
  • 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

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



Share on Twitter! Digg this story! Del.icio.us Share on Facebook! Technorati Reddit StumbleUpon

Articles in « WEB »

Comments *

1) Re: ExtPascal: Installazione e configurazione
Written by xinyiman il Gennaio 08, 2016, 04:01:56 pm
Volevo far presente che è cambiata una piccola cosa: quando vado a compilare il package extp_proj/extp_proj.lpk devo assicurarmi che tra le dipendenze c'è il requisito

lazdebuggergdbmi

se non c'è aggiungetelo. Altrimenti non compila.
Commenting option has been turned off for this article.

Recenti

How To

Trascinare un file nel programma da xinyiman
DB concetti fondamentali e ZeosLib da xinyiman
Recuperare codice HTML da pagina web da xinyiman
Mandare mail con Lazarus da xinyiman
Stabilire il sistema operativo da xinyiman
Esempio lista in pascal da xinyiman
File INI da xinyiman
Codice di attivazione da xinyiman
Realizzare programmi multilingua da xinyiman
Lavorare con le directory da xinyiman
Utilizzare Unità esterne da Loryea
TTreeView da xinyiman
TTreeview e Menu da xinyiman
Generare controlli RUN-TIME da xinyiman
LazReport, PDF ed immagini da xinyiman
Intercettare tasti premuti da xinyiman
Ampliare Lazarus da xinyiman
Lazarus e la crittografia da xinyiman
System Tray con Lazarus da xinyiman
UIB: Unified Interbase da Microges2000
Il file: questo sconosciuto da Microges2000
Conferma di chiusura di un applicazione da xinyiman
Liste e puntatori da Microges2000
Overload di funzioni da Microges2000
Funzioni a parametri variabili da Microges2000
Proprietà da Microges2000
Conversione numerica da Microges2000
TImage su Form e Panel da Maverich
Indy gestiore server FTP lato Client da Maverich
PopUpMenu sotto Pulsante (TSpeedButton) da Maverich
Direttiva $macro da Microges2000
Toolbar da xinyiman
Evidenziare voci TreeView da Maverich
Visualizzare un file Html esterno da Maverich
StatusBar - aggirare l'errore variabile duplicata da Maverich
Da DataSource a Excel da xinyiman
Le permutazioni da xinyiman
Brute force da xinyiman
Indy 10 - Invio email con allegati da Maverich
La gestione degli errori in Lazarus da xinyiman
Pascal Script da xinyiman
Linux + Zeos + Firebird da xinyiman
Dataset virtuale da xinyiman
Overload di operatori da Microges2000
Lavorare con file in formato JSON con Lazarus da nomorelogic
Zeos ... dietro le quinte (prima parte) da Stilgar
Disporre le finestre in un blocco unico (come Delphi) da Maverich
Aspetto retrò (Cmd Line) da xinyiman
Come interfacciare periferica twain da Narciso
Ubuntu - aggiornare free pascal e lazarus da xinyiman
fpcup: installazioni parallele di lazarus e fpc da nomorelogic
Free Pascal e Lazarus sul Raspberry Pi da nomorelogic
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal. da nomorelogic
Creare un server multithread da xinyiman
guida all'installazione di fpc trunk da subversion in linux gentoo da nomorelogic
Indice da nomorelogic
DB concetti fondamentali e connessioni standard da xinyiman
Advanced Record Syntax da nomorelogic
DB concetti fondamentali e DBGrid da xinyiman
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText da xinyiman
Advanced Record Syntax: un esempio pratico da nomorelogic
Superclasse form base per programmi gestionali (e non) da nomorelogic
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox da nomorelogic
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form da nomorelogic
Superclasse form base per programmi gestionali (e non) #4 - wait animation da nomorelogic
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog da nomorelogic
Installare lazarus su mac osx sierra da xinyiman
Utenti
Stats
  • Post in totale: 10492
  • Topic in totale: 1336
  • Online Today: 14
  • Online Ever: 74
  • (Luglio 09, 2012, 11:05:53 am)
Utenti Online
Users: 0
Guests: 13
Total: 13

Disclaimer:

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.