Pagine: [1] 2 3 ... 14

07 Ago 2019 - Indice

Beginners

Cos'è Lazarushttps://www.lazaruspascal.it/index.php?page=1
Le condizionihttps://www.lazaruspascal.it/index.php?page=10
Il pascal e il primo programmahttps://www.lazaruspascal.it/index.php?page=4
Costanti e variabilihttps://www.lazaruspascal.it/index.php?page=6
Input di datihttps://www.lazaruspascal.it/index.php?page=7
Operatori logici: OR e ANDhttps://www.lazaruspascal.it/index.php?page=13
Maggiore, minore e ugualehttps://www.lazaruspascal.it/index.php?page=14
Assegnazione e confrontohttps://www.lazaruspascal.it/index.php?page=16
Lavorare con i numerihttps://www.lazaruspascal.it/index.php?page=19
Lavorare con i caratterihttps://www.lazaruspascal.it/index.php?page=20
Numeri casuali (random)https://www.lazaruspascal.it/index.php?page=21
I vettorihttps://www.lazaruspascal.it/index.php?page=22
Le matricihttps://www.lazaruspascal.it/index.php?page=23
Dati strutturati e insiemihttps://www.lazaruspascal.it/index.php?page=28
Procedure e funzionihttps://www.lazaruspascal.it/index.php?page=29
I Filehttps://www.lazaruspascal.it/index.php?page=30
Le libreriehttps://www.lazaruspascal.it/index.php?page=31
Funzioni e procedure ricorsivehttps://www.lazaruspascal.it/index.php?page=32
I puntatorihttps://www.lazaruspascal.it/index.php?page=34
OOP (Object Oriented Programming) e classihttps://www.lazaruspascal.it/index.php?page=53


Applicazioni Made in Italy (o quasi) con Lazarus

MyErphttps://www.lazaruspascal.it/index.php?page=17
PeaZiphttps://www.lazaruspascal.it/index.php?page=26
Turbo Birdhttps://www.lazaruspascal.it/index.php?page=27
My Cinemahttps://www.lazaruspascal.it/index.php?page=46
Keyboard tutorialhttps://www.lazaruspascal.it/index.php?page=81
Calcio4Everhttps://www.lazaruspascal.it/index.php?page=82
MyNotexhttps://www.lazaruspascal.it/index.php?page=113
Enrollixhttps://www.lazaruspascal.it/index.php?page=116
DataStatixhttps://www.lazaruspascal.it/index.php?page=117
Bilancio Facilehttps://www.lazaruspascal.it/index.php?page=118
BibFlexhttps://www.lazaruspascal.it/index.php?page=128
Utility CF (Codice Fiscale)https://www.lazaruspascal.it/index.php?page=129
Retail NG.IThttps://www.lazaruspascal.it/index.php?page=137
ftpmd5backhttps://sourceforge.net/projects/ftpmd5back/?source=directory


Installazione

Installazione su Windows e Ubuntu Linuxhttps://www.lazaruspascal.it/index.php?page=3
fpcup: installazioni parallele di lazarus e fpchttps://www.lazaruspascal.it/index.php?page=130
Free Pascal e Lazarus sul Raspberry Pihttps://www.lazaruspascal.it/index.php?page=134
Guida all'installazione di fpc trunk da subversion su Raspberry con gentoo linuxhttps://www.lazaruspascal.it/index.php?page=138
Guida all'installazione di lazarus su mac osx sierrahttps://www.lazaruspascal.it/index.php?page=158
Free Pascal per NDS: come scaricare i sorgenti da SVN e ricompilarlihttps://www.lazaruspascal.it/index.php?page=49
Ubuntu - aggiornare free pascal e lazarushttps://www.lazaruspascal.it/index.php?page=126


Free Pascal Nintendo DS

Free Pascal per NDS: come scaricare i sorgenti da SVN e ricompilarlihttps://www.lazaruspascal.it/index.php?page=49
Impostare Lazarus per l'utilizzo con Freepascal per Nintendo DShttps://www.lazaruspascal.it/index.php?page=51
[0] Free Pascal per NDS: Primi passihttps://www.lazaruspascal.it/index.php?page=121
[1] Free Pascal per NDS: Gestione dei fileshttps://www.lazaruspascal.it/index.php?page=122
[2] Free Pascal per NDS: Gestione della memoria videohttps://www.lazaruspascal.it/index.php?page=123
[3] Free Pascal per NDS: i tipi di background e le modalità grafichehttps://www.lazaruspascal.it/index.php?page=142
[4] Free Pascal per NDS: configurazione dei banchi di memoriahttps://www.lazaruspascal.it/index.php?page=143
[5] Free Pascal per NDS: background a tiles e mappehttps://www.lazaruspascal.it/index.php?page=144
[6] Free Pascal per NDS: rotazione e zoom dei backgroundhttps://www.lazaruspascal.it/index.php?page=147
[7] Free Pascal per NDS: gli spriteshttps://www.lazaruspascal.it/index.php?page=148




Web Development

Free Spider concetti base e prima applicazionehttps://www.lazaruspascal.it/index.php?page=87
L'oggetto requesthttps://www.lazaruspascal.it/index.php?page=88
L'oggetto responsehttps://www.lazaruspascal.it/index.php?page=89
L'oggetto TSpiderActionhttps://www.lazaruspascal.it/index.php?page=90
L'oggetto TSpiderPagehttps://www.lazaruspascal.it/index.php?page=93
Il ciclo di vita di una CGIhttps://www.lazaruspascal.it/index.php?page=94
Richieste simultaneehttps://www.lazaruspascal.it/index.php?page=95
Le sessioni utentehttps://www.lazaruspascal.it/index.php?page=96
Download/Upload Filehttps://www.lazaruspascal.it/index.php?page=97
Smart Module Loading Designhttps://www.lazaruspascal.it/index.php?page=98
Performancehttps://www.lazaruspascal.it/index.php?page=99
Free Spider e databasehttps://www.lazaruspascal.it/index.php?page=100
JQuery UIhttps://www.lazaruspascal.it/index.php?page=101
JQuery - Oggetto templatehttps://www.lazaruspascal.it/index.php?page=103
JQuery - Oggetto JQGridhttps://www.lazaruspascal.it/index.php?page=104
Redirecthttps://www.lazaruspascal.it/index.php?page=105
ExtPascal: panoramica sulle licenzehttps://www.lazaruspascal.it/index.php?page=108
ExtPascal: Installazione e configurazionehttps://www.lazaruspascal.it/index.php?page=109
ExtPascal: Installazione e configurazione / ExtPascal: Installation and configurationhttps://www.lazaruspascal.it/index.php?page=110
Le griglie in ExtPascal - ExtPascalToolkit / Grids into ExtPascal - ExtPascalToolkithttps://www.lazaruspascal.it/index.php?page=112
Recuperare codice HTML da pagina webhttps://www.lazaruspascal.it/index.php?page=11
Mandare mail con Lazarushttps://www.lazaruspascal.it/index.php?page=8
Indy gestiore server FTP lato Clienthttps://www.lazaruspascal.it/index.php?page=70
Visualizzare un file Html esternohttps://www.lazaruspascal.it/index.php?page=75
Indy 10 - Invio email con allegatihttps://www.lazaruspascal.it/index.php?page=80
Lavorare con file in formato JSON con Lazarushttps://www.lazaruspascal.it/index.php?page=107
http://



Miscellanea

Trascinare un file nel programmahttps://www.lazaruspascal.it/index.php?page=9
Stabilire il sistema operativohttps://www.lazaruspascal.it/index.php?page=12
Codice di attivazionehttps://www.lazaruspascal.it/index.php?page=25
Realizzare programmi multilinguahttps://www.lazaruspascal.it/index.php?page=33
Intercettare tasti premutihttps://www.lazaruspascal.it/index.php?page=48
System Tray con Lazarushttps://www.lazaruspascal.it/index.php?page=52
Conferma di chiusura di un applicazionehttps://www.lazaruspascal.it/index.php?page=56
Conversione numericahttps://www.lazaruspascal.it/index.php?page=63
Direttiva $macrohttps://www.lazaruspascal.it/index.php?page=71
Le permutazionihttps://www.lazaruspascal.it/index.php?page=78
Pascal Scripthttps://www.lazaruspascal.it/index.php?page=84
Come interfacciare periferica twainhttps://www.lazaruspascal.it/index.php?page=124



Operazioni sul file system

Lavorare con le directoryhttps://www.lazaruspascal.it/index.php?page=35
Utilizzare Unità esternehttps://www.lazaruspascal.it/index.php?page=36
File INIhttps://www.lazaruspascal.it/index.php?page=24
Il file: questo sconosciutohttps://www.lazaruspascal.it/index.php?page=55


Programmazione

Ampliare Lazarushttps://www.lazaruspascal.it/index.php?page=44
Esempio lista in pascalhttps://www.lazaruspascal.it/index.php?page=18
TTreeViewhttps://www.lazaruspascal.it/index.php?page=37
TTreeview e Menuhttps://www.lazaruspascal.it/index.php?page=38
Generare controlli RUN-TIMEhttps://www.lazaruspascal.it/index.php?page=39
Liste e puntatorihttps://www.lazaruspascal.it/index.php?page=57
Overload di funzionihttps://www.lazaruspascal.it/index.php?page=60
Funzioni a parametri variabilihttps://www.lazaruspascal.it/index.php?page=61
Proprietàhttps://www.lazaruspascal.it/index.php?page=62
TImage su Form e Panelhttps://www.lazaruspascal.it/index.php?page=69
PopUpMenu sotto Pulsante (TSpeedButton)https://www.lazaruspascal.it/index.php?page=68
Toolbarhttps://www.lazaruspascal.it/index.php?page=73
Evidenziare voci TreeViewhttps://www.lazaruspascal.it/index.php?page=74
StatusBar - aggirare l'errore variabile duplicatahttps://www.lazaruspascal.it/index.php?page=76
Overload di operatorihttps://www.lazaruspascal.it/index.php?page=102
La gestione degli errori in Lazarushttps://www.lazaruspascal.it/index.php?page=83
Disporre le finestre in un blocco unico (come Delphi)https://www.lazaruspascal.it/index.php?page=114
Aspetto retrò (Cmd Line)https://www.lazaruspascal.it/index.php?page=115
Advanced Record Syntaxhttps://www.lazaruspascal.it/index.php?page=145
Advanced Record Syntax: un esempio praticohttps://www.lazaruspascal.it/index.php?page=151



Report

LazReport, PDF ed immaginihttps://www.lazaruspascal.it/index.php?page=47



Crittografia e Sicurezza

Lazarus e la crittografiahttps://www.lazaruspascal.it/index.php?page=45
Brute forcehttps://www.lazaruspascal.it/index.php?page=79
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.https://www.lazaruspascal.it/index.php?page=135



Database

DB concetti fondamentali e connessioni standardhttps://www.lazaruspascal.it/index.php?page=140
DB concetti fondamentali e ZeosLibhttps://www.lazaruspascal.it/index.php?page=141
DB concetti fondamentali e DBGridhttps://www.lazaruspascal.it/index.php?page=146
DB concetti fondamentali e TDBEdit, TDBMemo e TDBTexthttps://www.lazaruspascal.it/index.php?page=149
UIB: Unified Interbasehttps://www.lazaruspascal.it/index.php?page=54
Da DataSource a Excelhttps://www.lazaruspascal.it/index.php?page=77
Linux + Zeos + Firebirdhttps://www.lazaruspascal.it/index.php?page=85
Dataset virtualehttps://www.lazaruspascal.it/index.php?page=86
Zeos ... dietro le quinte (prima parte)https://www.lazaruspascal.it/index.php?page=111



Android

Installare LAMW su Windowshttps://www.lazaruspascal.it/index.php?page=Installare-LAMW-su-Windows




Best Practices

Creare un server multithreadhttps://www.lazaruspascal.it/index.php?page=136
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.https://www.lazaruspascal.it/index.php?page=135
Superclasse form base per programmi gestionali (e non)https://www.lazaruspascal.it/index.php?page=152
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolboxhttps://www.lazaruspascal.it/index.php?page=153
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle formhttps://www.lazaruspascal.it/index.php?page=154
Superclasse form base per programmi gestionali (e non) #3 - wait animationhttps://www.lazaruspascal.it/index.php?page=155
TSimpleDbConnectionDialog, un semplice dialog per connettersi ad un databasehttps://www.lazaruspascal.it/index.php?page=156
TDD o Test-Driven Developmenthttps://www.lazaruspascal.it/index.php?page=tdd


Risorse

FreePascal/Lazarus book: Start programming using Object Pascalhttp://freepascalanswers.wordpress.com/2012/09/02/freepascallazarus-book-startprog/
Share on Twitter! Digg this story! Del.icio.us Share on Facebook! Technorati Reddit StumbleUpon
Nello sviluppo software, il test-driven development (abbreviato in TDD e tradotto con sviluppo guidato dai test) è un modello di sviluppo del software che prevede che la stesura dei test automatici avvenga prima di quella del software che deve essere sottoposto a test, e che lo sviluppo del software applicativo sia orientato esclusivamente all'obiettivo di passare i test automatici precedentemente predisposti.

Più in dettaglio, il TDD prevede la ripetizione di un breve ciclo di sviluppo in tre fasi, detto "ciclo TDD". Nella prima fase (detta "fase rossa"), il programmatore scrive un test automatico per la nuova funzione da sviluppare, che deve fallire in quanto la funzione non è stata ancora realizzata. Nella seconda fase (detta "fase verde"), il programmatore sviluppa la quantità minima di codice necessaria per passare il test. Nella terza fase (detta "fase grigia" o di refactoring), il programmatore esegue il refactoring del codice per adeguarlo a determinati standard di qualità.

Il TDD è una delle 12 regole base dell'XP, ma viene anche usato indipendentemente da questa metodologia; la sua applicazione è anche parte fondamentale dello sviluppo agile del software.

Lazarus ci mette a disposizione dei semplici strumenti per poter adottare il TDD. Per prima cosa dobbiamo installare il package che trovate nella cartella d'installazione di lazarus nella sottodirectory components/fpunit/ide/ di nome fpcunitide.lpk

Premessa: questa metodologia è utile per sviluppare le logiche dei software e non l'interfaccia grafica.

Read More

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

Docker è stato concepito come sistema di distribuzione di applicazioni, costruito sopra un sistema operativo virtualizzato.
Il sistema di virtualizzazione di Docker è molto diverso dagli altri sistemi di virtualizzazione più conosciuti, quello che ci importa sapere per capirne il funzionamento - molto brevemente - è che è costituito da immagini e container.
Una immagine consiste in un file fisico che contiene l'ambiente virtualizzato (OS + applicazione).
Un container è una istanza in esecuzione in memoria di una certa immagine.
Il container è destinato a mutare il suo contenuto rispetto all'immagine e si possono mandare in esecuzione più container contemporaneamente a partire dalla stessa immagine.

Non vado oltre in quanto la documentazione sulla rete è molto esaustiva.



Lavorare con Docker, Lazarus e Free Pascal

Visto quindi che abbiamo a che fare con un sistema di distribuzione di applicazioni, ci sono diversi ambiti in cui una immagine docker può essere utile:
1) immagine docker con all'interno lazarus e free pascal per compilare progetti per un determinato sistema operativo
2) diverse immagini docker, una per ogni versione del compilatore fpc, in modo da compilare lo stesso progetto con diverse versioni del compilatore
3) una immagine pronta per il cross-compile

Sicuramente un sistema di questo tipo potrà essere utile anche in altre occasioni, quindi ho provato a realizzarne una, per esperienza personale, contenete Lazarus 1.8.4 e Free Pascal 3.0.2.
Il sistema operativo virtualizzato è Devuan (si tratta di un fork di Debian senza systemd).
Quindi se volete fare delle prove... potete installare Docker e continuare nella lettura.


Prova su strada

La prima cosa da fare è scaricare l'immagine che ho preparato e questo si fa con il seguente comando:
Codice: [Seleziona]
docker pull nomorelogic/lazimages:laz184_fpc302



Una volta scaricata l'immagine, se volete provare l'immagine, potete lanciare un nuovo container con il seguente comando:
Codice: [Seleziona]
docker run -i -t nomorelogic/lazimages:laz184_fpc302 /bin/bash

In questo modo avete lanciato un container in modalità interattiva (-i) ed inoltre avete agganciato la vostra console alla tty virtuale di Devuan (-t): esplorate i comandi linux e potete constatare che fpc è installato.

Per uscire potete usare la combinazione di tasti Ctrl+D

Digitando ora sulla console dell'host il comando
Codice: [Seleziona]
docker ps -a

otterrete qualcosa del genere
Codice: [Seleziona]
CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS                       PORTS               NAMES
b42dcb2fb18c        nomorelogic/lazimages:laz184_fpc302     "/bin/bash"              8 seconds ago       Exited (130) 3 seconds ago                       nostalgic_matsumoto

che significa:
Il container in memoria: si chiama nostalgic_matsumoto, ha come id b42dcb2fb18c, è basato sull'immagine nomorelogic/lazimages:laz184_fpc302 e qualcuno è uscito 3 secondi fa...

Bene, distruggiamo ora il container:
docker rm nostalgic_matsumoto

Digitando ancora
Codice: [Seleziona]
docker ps -a

vi mostrerà un elenco vuoto di containers.



Prova con Lazarus e Free Pascal

Proviamo ora ad usarlo per compilarci qualcosa...
Eseguite uno alla volta i seguenti comandi

Codice: [Seleziona]
# lancio un nuovo container chiamato testlaz, monto la cartella locale dell'host /media/dati/dev/docker/dockerout in /var/opt del container (si, avete letto bene!) ed esco (-d = detach)
docker run --name testlaz -v /media/dati/dev/docker/dockerout:/var/opt -i -d nomorelogic/lazimages:laz184_fpc302

# dall'host lancio un comando nel container: clono il repo del package paxjson
docker exec -d testlaz sh -c "git clone https://github.com/paxtibi/paxjson.git /home/test/packages/paxjson >/var/opt/01_gitclone_paxjson.log 2>&1"

# clono il repo del package paxlogging
docker exec -d testlaz sh -c "git clone https://github.com/paxtibi/paxlogging.git /home/test/packages/paxlogging >/var/opt/02_gitclone_paxlogging.log 2>&1"

# clono il repo del package paxhttp
docker exec -d testlaz sh -c "git clone https://github.com/paxtibi/paxhttp.git /home/test/packages/paxhttp >/var/opt/03_gitclone_paxhttp.log 2>&1"

# compilo il package paxhttp e redirigo l'output nella cartella del container /var/opt
docker exec -d testlaz sh -c "lazbuild --add-package /home/test/packages/paxhttp/pck/paxhttp_package.lpk >/var/opt/04_lazbuild_paxhttp.log 2>&1"

# compilo il package paxjson e redirigo l'output nella cartella del container /var/opt
docker exec -d testlaz sh -c "lazbuild --add-package /home/test/packages/paxjson/pck/paxjson_package.lpk >/var/opt/05_lazbuild_paxjson.log 2>&1"

# compilo il package paxlogging e redirigo l'output nella cartella del container /var/opt
docker exec -d testlaz sh -c "lazbuild --add-package /home/test/packages/paxlogging/pck/paxlogging_package.lpk >/var/opt/06_lazbuild_paxlogging.log 2>&1"

# clono il progetto jsonserver che utilizza i packages di cui sopra
docker exec -d testlaz sh -c "git clone --branch=master https://github.com/paxtibi/jsonserver.git /home/test/paxtibi/jsonserver >/var/opt/07_gitclone_jsonserver.log 2>&1"

# compilo il progetto jsonserver e redirigo l'output nella cartella del container /var/opt
docker exec -d testlaz sh -c "lazbuild /home/test/paxtibi/jsonserver/pck/jsonserver.lpi >/var/opt/08_lazbuild_jsonserver.log 2>&1"

# fermo il container e lo elimino dalla memoria
docker stop testlaz && docker rm testlaz

# ora, nella cartella precedentemente montata nell'immagine avrete i log dello script sopra.

Buon lavoro e fatemi sapere le votre impressioni.








Share on Twitter! Digg this story! Del.icio.us Share on Facebook! Technorati Reddit StumbleUpon
Per installare lazarus con il debugger gdb su mac os sierra bisogna seguire la seguente trafila.
1. Avviare il sistema operativo in recovery mode "command + R"
2. Aprire utility->terminale e digitare: csrutil disable
3. Riavviare il sistema operativo normalmente, aprire un terminale e digitare: brew install gdb
4. Creare un certificato prendo il portachiavi -> (menu) accesso portachiavi -> assistente certificato -> crea un certificato
Popolare i campi così:
Nome: mygdb-cert
Tipo d'identità: Primo livello autofirmato
Tipo certificato: Firma codice
Flaggare "Lascia che sia io a sovascrivere i default"

Poi dai continua (modifica il periodi di validità a 999) poi continua senza modificare nulla fino a quando non ti compare la scritta "Specifica un portachiavi in cui inserire il certificato" e allora imposti "Sistema"

Premi il pulsante crea e poi fine.
Ora ti compare un certificato di nome mygdb-cert sulla finestra dei portachiavi (in sistema) fai doppio click sopra e cambia "Quando si usa questo certificato" in modo che sia "Fidati sempre".

Riavvia il sistema operativo normalmente

Apriamo un terminale e digitiamo: codesign -f -s "mygdb-cert" /usr/local/Cellar/gdb/7.12_1/bin/gdb

Ovvero abbiamo firmato il gdb con il certificato appena generato.
Ora scarichiamo lazarus dal sito ufficiale (compreso di fpc e sorgenti fpc) e installiamolo normalmente

Assicuriamoci che il gdb che vogliamo far usare al nostro lazarus sia /usr/local/Cellar/gdb/7.12_1/bin/gdb
ovvero quello installato da homebrew.

Riavviamo il mac in recovery mode (command + R) apriamo utility->terminale e digitiamo: csrutil enable --without debug


Riavviamo il sistema operativo normalmente e ora possiamo goderci il nostro lazarus

EDIT: nel caso vogliate installare lazarus con i widgets cocoa vi consiglio di utilizzare fpcupdeluxe ovviamente dovete scaricare l'eseguibile rilasciato per cocoa a 64 bit. Installate la versione trunk di fpc e la versione trunk di lazarus così da avere la 1.9.0 installata (che rilascia i widgets cocoa il più aggiornati possibili, attenzione sono stati introdotti da poco e qualcosa potrebbe non funzionare). Fatto questo quando lanciate lazarus potrebbe darvi l'errore Arithmetic overflow. In questo caso spostatevi nella cartella in cui avete installato lazarus con fpcupdeluxe attraverso un terminale e lanciate i tre comandi che seguono:

lazbuild --build-ide="Normal IDE"
make clean all
make LCL_PLATFORM=cocoa


Adesso dovrebbe funzionare tutto. Questo edit finale all'articolo serve solo fino a quando l'ambiente lazarus/cocoa non sarà adeguatamente maturo. Parlando con l'autore direi che ci vorrà ancora un annetto (ad oggi estate 2018) per poter considerare lazarus/cocoa maturo in tutti i suoi aspetti. Ma già ad oggi è possibile lavorarci dignitosamente.


Share on Twitter! Digg this story! Del.icio.us Share on Facebook! Technorati Reddit StumbleUpon
In questo breve articolo andremo a vedere come realizzare un dialog che ci permetta di connetterci ad un database.

Read More

Share on Twitter! Digg this story! Del.icio.us Share on Facebook! Technorati Reddit StumbleUpon
Pagine: [1] 2 3 ... 14