https://wiki.freepascal.org/api.php?action=feedcontributions&user=Xno&feedformat=atomLazarus wiki - User contributions [en]2024-03-28T14:51:34ZUser contributionsMediaWiki 1.35.6https://wiki.freepascal.org/index.php?title=Executing_External_Programs/it&diff=38277Executing External Programs/it2009-10-02T10:19:47Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
{{AutoCategory}}<br />
<br />
== Introduzione ==<br />
Ci sono diversi modi di eseguire un programma esterno, ma questo articolo ne esamina solo uno: [[doc:fcl/process/tprocess.html|TProcess]].<br />
<br />
Se solitamente usi '''ShellExecute''' e/o '''WinExec''' in Delphi, puoi iniziare ad usare TProcess come un'alternativa in FPC/Lazarus (vale anche se usi Lazarus in Linux, perché TProcess è cross-platform).<br />
<br />
'''Nota:''' FPC/Lazarus supporta '''ShellExecute''' e/o '''WinExec''', ma questo supporto è solo in Win32. Se vuoi programmare 'cross-platform', allora usa TProcess, è la miglior scelta!<br />
<br />
== SysUtils.ExecuteProcess ==<br />
<br />
Se non hai bisogno di 'pipes' né di altre forme di controllo, il sistema più semplice è quello di usare SysUtils.ExecuteProcess('/percorso/completo/al/file/binario',['arg1','arg2']);<br />
<br />
== TProcess ==<br />
Puoi usare TProcess per lanciare programmi esterni. Alcuni vantaggi nell'uso di TProcess sono:<br />
<br />
*Piattaforma Indipendente<br />
*Capacità di leggere da stdout e scrivere in stdin.<br />
<br />
Nota: TProcess non è un terminal/shell! Non puoi eseguire direttamente scripts or redirigere output usando operatori tipo "|", ">", "<", "&" etc. E' possibile ottenere gli stessi risultati con TProcess usando Pascal; puoi vedere alcuni esempi più avanti.<br />
<br />
Importante: Devi specificare il percorso completo dell'eseguibile. Per esempio '/bin/cp' invece di 'cp'. Se il programma è nel percorso standard PATH allora puoi usare la funzione [[doc:lcl/fileutil/finddefaultexecutablepath.html|FindDefaultExecutablePath]] dalla unit [[doc:lcl/fileutil/index.html|FileUtil]] di LCL.<br />
<br />
=== Un semplice esempio ===<br />
<pascal><br />
// Questo è un programma dimostrativo che mostra come lanciare<br />
// un programma esterno.<br />
program launchprogram;<br />
<br />
// Qui includiamo i files che hanno utilizzo funzionale<br />
// e le procedure che ci occorreranno.<br />
uses <br />
Classes, SysUtils, Process;<br />
<br />
// Questa è la definizione della variabile "AProcess" <br />
// come una variabile di tipo "TProcess"<br />
var <br />
AProcess: TProcess;<br />
<br />
// Qui è dove il nostro programma inizia<br />
begin<br />
// Adesso creeremo l'oggetto TProcess e<br />
// lo assegneremo alla variabile var AProcess.<br />
AProcess := TProcess.Create(nil);<br />
<br />
// Diremo al nuovo AProcess quale è il comando da eseguire.<br />
// Usa il compilatore FreePascal<br />
AProcess.CommandLine := 'ppc386 -h';<br />
<br />
// Definiremo una opzione per quando il programma<br />
// è in esecuzione. Questa opzione ci assicurerà che il nostro programma<br />
// non continuerà sin quando il programma che lanceremo<br />
// non sarà terminato. vvvvvvvvvvvvvv<br />
AProcess.Options := AProcess.Options + [poWaitOnExit];<br />
<br />
// Adesso che AProcess sa qual'è la linea di comando <br />
// verrà lanciato.<br />
AProcess.Execute;<br />
<br />
// Questo non avverrà sino a quando ppc386 non fermerà la sua esecuzione.<br />
AProcess.Free; <br />
end.<br />
</pascal><br />
Questo è quanto! Hai appena imparato come eseguire un programma esterno dall'interno del tuo programma.<br />
<br />
=== Un esempio più elaborato ===<br />
Che bello!, ma come faccio a leggere l'Output di un programma che ho eseguito?<br />
<br />
Bene, sviluppiamo un po' il nostro esempio in modo da ottenere questo:<br />
<br />
<delphi><br />
// Questo è un programma dimostrativo che mostra come<br />
// lanciare un programma esterno e leggere dal suo output.<br />
program launchprogram;<br />
<br />
// Qui mettiamo i files che contengono funzioni utili<br />
// e le procedure di cui abbiamo bisogno.<br />
uses <br />
Classes, SysUtils, Process;<br />
<br />
// Questa è la definizione della variabile "AProcess"<br />
// come variabile del tipo "TProcess"<br />
// Aggiungiamo anche una TStringList per memorizzare<br />
// i dati che leggeremo dall'output del programma.<br />
var <br />
AProcess: TProcess;<br />
AStringList: TStringList;<br />
<br />
// Questo è l'inizio del programma<br />
begin<br />
// Ora creeremo l'oggetto TProcess, e lo<br />
// assegneremo alla variabile AProcess.<br />
AProcess := TProcess.Create(nil);<br />
<br />
// Creazione dell'oggetto TStringList.<br />
AStringList := TStringList.Create;<br />
<br />
// Diciamo al nuovo AProcess quale comando eseguire.<br />
// Utilizza il compilatore FreePascal<br />
AProcess.CommandLine := 'ppc386 -h';<br />
<br />
// Definiamo un'opzione per il programma durante<br />
// l'esecuzione. Questa opzione garantisce che il nostro<br />
// programma rimane in attesa finché il programma che<br />
// abbiamo lanciato non si ferma. Gli diciamo anche che<br />
// vogliamo leggere l'output.<br />
AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];<br />
<br />
// Ora che AProcess qual'è la linea di comando <br />
// lo eseguiamo.<br />
AProcess.Execute;<br />
<br />
// Quanto segue non viene eseguito finché ppc386 non<br />
// termina l'esecuzione.<br />
<br />
// Ora leggiamo l'output del programma che abbiamo<br />
// appena eseguito all'interno della TStringList.<br />
AStringList.LoadFromStream(AProcess.Output);<br />
<br />
// Salviamo l'output in un file.<br />
AStringList.SaveToFile('output.txt');<br />
<br />
// Ora che il file è stato salvato, possiamo liberare<br />
// la TStringList e il TProcess.<br />
AStringList.Free;<br />
AProcess.Free; <br />
end.<br />
</delphi><br />
<br />
=== Leggere output di grandi dimensioni ===<br />
Nel precedente esempio noi abbiamo aspettato fino all'uscita del programma. Quindi leggiamo, quello che il programma ha scritto nel suo output. Ma supponiamo che il programma scriva molti dati nell'output, il buffer si riempie e il programma richiamato aspetta sinché il buffer non viene letto. Ma il programma chiamante non legge dal buffer, sinché il programma chiamato non ha terminato. Avviene un blocco.<br />
<br />
Il seguente esempio quindi non usa poWaitOnExit, ma legge dall'output, mentre il programma è ancora in esecuzione. L'output è immagazzinato in un buffer di memoria, che potrà essere usato più tardi per leggere l'output all'interno di una TStringList.<br />
<br />
<delphi> program procoutlarge;<br />
{<br />
Copyright (c) 2004 by Marc Weustink<br />
<br />
This example is creeated in the hope that it will be useful,<br />
but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.<br />
}<br />
<br />
uses<br />
Classes, Process, SysUtils;<br />
<br />
const<br />
READ_BYTES = 2048;<br />
<br />
var<br />
S: TStringList;<br />
M: TMemoryStream;<br />
P: TProcess;<br />
n: LongInt;<br />
BytesRead: LongInt;<br />
<br />
begin<br />
// We cannot use poWaitOnExit here since we don't<br />
// know the size of the output. On Linux the size of the<br />
// output pipe is 2 kB. If the output data is more, we <br />
// need to read the data. This isn't possible since we are <br />
// waiting. So we get a deadlock here.<br />
//<br />
// A temp Memorystream is used to buffer the output<br />
<br />
M := TMemoryStream.Create;<br />
BytesRead := 0;<br />
<br />
P := TProcess.Create(nil);<br />
P.CommandLine := 'ppc386 -va bogus.pp';<br />
P.Options := [poUsePipes];<br />
WriteLn('-- executing --');<br />
P.Execute;<br />
while P.Running do<br />
begin <br />
// make sure we have room<br />
M.SetSize(BytesRead + READ_BYTES);<br />
<br />
// try reading it<br />
n := P.Output.Read((M.Memory + BytesRead)^, READ_BYTES);<br />
if n > 0 <br />
then begin<br />
Inc(BytesRead, n);<br />
Write('.')<br />
end<br />
else begin <br />
// no data, wait 100 ms<br />
Sleep(100); <br />
end;<br />
end;<br />
// read last part<br />
repeat<br />
// make sure we have room<br />
M.SetSize(BytesRead + READ_BYTES);<br />
// try reading it<br />
n := P.Output.Read((M.Memory + BytesRead)^, READ_BYTES);<br />
if n > 0 <br />
then begin<br />
Inc(BytesRead, n);<br />
Write('.');<br />
end;<br />
until n <= 0;<br />
if BytesRead > 0 then WriteLn;<br />
M.SetSize(BytesRead); <br />
WriteLn('-- executed --');<br />
<br />
S := TStringList.Create;<br />
S.LoadFromStream(M);<br />
WriteLn('-- linecount = ', S.Count, ' --');<br />
for n := 0 to S.Count - 1 do<br />
begin<br />
WriteLn('| ', S[n]);<br />
end;<br />
WriteLn('-- end --');<br />
S.Free;<br />
P.Free;<br />
M.Free;<br />
end.</delphi><br />
<br />
=== Usare input e output di TProcess ===<br />
Vedi l'esempio dimostrativo in [https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/examples/process Lazarus-CCR SVN].<br />
<br />
=== Accorgimenti nell'uso di TProcess ===<br />
Se stai creando un programma multipiattaforma (cross-platform) , Puoi cambiare la linea di comando in base al Sistema Operativo , usando le direttive "{$IFDEF}s" and "{$ENDIF}s".<br />
<br />
Esempio:<br />
<delphi> {...}<br />
AProcess:TProcess.Create(nil)<br />
{$IFDEF WIN32}<br />
AProcess.CommandLine := 'calc.exe'; //Windows Calc<br />
{$ENDIF}<br />
{$IFDEF LINUX}<br />
AProcess.CommandLine := 'kcalc'; //KDE Calc<br />
{$ENDIF}<br />
AProcess.Execute; //in alternative, you can use AProcess.Active:=True<br />
{...}</delphi><br />
<br />
=== Esempio di dialogo con il processo aspell ===<br />
<br />
All'interno di [http://pasdoc.sourceforge.net/ pasdoc] Codice sorgente puoi trovare due units che fanno spell-checking mediante "dialogo" con aspell in esecuzione attraverso pipes:<br />
<br />
* [http://pasdoc.svn.sourceforge.net/viewvc/*checkout*/pasdoc/trunk/source/component/PasDoc_ProcessLineTalk.pas PasDoc_ProcessLineTalk.pas unit] implements TProcessLineTalk class, descendant of TProcess, that can be easily used to talk with any process on a line-by-line basis.<br />
<br />
* [http://pasdoc.svn.sourceforge.net/viewvc/*checkout*/pasdoc/trunk/source/component/PasDoc_Aspell.pas PasDoc_Aspell.pas units] implements TAspellProcess class, that performs spell-checking by using underlying TProcessLineTalk instance to execute aspell and communicate with running aspell process.<br />
<br />
Entrambe le units sono indipendenti dal resto di pasdoc sorgente, cosi che esse possono servire come esempio reale dell'uso di TProcess per eseguire e comunicare attraverso pipes con altri programmi.<br />
<br />
----<br />
[[TXMLPropStorage]]</div>Xnohttps://wiki.freepascal.org/index.php?title=Array_as_a_list_of_parameters/it&diff=38276Array as a list of parameters/it2009-10-02T10:17:11Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
{{AutoCategory}}<br />
= indietro =<br />
<br />
Questo è un tentativo di dare l'idea dietro all'uso di un [[array/it]] come una lista di valori. Questi valori possono essere aggiunti come una lista di parametri dentro open array/array of const, invece di una [[variable type/it|variabile]] di variabile, dove il tipo è, per esempio "array of string". <br />
<br />
Proverò a descrivere il pro e contro di questa fattura e di spiegare perchè la considero importante.<br />
<br />
Questra descrizione mostrerà problemi, o bisogno di risolvere qualcosa, e proverà di spiegare come questa fattura può aiutare, o dove io posso trovare problemi con questa.<br />
<br />
Spero che altri contribuiranno a questa outline, per implementare questa fattura al meglio.<br />
<br />
= Perchè abbiamo bisogno di questa fattura ? =<br />
Per rispondere a questa domanda, userò degli esempi che questa fattura risolverà:<br />
<br />
== Esempio 1 ==<br />
* Abbiamo un array di valori da un risultato [[Glossary#S|SQL]], e vogliamo usare questo array, ad esempio per aggiungere e mostrare usando la [[Function|funzione]] "format". A questo punto, per fare ciò, dovremo creare una nostra funzione "format" che porterà l'array e sostituirà la stringa con le regole elle stringhe format, quindi possiamo andare in tutti i campi di un array.<br />
<br />
=== Idee ===<br />
# Questa fattura renderà la funzione format già esistente valida senza bisogno di riscriverla.<br />
# Questa fattura darà un uso migliore delle [[Data types/it|data types]] che saranno usate. Invece di scrivere cicli, ed anche pensare a diversi modi di progettare l'output.<br />
# Invece di riscrivere "ogni"<sup>tm</sup> in cui i programmatori devono usare array, mentre viene accettato solo open array/array of const, <br />
# Le procedure write/writeln e read/readln sono pasado procedure create durante la compilazione dal compiler. Questa possibilità permette al compilatore di creare queste funzioni quando i programmatori dovrebbero crearsi da sè il loro System unit, or creare pesado procedure come write/writeln.<br />
# Questa fattura ci darà il debug o semplicemente input e output, senza un programma scritto per farlo.<br />
<br />
=== Problemi ===<br />
# E' veramente necessario, o serve solo a maneggiare più pigramente arrays ?<br />
# Cosa succede se dobbiamo usare records ?<br />
# E se vogliamo usare un array come una variabile contenente diversi valori ?<br />
# In what compiler modes should we add such feature ?<br />
# What happen if developers wish to use only part of the array instead of the whole cells ?<br />
# What happen when we wish to do the same to containers such as TList, or TStringList ?<br />
# What happen if the array is array of Class, array of Record, or array of custom type ?<br />
# Let's say that this feature exists, what happen to the following example: <br/> &nbsp;<tt>format(content, [ArrayWithFields, variableA..variableN]);</tt> ?<br />
# What happen if we enable this option, and we place such array to a non open array/array of const ?<br />
<br />
== Esempio 2 ==<br />
* Stiamo leggendo un file di testo e aggiungiamo il contenuto ad un array. Vogliamo portare tutte le possibilità di "[[c]]" in "[[Pascal]]" su tutte le linee. <br/> un modo può essere di correre sull'array con cicli innesati (il primo ciclo sarà ogni "cella", e il secondo cercherà "C" e chiamerà la procedura replaceAll). Questo è un modo molto inefficiente per risolvere il problema. <br/> Un secondo modo sarà di convertire questo "array di stringa" in una grande AnsiString, e chiamerà "replaceall" una volta sola, quando il vero ciclo sarà dentro "replaceall".<br />
<br />
=== Ideas ===<br />
# We can replace all of the occurrences without loosing the structure of such array, and without attempting to move from one format to another.<br />
# Unlike most programming languages, we do not need to create different container such as "vectors" in Java in order to store array of string, and if we do not wish to use the Classes unit for TStrings/TList decanted to store such information (for example we can not or do not want to use classes and objects), we still can mimic such a solution. <br />
# If we have a need to replace more occurrences we could make it with less time, and might be even with better optimization of the code.<br />
<br />
=== Problems ===<br />
# The array is still not one variable, and while it seems for the developers that only one loop happens, this does not means that the actual code is translated that way anyhow.<br />
# Some (if not all) of the nested for loops can move into recursive functions, and that "might" increase speed.<br />
# Memory maps such as mmap might give you better ways to do it without the need for such action.<br />
<br />
= Answers =</div>Xnohttps://wiki.freepascal.org/index.php?title=Main_Page/it&diff=36956Main Page/it2009-07-22T07:32:58Z<p>Xno: cambiata posizione delle immagini</p>
<hr />
<div>__NOTOC__<br />
{{Main Page}}<br />
=Benvenuti nel wiki di Lazarus e Free Pascal=<br />
<br />
[[Image:Windows_Vista2.png|320px|left|thumb|Lazarus IDE]]|[[Image:freepascal.png|320px|right|thumb|FreePascal IDE]]<br />
<br />
==A proposito di==<br />
<br />
Lo scopo di questo wiki è quello di essere una documentazione completa per FPC/Lazarus e per i [[Related projects|progetti correlati]].<br />
<br />
FPC già possiede una buona documentazione per l'utente in svariati formati; tuttavia le [[FPC development|informazioni per lo sviluppatore FPC, le informazioni organizzative]] e gli argomenti non ancora [[FPC documentation|correttamente documentati]] sono raccolti in questo wiki. <br />
<br />
Lazarus, d'altra parte, ha alcune lacune nella documentazione per l'utente. Quindi quest'area è stata creata come un "documento aperto", un "wiki" dove tutti possono modificare e aggiungere contenuti. <br />
<br />
Il wiki accelera le cose rendendo possibile apportare modifiche e aggiunte direttamente con un browser! Per i tutorial, date uno sguardo a [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] oppure allo [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Una [[Sand Box]] è disponibile per fare pratica. Se incontrate dei problemi, per favore notificateli sul sito degli [http://sourceforge.net/users/vlx/ amministratori] oppure postate un bug report nel sito [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] su SF. Potete anche lasciare delle note o dei suggerimenti nella nostra pagina [[Site Feedback]].<br />
<br />
<br />
Per la <b>storia del progetto</b> Lazarus vedere la pagina [[History]].<br />
<br />
<br />
==Documentazione di Free Pascal==<br />
;[[FPC documentation|Documentazione di FPC per gli sviluppatori]]<br />
:Contiene documentazione per sviluppatori e altri contributori del compilatore Free Pascal, come ad esempio i soggetti addetti alla traduzione dei messaggi verso altre lingue, un elenco dei binding pascal, informazioni organizzative, procedure per le releases di FPC, elenchi di ToDo, etc.<br />
<br />
==Documentazione di Lazarus==<br />
;[[Lazarus Documentation/it|Documentazione Lazarus]]<br />
:Tutta la documentazione disponibile e [[Lazarus Documentation/it#Lazarus_and_Pascal_Tutorials|i tutorials]] per il Lazarus IDE (inclusi i manuali per il Free Pascal Compiler) possono essere trovati sulla pagina della [[Lazarus Documentation/it |documentazione Lazarus]]. Molte delle pagine disponibili sono dei "lavori in corso", siate quindi liberi di aggiungere la vostra esperienza a queste sezioni. Se volete potete anche registrarvi e creare una pagina personale con i riferimenti per contattarvi.<br />
<br />
==Downloads==<br />
Tutti i componenti e i package attualmente disponibili sono prelevabili dall'[http://sourceforge.net/project/showfiles.php?group_id=92177 area files su Sourceforge di Lazarus-CCR]. Il Free Pascal Compiler e le versioni di sviluppo correnti sono reperibili sul [http://sourceforge.net/project/showfiles.php?group_id=89339 sito su Sourceforge di Lazarus]. <br />
La documentazione supplementare su questi package può essere trovata sulla pagina wiki [[Components and Code examples]], nel caso in cui le persone che hanno contribuito con del codice l'abbiano creata. Il compilatore e molti altri contributi in codice possono essere trovati sui [http://www.freepascal.org/download.var mirror per il download del Free Pascal Compiler] e sul [http://lazarus.freepascal.org sito web del Lazarus IDE].<br />
I download degli Snapshot di Lazarus possono essere trovati [[Lazarus Snapshots Downloads | qui]].<br />
<br />
==Mailing lists==<br />
Utenti nuovi ed esperti sono invitati a unirsi alle mailing list disponibili:<br />
Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce annunci] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general generale].<br />
<br />
Forse perfino più utili sono le mailing list dell'IDE di [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus] e le liste degli annunci o degli sviluppatori di [http://www.freepascal.org/maillist.html FreePascal].<br />
<br />
==Chi sta lavorando su cosa?==<br />
Se stai convertendo un componente o una libreria o hai bisogno che qualcosa venga convertito, puoi segnalarlo sulla pagina dei [[Current conversion projects|Progetti di conversione correnti]]. Queste segnalazioni costituiranno una guida per gli sviluppatori che vogliono convertire componenti a dedicarsi a quelli che sono già stati richiesti e serviranno anche ad evitare che due persone convertano lo stesso package.<br />
<br />
==Riferimenti, Collegamenti e Risorse==<br />
<br />
===Lazarus IDE===<br />
Novità e informazioni sullo stato dell'IDE Lazarus possono essere trovate sul [http://lazarus.freepascal.org sito web del Lazarus IDE]. Idee, todo e ulteriori piani possono essere trovati sulla pagina [[Lazarus Development Process]]. Nuove release di Lazarus e del compilatore Free Pascal possono essere scaricate da qui. L'[http://sourceforge.net/project/showfiles.php?group_id=89339 area files di Lazarus] contiene anche gli ultimi pacchetti del compilatore e dell'IDE disponibili per il download.<br />
<br />
====Progetti Lazarus Attivi====<br />
La lista dei nostri attuali [[Projects using Lazarus|Progetti che utilizzano Lazarus]] con i siti web pubblicamente accessibili e file relativi a Lazarus da scaricare.<br />
<br />
====Super Siti e Collezioni di Link====<br />
La nostra collezione corrente di siti relativi a Delphi/Kylix la potete trovare sulla nostra pagina [[Page Of Code Sites]]. Se conoscete qualche buon sito che non fa ancora parte della collezione, vi preghiamo di aggiungerlo.<br />
<br />
====Motori di ricerca specializzati====<br />
Esistono su Internet alcuni notevoli siti di ricerca e di raccolta documentazione online che possono essere molto utili per imparare nuove tecniche e per la risoluzione dei problemi.<br />
Tamarack Associates gestisce un [http://www.tamaracka.com/search.htm motore di ricerca] molto veloce specifico per gli archivi usenet Borland. Mer Systems Inc. fornisce un [http://www.mers.com/searchsite.html servizio di ricerca] simile.<br />
Un'altra fonte notevole di informazioni assieme alla possibilità di [http://www.efg2.com/Lab/search.htm ricerca] nel sito è la Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
====Casi di Studio di Marketing====<br />
Un'[[Marketing_Case_Studies|occasione per gli utenti di Lazarus]] di spiegare perché Lazarus è l'IDE da scegliere.<br />
<br />
====Presentare FPC/Lazarus a trade show e contests====<br />
FPC/Lazarus è stato presentato con uno stand al [[Systems 2005]], al [[Systems 2006]] e al [[Systems 2007]] a Monaco. Basata sull'esperienza maturata in questi trade shows, è stata approntata una raccolta di [[Preparing a booth on a trade show|informazioni]] per aiutare nei preparativi futuri per uno stand di un trade show. Lazarus e i progetti correlati sono stati presenti in diversi Contests, ed è stata preparata una [[Contests|pagina wiki]] per aiutare nelle iscrizioni a futuri contests.<br />
<br />
=Questa pagina=<br />
Questa pagina è stata tradotta dalla [[Main_Page|pagina principale inglese]]<br />
<br />
Tradotta da [[User:Xno]], [[User:ciampix]] e [[User:Legolas]] <br />
{{AutoCategory}}</div>Xnohttps://wiki.freepascal.org/index.php?title=RichMemo&diff=35950RichMemo2009-06-07T09:55:19Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
=== About ===<br />
''TRichMemo'' is a component to replace Delphi TRichEdit component. It's designed in cross-platform way, so implementation is possible for the following platforms: Win32 and MacOSX. But also should be possible for Linux (Gtk and Qt).<br />
<br />
Its main caracteristics are :<br />
<br />
* Text highlight<br />
* Import/Export RichText (not yet implemented)<br />
<br />
Planned: (patches are welcomed) <br />
* Adding images into text<br />
* Embedding LCL Controls?<br />
<br />
The download contains the component, an installation package and a demo application, that illustrates the features of the component along with some instrumentation for evaluating the chart on a given system.<br />
<br />
=== Screenshot ===<br />
<br />
todo: ... <br />
<br />
=== Author ===<br />
<br />
[[User:Skalogryz|Dmitry 'skalogryz' Boyarintsev]]<br />
<br />
=== License ===<br />
[http://svn.freepascal.org/svn/lazarus/trunk/COPYING.modifiedLGPL modified] [http://svn.freepascal.org/svn/lazarus/trunk/COPYING.LGPL LGPL] (same as the FPC RTL and the Lazarus LCL). You can contact the author if the modified LGPL doesn't work with your project licensing.<br />
<br />
=== Download ===<br />
The latest trunk is available here:<br />
https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/richmemo<br />
<br />
=== Change Log ===<br />
* Version 0.8.0 ''date''<br />
<br />
=== Dependencies / System Requirements ===<br />
* Lazarus 0.9.27<br />
<br />
Status: 'Beta'<br />
<br />
Issues: not tested at all. <br />
<br />
=== Installation ===<br />
* Download the package<br />
* Open the package, and install it, rebuilding the IDE<br />
* TRichMemo is added to 'Common Controls' component page.<br />
<br />
[[Image:RichMemoPalette.PNG]]<br />
<br />
=== Reference ===<br />
<br />
==== TRichMemo methods ====<br />
<br />
===== SetTextAttributes =====<br />
<br />
procedure SetTextAttributes(TextStart, TextLen: Integer; AFont: TFont); <br />
<br />
* TextStart : Integer - the first character to be modified<br />
* TextLen : Integer - number of characters to be modified<br />
* AFont : TFont - a font that should be applied to the part of the text<br />
<br />
<br />
procedure SetTextAttributes(TextStart, TextLen: Integer; SetMask: TTextStyleMask; const TextParams: TFontParams); <br />
<br />
* TextStart : Integer - the first character to be modified<br />
* TextLen : Integer - number of characters to be modified<br />
* SetMask : TTextStyleMask - what parameters should be applied. If mask is empty no changes is made.<br />
* TextParams : TFontParams - font parameters that should be applied that should be applied to the part of the text<br />
<br />
<br />
SetTextureAttributes methods are changing specified text range style. Font parameters is passed in both methods, by AFont parameter (LCL TFont object) or by TFontParams (declared at RichMemoTypes). SetMask specifies what parameter should be applied. Parameters, that is not passed in the mask, is left unchanged.<br />
Using TFont to set text attributes change all text attributes to the same as in TFont.<br />
<br />
Setting text attributes does not change current selection. If it's necessary to modify the style of currently selected text, you should SelStart and SelLength as a text range values:<br />
<br />
RichMemo1.SetTextAttributes(RichMemo1.SelStart, RichMemo1.SelLength, FontDialog1.Font);<br />
<br />
===== GetTextAttributes =====<br />
<br />
function GetTextAttributes(TextStart: Integer; var TextParams: TFontParams): Boolean; virtual;<br />
* TextStart : Integer - the character position to be queried for font parameters<br />
* var TextParams : TFontParams - output value, filled with charachter's font attributes. If the method fails and returns false, record's field values is undefined.<br />
<br />
Fill font params of the character, at TextStart position. <br />
Method returns True if textstart is valid character position, and False overwise.<br />
<br />
==== TRichMemo properties ====<br />
<br />
===== HideSelection =====<br />
<br />
property HideSelection: Boolean default false<br />
<br />
Read/Write property. If True RichMemo selection is hidden if the control is not focused.<br />
If False, the selection is shown all the time.</div>Xnohttps://wiki.freepascal.org/index.php?title=RichMemo/ru&diff=35949RichMemo/ru2009-06-07T09:54:56Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
=== О компоненте... ===<br />
''TRichMemo'' компонент, который заменяет пополучрные в Delphi TRichEdit и/или RxRichEdit.<br />
RichMemo спроектирован в целью на кросс-платформенность, по-этому возможно реализация под любую из платформ. На сегодняшний день существуют реализации под: Win32 and MacOSX. И вполне возможны реализации для Gtk и Qt.<br />
<br />
Основные особенности:<br />
* Подцветка текста<br />
* Импорт/Экспорт текста в RichText формате (не реализовано)<br />
<br />
Возможно появится в будущем: (любая помощь приветствуется) <br />
* Добавление изображений.<br />
* Внедрение LCL Контролов?<br />
<br />
=== Скришоты ===<br />
<br />
todo: ... <br />
<br />
=== Автор ===<br />
<br />
[[User:Skalogryz|Дмитрий 'скалогрыз' aka 'skalogryz' Бояринцев]]<br />
<br />
=== License ===<br />
[http://svn.freepascal.org/svn/lazarus/trunk/COPYING.LGPL LGPL] (same as the FPC RTL and the Lazarus LCL). <br />
<br />
=== Скачать ===<br />
Исходники доступны через SVN, последняя версия всегда доступна здесь:<br />
https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/richmemo<br />
<br />
=== Журнал изменений ===<br />
* Version 0.8.0 ''date''<br />
<br />
=== Требования ===<br />
* Lazarus 0.9.27 (SVN версия)<br />
<br />
Состояние: 'Beta'<br />
<br />
Изветные неисправности: Компонент не тестировался и, возможно, имеет большое количество ошибок. <br />
<br />
=== Установка ===<br />
* Скачайте исходники пакета <br />
* Установите пакет в Lazarus и пересоберите его<br />
* TRichMemo добавится в закладку 'Common Controls'.<br />
<br />
[[Image:RichMemoPalette.PNG]]<br />
<br />
=== Документация ===<br />
<br />
==== TRichMemo методы ====<br />
<br />
===== SetTextAttributes =====<br />
<br />
procedure SetTextAttributes(TextStart, TextLen: Integer; AFont: TFont); <br />
<br />
* TextStart : Integer - номер первого символа с которого нужно применить изменение шрифта<br />
* TextLen : Integer - количество символов к которым нужно применить изменение шрифта<br />
* AFont : TFont - шрифт на который будет изменен стиль выбранных символов<br />
<br />
<br />
procedure SetTextAttributes(TextStart, TextLen: Integer; SetMask: TTextStyleMask; const TextParams: TFontParams); <br />
<br />
* TextStart : Integer - номер первого символа с которого нужно применить изменение шрифта<br />
* TextLen : Integer - количество символов к которым нужно применить изменение шрифта<br />
* SetMask : TTextStyleMask - какие именно параметры шрифта должны быть изменены<br />
* TextParams : TFontParams - запись, описывающая свойтсва шрифта, которые должны быть изменены<br />
<br />
<br />
SetTextureAttributes метод изменяет шрифт у указанного выбранного текста.<br />
Если для смены шрифта использовался TFont, то шрифт меняется целиком<br />
Если использовался TFontParams, то изменение параметров контроллируется параметром SetMask. в SetMask указывается какие именно параметры текста шрифта нужно изменить (Имя шрифта, Цвет, Разрмер, Стиль)<br />
<br />
<br />
Вызов этого метода не изменяет текущее выделение. <br />
<br />
<br />
Чтобы изменить стиль текщуего текствого выделения необходимо передать SelStart и SelLength, в качестве параметров TextStart, TextLength, например:<br />
<br />
RichMemo1.SetTextAttributes(RichMemo1.SelStart, RichMemo1.SelLength, FontDialog1.Font);<br />
<br />
===== GetTextAttributes =====<br />
<br />
function GetTextAttributes(TextStart: Integer; var TextParams: TFontParams): Boolean; virtual;<br />
* TextStart : Integer - номер символа у которого необходимо получить шрифт<br />
* var TextParams : TFontParams - возвращаемое значение, которое будет содержать параметры шрифта указанного символа<br />
<br />
Функция возвращает параметры шрифта у указанного символа. Если в TextStart передан неверный номер символа, функция возвращает False, значение полей записи TextParams неопределено. Если в передан правильный TextStart номер символа, функция возвращает True, заполняя запись TextParams<br />
<br />
==== TRichMemo свойства ====<br />
<br />
===== HideSelection =====<br />
<br />
property HideSelection: Boolean default false<br />
<br />
Свойство на чтение и запись. Если значение True, то RichMemo не будет показывать текущее выделение, если контрол находится не в фокусе. <br />
Если значение False, то выделение показывается всегда. Значение по-умолчанию False.</div>Xnohttps://wiki.freepascal.org/index.php?title=buildfaq&diff=35877buildfaq2009-06-05T17:03:58Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
<br />
The buildfaq is a document about FPC and Lazarus building, and in particular crosscompiling. It is the successor the the 1.0.x period make cycle FAQ, and is maintained by a FPC core member (Marco)<br />
<br />
The document is in LyX because it allows easy offline editing and good printing quality. It is a hyperlinked PDF, but when the notoriously difficult conversion of latex to html allows it, a HTML version is also generated. Diagrams are made with DIA, and then exported to PNG. The source files are in SVN in fpcdocs/buildfaq, but if you want changes, please don't commit directly but do it via Marco. Thanks.<br />
<br />
* [http://www.stack.nl/~marcov/buildfaq.pdf PDF version] The [b]authorative[/b] version<br />
* [http://www.stack.nl/~marcov/buildfaq HTML version] Sometimes lags due to html export issues</div>Xnohttps://wiki.freepascal.org/index.php?title=Cross_compiling&diff=35871Cross compiling2009-06-05T16:54:45Z<p>Xno: Language menu</p>
<hr />
<div>{{Translate}}<br />
<br />
=Foreword=<br />
This is a short introduction for newbies. The following sections describe how to setup a system to cross compile, that means creating binaries (executables) for a different platform as the one used for compilation - e.g. working under Linux and creating Win32 executables (or those for FreeBSD or Darwin, etc.). In this case, the platform used for compilation is usually referred to as "host" (Linux in the example above) and the platform where you want to run your created binaries is your "target". FreePascal is a compiler and basically converts source into binaries (machine language). These binaries also contain information on how the operating system starts the executables. Moreover, the binaries refer to the APIs provided by the particular operating system, that's why different implementation of our Run-Time Library is necessary for different operating systems. Therefore these binaries are platform specific. FreePascal itself does not need much setup. It can create binaries for many platforms. Just tell it to do so.<br />
<br />
==Host and target on the same CPU==<br />
FPC is designed so that the distributed compiler can create machine code for a certain CPU (because different CPUs need different machine code) and it knows specific requirements for all supported platforms (operating systems) available on that particular CPU. This means that you can perform cross-compilation with the same compiler used for native compilation as long as you stick to the same CPU.<br />
<br />
==Host and target on different CPUs==<br />
If you need to create binaries for a different CPU, you need a special cross-compiler, i.e. compiler running on the host platform, but able to create machine code for a different CPU (in the case of FPC, such a cross-compiler would be again able to target all supported platforms available on the _target_ CPU). This cross-compiler is then usually stored in the same directory as the native compiler. Such a cross-compiler may be either compiled by yourself, or you can use a ready made distributed cross-compiler provided for some platforms directly by the FPC team (usually platforms mostly used in portable devices like arm-linux or arm-wince, because these are usually not used as host platforms). Fpc binary can then select the right compiler (either the native compiler or the cross-compiler) for the target CPU selected using the -P parameter.<br />
<br />
==Assembler and linker==<br />
The compiler is only one part. We also need the assembler and the linker. FPC provides internal assembler and/or linker for just some platforms, other platforms needs to use external tools for that. And these tools are usually not able to create binaries for different platforms. That's why we have to different special linker 'ld' and assembler 'as' for every target platform. These are the binutils.<br />
<br />
==Units for target==<br />
After creating (or having/installing) the cross tools, one needs FPC RTL and other units compiled for the chosen target platform. For example, every target platform needs a different file system.ppu (System unit), etc. These units may be either compiled using your compiler set up for compilation to the target platform, or you may potentially use officially distributed units compiled (and distributed) with exactly the same FPC version (if available in format useable under the particular host platform).<br />
<br />
==Configuration==<br />
Then your fpc config file will be setup, so that cross compilation becomes so easy, that you can forget all the boring details. The same will be done for the LCL - the lazarus component library (if using Lazarus). And after this you can cross compile pascal programs for the (different) target platform. The resulting binaries may then be copied to a machine running the target platform, or run under an emulator (e.g. Wine for Win32 binaries under Linux, etc.).<br />
<br />
==Basic Steps==<br />
There are a few common steps involved in crosscompiling that you must do in every case:<br />
# Have already a FreePascal compiler for the platform you wish to compile from.<br />
# You need to have the FreePascal source code (except for the special case of having everything prepared by someone else).<br />
# You need to either build from source or obtain binaries of the cross-binutils that run on the platform you are on and are designed to build programs for your desired target platform.<br />
# Sometimes you will need some files from the target you are compiling to.<br />
<br />
=From Linux=<br />
==To Linux==<br />
To be clear, the text below is to compile from linux(x86_64) to linux(i386). Information about targetting Linux running on ARM (e.g. Zaurus) may be found in [[Setup Cross Compile For ARM]].<br />
<br />
Chances are that your 64 bit linux distrubution is already capable of compiling 32 bit programs but due to the way the fpc build process is designed there are a couple of things you might have to do.<br />
<br />
* First check if you already have the files i386-linux-ld and i386-linux-as:<br />
bash $ which i386-linux-ld<br />
<br />
bash $ which i386-linux-as<br />
<br />
If you have these files skip to the "Compile FPC" heading.<br />
<br />
I did not have these files so I made a couple of scripts:<br />
#!/bin/bash<br />
# name this file /usr/bin/i386-linux-ld<br />
ld -A elf32-i386 $@<br />
<br />
#!/bin/bash<br />
# name this file /usr/bin/i386-linux-as<br />
as --32 $@<br />
<br />
* Make them executable:<br />
bash $ chmod +x /usr/bin/i386-linux-as<br />
bash $ chmod +x /usr/bin/i386-linux-ld<br />
<br />
* Compile FPC:<br />
bash $ make all CPU_TARGET=i386<br />
then:<br />
bash $ su -c "make install CPU_TARGET=i386"<br />
That's it. Edit your /etc/fpc.cfg file if needed.<br />
<br />
==To Windows==<br />
Information on cross-compilation with Lazarus may be found in [[Cross_compiling_for_Win32_under_Linux]]<br />
<br />
If you are compiling the 2.1.1 or greater branch of fpc you can just do:<br />
<br />
bash $ make all OS_TARGET=win32 CPU_TARGET=i386<br />
and then<br />
bash $ su -c "make crossinstall OS_TARGET=win32 CPU_TARGET=i386"<br />
<br />
Note: to build for win64 the make command is: make all OS_TARGET=win64 CPU_TARGET=x86_64<br />
<br />
The reason for this simplicity is the internal linker included in this version of fpc.<br />
<br />
==To Darwin or Mac OS X==<br />
* First you need the binutils for the platform you want to compile to. Download odcctools from this site (use the cvs version) and follow their instructions for installing. http://www.opendarwin.org/projects/odcctools/<br />
* you need to create a fake root dir like: $HOME/darwinroot copy at least the /System and /Frameworks and /usr directories (you may have to copy more than this) from your Apple or Darwin computer to $HOME/darwinroot<br />
* now that you have these files make a folder in $HOME/darwinroot called cross. where ever you installed the odcctools you need to make links for the cross tools to be more fpc friendly. there are a bunch of files from odcc tools called powerpc-apple-darwin-* you need to make links (or rename them) so powerpc-apple-darwin-ld becomes powerpc-darwin-ld, do the same for *-ar and *-as.<br />
* now you are ready to crosscompile fpc. basically you need to have the fpc source and have a terminal open there.<br />
type: <br />
$PATH=$PATH:$HOME/darwinroot/cross (or whereever you made the symlinks)<br />
type (iirc):<br />
make all TARGET_OS=darwin TARGET_CPU=powerpc OPT="-Xd -Fl/$HOME/darwinroot/usr/lib"<br />
if that succeded you can install it to whereever you want with: <br />
make install TARGET_OS=darwin TARGET_CPU=powerpc PREFIX=/cross/fpc<br />
<br />
now copy the file ./compiler/ppccross somewhere you will be able to find it as it's the compiler you'll need to build powerpc programs<br />
<br />
* configure your /etc/fpc.cfg file.<br />
add a section like this:<br />
#IFDEF powerpc<br />
-Fu/cross/fpc/lib/fpc/$fpcversion/units/$fpctarget/<br />
-Fu/cross/fpc/lib/fpc/$fpcversion/units/$fpctarget/rtl<br />
-Fu/cross/fpc/lib/fpc/$fpcversion/units/$fpctarget/*<br />
-k-systemroot $HOME/darwin/cross<br />
#ENDIF<br />
<br />
whenever you want to crosscompile you have to have ppccross and the symlinks to powerpc-darwin-* in the PATH<br />
and you should be able to just do ppccross someprogie.pas and it will create a darwin executable.<br />
<br />
I may have missed some things (or most everything) as it's been a while since I did this.<br />
<br />
<br />
=From Windows=<br />
==To Linux==<br />
This is less trivial, there is some info in the [[buildfaq]]<br />
<br />
==To GO32v2==<br />
Detailed information may be found in [[Cross-compilation from Win32 to GO32v2]].<br />
<br />
=From Darwin (Mac OS X) i386=<br />
==from i386 to powerpc==<br />
<br />
* Cross binutils<br />
<br />
First check if you already have the files powerpc-darwin-ld and powerpc-darwin-as:<br />
<br />
$ which powerpc-darwin-ld<br />
$ which powerpc-darwin-as<br />
<br />
If you have these files skip the creation of the symlinks and go to the "Compile FPC" heading.<br />
<br />
Actually, the "normal" binutils can be used, since they are universal. Therefore, simple symlinks are enough:<br />
<br />
$ sudo ln -s /usr/bin/as /usr/bin/powerpc-darwin-as<br />
$ sudo ln -s /usr/bin/ld /usr/bin/powerpc-darwin-ld<br />
<br />
The symlinks can be in any other directory, as long as it is in your $PATH (for example /sw/bin when installing through fink).<br />
<br />
* Compile FPC:<br />
<br />
$ cd fpc/compiler<br />
$ make cycle CPU_TARGET=powerpc<br />
<br />
This creates the powerpc compiler (fpc/compiler/ppcppc) and the units of the rtl.<br />
<br />
In order to create powerpc binaries no actual crosscompiler is needed. The powerpc fpc and ppcppc run fine on IntelMacs using Rosetta.<br />
<br />
More test and docs are needed for parallel installation of both and usage.<br />
<br />
If there are missing units, check your config file, $HOME/.fpc.cfg or /etc/fpc.cfg or /sw/etc/fpc.cfg<br />
You may have to add something like or where ever your units are located.<br />
<br />
-Fu/usr/local/lib/fpc/lib/fpc/$fpcversion/units/$fpctarget/<br />
-Fu/usr/local/lib/fpc/lib/fpc/$fpcversion/units/$fpctarget/rtl<br />
-Fu/usr/local/lib/fpc/lib/fpc/$fpcversion/units/$fpctarget/*<br />
<br />
Reminder: Universal binaries are created from the individual (i386 and powerpc) binaries using lipo.<br />
<br />
==To Windows and Linux (32 bit)==<br />
The package manager [http://finkproject.org/ fink] has packages for crosscompiling to windows and linux (32 bit).<br />
<br />
$ fink install fpc-win32<br />
<br />
and<br />
<br />
$ fink install fpc-i386-linux<br />
<br />
install the crosscompilers.<br />
<br />
=Cross compile FAQ=<br />
==Why cross compile?==<br />
So you can develop a program for one OS/CPU and compile it for another OS/CPU without rebooting or switching computers.<br />
==Why Unix to Windows and not the other way around?==<br />
The main reason for this is that generating unix binaries on a foreign platform (another unix or even Linux distro included) is more complicated. <br />
<br />
The main problems are:<br />
# You need libraries on the host computer (the computer you are crosscompiling from)<br />
# There is not one such set libraries as a result of more complex and dynamic Unix versioning<br />
# A lot more (linker) parameters and tweaking is required, which are hard to explain for a general case.<br />
<br />
If you still persist after this warning, please have a look at the crossnotes document mentioned further up, or the [[buildfaq]].<br />
<br />
==I want more information on building Freepascal. Where is it?==<br />
There is a general FAQ in pdf format about how to build and configure FPC: [[buildfaq]]</div>Xnohttps://wiki.freepascal.org/index.php?title=Cross_compiling_for_Win32_under_Linux/hu&diff=35868Cross compiling for Win32 under Linux/hu2009-06-05T16:53:06Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
<br />
Hamarosan...<!--<br />
== Hints to Cross Compile Win32 binaries under Linux ==<br />
<br />
Since 0.9.10 there is an rpm 'fpc-crosswin32', that installs the needed binutils (e.g. cross assembler, cross linker), the fpc .ppu files cross compiled for win32 and modifies /etc/fpc.cfg.<br />
<br />
It does not contain the cross compiled LCL .ppu files. You need to compile them yourself, after installing fpc-crosswin32.<br />
<br />
== Lazarus and the Free Pascal Compiler ==<br />
<br />
=== About Cross compiling - Knowing, what you are doing ===<br />
<br />
This is a short introduction for newbies.<br />
The following sections describe how to setup a system to cross compile, that means working under linux and creating win32 executables (or freebsd or dawin, or ...). <br />
Why cross compiling: FreePascal is a compiler and basically converts source into binaries (machine language). These binaries also contains information, how the operating system starts the executable. Therefore these binaries are platform specific. <br />
FreePascal itself does not need much setup. It can create binaries for many platforms. Just tell it to do so. But the compiler is only one part. There is also the assembler and the linker. And these tools are not able to create cross code. That's why we have to create special linker 'ld' and assembler 'as' for every target platform. These are the binutils.<br />
After creating the cross tools, all the fpc pascal units will be cross compiled. For example, then there is one system.ppu file for every target platform. <br />
Then your fpc config file will be setup, so that cross compilation becomes so easy, that you can forget all the boring details.<br />
The same will be done for the LCL - the lazarus component library.<br />
And after this you can cross compile pascal programs for win32. Either start them with wine or copy them to a windows machine and test them there.<br />
<br />
=== Why *nix to windows and not the other way around. ===<br />
<br />
The main reason for this is that generating unix binaries on a foreign platform (another unix or even Linux distro included) is more complicated. Static linking is already complicated, let alone shared.<br />
<br />
You would need the used libraries from the target platform's (gtk, glib,libc etc), and a lot of additional configuring for ld. (library paths, dynlinker path etc)<br />
<br />
This has been partially done (for the static case), but it is hard since it needs manual postediting of linker files and linker commandline, and a deep understanding about what makes Unix binaries tick. <br />
<br />
=== Download the FPC Sources ===<br />
<br />
The binaries are not enough, you need the complete fpc sources.<br />
See www.freepascal.org. You can use the cvs or a daily snapshot.<br />
For the following examples the fpc sources were downloaded to ~/sources/fpc.<br />
<br />
=== Download the gnu binutils. ===<br />
<br />
For example binutils-2.18.tar.gz downloaded to<br />
~/download/binutils-2.18.tar.gz.<br />
<br />
=== Cross build binutils ===<br />
<br />
In the fpcbuild repository there is a script to build the binutils for all<br />
cross platforms: install/cross/buildcrossbinutils<br />
<br />
Download install of fpcbuild:<br />
[]$ cd ~<br />
[]$ svn co http://svn.freepascal.org/svn/fpcbuild/branches/fixes_2_2/install install<br />
<br />
Create a copy of the script:<br />
<br />
[]$ cd ~/install/cross/<br />
[]$ cp buildcrossbinutils buildcrossbinutils.sh<br />
<br />
Edit the variables at the start of the new script.<br />
<br />
The BASE variable points to a building and installation directory. So, it<br />
should be an empty directory. For example:<br />
BASE=~/cross_fpc<br />
<br />
Now the downloaded binutils file. If for instance you downloaded ~/download/binutils-2.18.tar.gz then set<br />
BINUTILSPATH=~/download/<br />
BINUTILSBASE=binutils<br />
BINUTILSVERSION=2.18<br />
BINUTILS_GZIP=yes<br />
<br />
The script will automatically combine this to ~/download/binutils-2.18.tar.gz.<br />
The rest variables define what target platforms you have. The default is to<br />
build quite a lot, so compilation will take some time (hours on slow machines).<br />
For cross compile to windows, you need only<br />
<br />
TARGETS_WIN="mingw32"<br />
<br />
and to comment all other:<br />
<br />
#BSD="freebsd netbsd openbsd"<br />
#TARGETS_WIN="cygwin mingw32 msdosdjgpp"<br />
#TARGETS_I386="${BSD} linux solaris darwin"<br />
#TARGETS_POWERPC="${BSD} linux darwin"<br />
#TARGETS_SPARC="${BSD} linux solaris"<br />
#TARGETS_M68k=<br />
<br />
<br />
Then run the script:<br />
<br />
[]$ sh buildcrossbinutils.sh<br />
<br />
The script creates a subdirectory 'logs' full of log files. If something goes<br />
wrong, start looking there.<br />
<br />
Note that for several platforms (Linux,FreeBSD, win32) these are available in compiled<br />
form already. See ftp://freepascal.stack.nl/pub/fpc/contrib/cross/<br />
<br />
=== Cross build FPC ===<br />
<br />
In the fpcbuld repository there is a script to build the fpc snapshot for<br />
all cross platforms: install/cross/buildcrosssnapshot<br />
Create a copy of the script:<br />
<br />
[]$ cd ~/install/cross/<br />
[]$ cp buildcrosssnapshot buildcrosssnapshot.sh<br />
<br />
Edit the variables at the start of the new script.<br />
<br />
Normally you will change at least CROSSTOOLSROOT, FPCCVS, DESTDIR, TARGETS_OS<br />
and TARGETS_CPU. For example:<br />
<br />
CROSSTOOLSROOT=~/cross_fpc/cross<br />
FPCCVS=~/sources/fpc<br />
TARGETS_OS="win32"<br />
TARGETS_CPU="i386"<br />
DESTDIR=~/cross_fpc/<br />
<br />
Then run the script:<br />
<br />
[]$ sh buildcrosssnapshot.sh<br />
<br />
After this you got cross compiled units in ~/cross_fpc/<br />
<br />
=== Configure your fpc.cfg ===<br />
<br />
Open as root your /etc/fpc.cfg or create copy /etc/fpc.cfg to ~/fpc.cfg and edit this file. Search in the config for the unit search paths<br />
<br />
Note: On older versions of FPC $version and $target are used instead of $fpcversion and $fpctarget <br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl<br />
<br />
Replace them with special paths for other platforms. For example for normal linux and cross compiled win32:<br />
#IFDEF win32<br />
-Fu~/cross_fpc/lib/fpc/$fpcversion/cross/i386-win32/units/<br />
-Fu~/cross_fpc/lib/fpc/$fpcversion/cross/i386-win32/units/*<br />
-Fu~/cross_fpc/lib/fpc/$fpcversion/cross/i386-win32/units/rtl<br />
-XPi686-mingw32-<br />
-FD~/cross_fpc/cross/bin<br />
#ELSE linux<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*<br />
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl<br />
#-Fu~/fpc/packages/*;~/fpc/rtl/linux<br />
#ENDIF<br />
<br />
ToDo: Test and troubleshooting<br />
<br />
=== Cross compiling the LCL and lazarus components ===<br />
<br />
At Command line: <br />
cd lazarus; make clean all OS_TARGET=win32<br />
cd lazarus/lcl; make clean all <br />
<br />
This will first cross compile everything for win32 (including the IDE, which is unecessary, but so I have to write less doc). <br />
<br />
Or in the IDE: Set LCL, Synedit, Codetools, Package Registration and IDE Interface to Clean+Build, set LCL interface to win32/win64 and set 'Target OS' to win32. Then 'build lazarus'. <br />
These four parts have splitted output directories, so your linux .ppu/.o files are *not* overwritten and you don't need to recompile them.<br />
<br />
=== Cross compiling a project ===<br />
<br />
Set in Run->Compiler Options->Code the Target OS to 'win32' and in Paths the<br />
'LCL Widget Type' to win32. That's all. The next time you build, you will<br />
create a win32 executable.<br />
The IDE will rescan for win32 units, so that 'Find declaration' and code<br />
completion features will now work with the win32 rtl instead of the linux rtl.<br />
When you open another project or reopen this project the IDE will automatically<br />
switch.<br />
<br />
=== Hints for Cross compiling and Lazarus ===<br />
<br />
If you create an application/package for multiple targets, you will often do the following: Fix a bug, compile and test it under linux, then compile and test it under win32, .. . Because normally you overwrite your .ppu files, you have to recompile everything, everytime you switch. This is not necessary.<br />
The Lazarus IDE supports macros.<br />
<br />
Example 1: Cross compiling a project for linux and win32. <br />
<br />
Set Run -> Compiler Options -> Paths -> Unit Output directory to $(TargetOS). This macro will be replaced by the value in Code -> TargetOS in lowercase (i.e. "linux" for Linux and "win32" for Win32). <br />
The output directory is relative to your project directory (the directory where your .lpi is). Create a linux and win32 directory in your project directory.<br />
When you click on the "Show Options" button at the bottom of the compiler options, you will see a -FElinux/ or -FEwin32/. This option tells the compiler where to write the output (e.g. .ppu/.o files).<br />
<br />
<br />
Example 2: Cross compiling a project for various platforms and widget sets.<br />
<br />
Set the Unit output directory to<br />
$(TargetCPU)/$(TargetOS)/$(LCLWidgetType)<br />
and create the sub directories for all targets. This path construction is also used by the LCL.<br />
<br />
<br />
<br />
The same can be done for packages.<br />
<br />
=== Cross compiling and Lazarus Packages ===<br />
<br />
Lazarus packages are not limited to libraries. They can be used to compile nearly everything. And the IDE automatically recompiles them if needed. <br />
Packages can inherit compiler options. For example: A project that uses a package inherits the output directory of the package. In other words: the output directory of the package is added to unit search path of the project. See in the IDE: Run -> Compiler options -> Inherited.<br />
Inheritance normally works only one way. <br />
But there are exceptions:<br />
The target platform (OS and CPU) of the project overrides the target for all used packages. That means, if you set the Target OS of the project to "win32" and compile the project, the IDE will check if the used packages need to be recompiled for this Target OS.<br />
<br />
For example:<br />
<br />
Package A has as output directory: lib/$(TargetOS)<br />
Project uses A.<br />
# The project is built for linux. The IDE compiles A for linux in <PackageDirOfA>/lib/linux/, then it compiles the project for linux.<br />
# The project is built for win32. The IDE compiles A for win32 in <PackageDirOfA>/lib/win32/, then it compiles the project for win32.<br />
# The project is built again for linux. The IDE checks A for linux and does not recompile it. Then it compiles the project for linux.<br />
<br />
So, using the macros saves a lot of time.<br />
<br />
== For Unix (general) ==<br />
<br />
Option -XLA is used to rename library dependencies specified in pascal units. Format is -XLAold=new, to modify ld link option -l<old> to -l<new>.<br />
<br />
Option -XR<sysroot> (recent trunk) that can be used to specify the target system root. It's used for:<br />
* adding a prefix to the default added library paths; in the past you used to specify -Xd and these paths manually. E.g. for i386-linux instead of passing /lib, /usr/lib, and /usr/X11R6/lib to ld, it will pass <sysroot>/lib, <sysroot>/usr/lib, and <sysroot>/usr/X11R6/lib to ld.<br />
* detecting the C library (linux specific): glibc or uclibc. E.g. for uclibc detection '<sysroot>/lib/ld-uClibc.so.0' is tried.<br />
<br />
== For Linux under Win32 ==<br />
Marco vd Voort wrote some [http://www.stack.nl/~marcov/crossnotes.txt crossnotes]. If somebody has time, he can add them to this wiki.<br />
<br />
== FreeBSD to sparc ==<br />
<br />
I managed to crosscompile from x86 to Sparc Solaris 9. However the result doesn't work very well, but here is my cmdline:<br />
<br />
in compiler/ execute:<br />
<br />
gmake cycle CPU_TARGET=sparc OS_TARGET=solaris CROSSBINUTILPREFIX=solaris-sparc- CROSSOPT='-Xd -Fl~/src/sollib'<br />
<br />
~/src/sollib is a directory that contains:<br />
* a set of .o's from /usr/local/gcc-3.3-32bit/lib/gcc-lib/sparc-sun-solaris/3.3<br />
* libgcc.a from /usr/local/gcc-3.3-32bit/lib/gcc-lib/sparc-sun-solaris/3.3<br />
* a set of lib*.so from /usr/lib: libaio.so libmd5.so libc.so libelf.so librt.so libdl.so libm.so <br />
<br />
Problem is illustrated by the following binary.<br />
<br />
Free Pascal Compiler version 2.1.1 [2006/03/17] for sparc<br />
Copyright (c) 1993-2005 by Florian Klaempfl<br />
Target OS: Solaris for SPARC<br />
Compiling system.pp<br />
system.pp(15,1) Fatal: Syntax error, "BEGIN" expected but "identifier UNIT" found<br />
<br />
I suspect wrong .o's are taken.<br />
<br />
== For Mac OS X ==<br />
See this [http://www.lazarus.freepascal.org/index.php?name=PNphpBB2&file=viewtopic&p=7222#7222 forum post].<br />
<br />
<br />
<br />
==Original Contributors==<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=CrossCompilingForWin32UnderLinux version].<br />
--></div>Xnohttps://wiki.freepascal.org/index.php?title=Cross_Compile_with_FPC_for_ARM&diff=35798Cross Compile with FPC for ARM2009-06-05T08:33:23Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
<br />
== Cross Compile with FPC for ARM (e.g. Zaurus) ==<br />
<br />
* First, setup a cross compilation environment; you can get more information about this here [http://www.cartel-securite.fr/pbiondi/zaurus/crosscompile.html], here [http://www.nautilus6.org/operation/doc/wide-memo-nautilus6-zaurus-ccenv-setup-00.txt] and here [http://projects.buici.com/arm/cross/].<br />
* Install the lastest native fpc [http://sourceforge.net/project/showfiles.php?group_id=89339 from sourceforge]<br />
* get an arm fpc snapshot from the downloads page of [http://users.pandora.be/Jan.Van.hijfte/qtforfpc/qtedemo.html FPC Qt Binding for Zaurus]<br />
* Download it to somedir. The name of the tar file may be different ofcourse<br />
<tt><br />
cd somedir<br><br />
tar zxvf arm-linux-fpc.i386-linux-20050217.tar.gz<br />
</tt><br />
* you will find a 'lib/fpc/1.9.7/units/arm-linux/...' dir. The version may be '1.9.8' or higher.<br />
* create FPC library directory structure for fpc in a lib dir on your system<br />
* most systems use '/usr/local/lib', some use '/usr'<br />
<tt><br />
mkdir -p /usr/local/lib/fpc/1.9.7/units<br><br />
cp -fr lib/fpc/1.9.7/units/arm-linux /usr/local/lib/fpc/1.9.7/units/<br />
</tt><br />
* copy the fpc cross compiler to its default place<br />
<tt><br />
cp lib/fpc/1.9.7/ppcarm /usr/local/lib/fpc/1.9.7<br />
</tt><br />
* set a soft link to it in a bin dir in your path<br />
* most distributions use '/usr/local/bin', some '/usr/bin'<br />
<tt><br />
ln -sf /usr/local/lib/fpc/1.9.7/ppcarm /usr/local/bin/ppcarm<br />
</tt><br />
* verify you can call ppcarm, it should return something like '1.9.7' and not 'command not found'<br />
<tt><br />
ppcarm -iV<br />
</tt><br />
* download [ftp://ftp.freepascal.org/pub/fpc/snapshot/v19/arm-linux/binutils.tar.gz FPC 1.9.x ARM binutils] to somedir<br />
<tt><br />
cd somedir<br><br />
tar zxvf binutils.tar.gz<br><br />
</tt><br />
* copy the 2 programs in the tar to a bin dir in your path<br />
<tt><br />
cp arm-linux-* /usr/local/bin<br><br />
</tt><br />
* create a 'Hello World' program and compile it<br />
<tt><br />
echo "program hello; begin writeln('Hello World'); end." > hello.pas<br><br />
ppcarm -XParm-linux- hello.pas<br><br />
</tt><br />
* output should be something like this:<br />
<br />
# ppcarm -XParm-linux- hello.pas<br />
Free Pascal Compiler version 1.9.7 [2005/02/17] for arm<br />
Copyright (c) 1993-2005 by Florian Klaempfl<br />
Target OS: Linux for ARM<br />
Compiling hello.pas<br />
Assembling hello<br />
Linking hello<br />
1 Lines compiled, 0.2 sec<br />
<br />
* Copy it to the home directory of the user 'zaurus' on your zaurus device.<br />
* With a ssh setup this could be as simple as:<br />
<tt>scp hello zaurus:/home/zaurus</tt><br />
* Install terminal program on your Zaurus. For a Zaurus SL6000: see manual on CD.<br />
* Run the terminal program. On a SL6000 the console will default to user 'zaurus' in its home dir /home/zaurus<br />
* Run the program<br />
<tt><br />
./hello<br />
</tt><br />
* Output should be something like:<br />
Hello World</div>Xnohttps://wiki.freepascal.org/index.php?title=WinCE_port/it&diff=35411WinCE port/it2009-05-19T07:22:12Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
Si noti che attualmente non e` possibile installare Lazarus/FPC direttamente sul PDA e creare applicazioni direttamente da li.<br />
<br />
Le istruzioni seguenti dimostreranno come installare e configurare il compilatore FreePascal con Lazarus per creare applicazioni per Windows Mobile. Le istruzioni seguenti vanno eseguite su sistema operativo Microsoft Windows.<br />
<br />
* 1. Disinstallare Lazarus (non necessario, ma preferibile per un installazione pulita)<br />
* 2. Installare '''lazarus-0.9.26.2-fpc-2.2.2-win32.exe'''<br />
* 3. Installare '''lazarus-0.9.26.2-fpc-2.2.2-cross-arm-wince-win32.exe'''<br />
* 4. Installare '''fpc-2.2.2.arm-wince.exe'''<br />
* 5. Lazarus > File > Nuovo > Progetto > Applicazione<br />
* 6. Progetto > Opzioni compilatore > Percorsi > Widgset > WinCE<br />
* 7. Progetto > Opzioni compilatore > Codice > Target OS > WinCE<br />
* 8. Progetto > Opzioni compilatore > Codice > Target CPU family > (Dipende di solito ARM o i386)<br />
* 9. Installare ActiveSync<br />
* 10. Connettere l'apparato con '''ActiveSync'''<br />
* 10. Installare '''My Mobiler''' (non necessario, ma utile per controllare il vostro dispositivo direttamente dal computer)<br />
* 11. Salvare il progetto creato in precedenza (preferibilmente in unpercorso senza spazii)<br />
* 11. Premere '''CTRL+F9''' per compilare il progetto<br />
* 12. Copiare l'eseguibile sul PDA<br />
* 13. Sul PDA cliccare su '''project1.exe''' (o qualunque nome si abbia dato al programma)<br />
<br />
Le applicazioni da Console non sono supportate su Windows Mobile, provate ad installare PocketCMD cio` dovrebbe rendere possibile tali applicazioni.<br />
<br />
Hai fatto 13</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Swen&diff=35337User talk:Swen2009-05-11T07:50:59Z<p>Xno: /* Language Menu to translate page */</p>
<hr />
<div>Hello Swen,<br />
<br />
you asked "Is 中文(简体)the official chinese translation of 'Chinese' (are the brackets necessary)?", The Answer is: 中文(简体) = Chinese Simplified. So, the brackets is necessary.<br />
<br />
:Thanks for your reply. Then we will use these characters. Regards --[[User:Swen|Swen]] 13:21, 1 December 2007 (CET)<br />
<br />
Hi Swen,<br />
<br />
Please remove the empty pages, I know I can move pages, but since described below, I choose to do it the other way, sorry to have caused you extra work.<br />
What now is Toa's Pascal Tutorial should grow into The Object Pascal Tutorial targeting FPC.<br />
<br />
Regards,<br />
<br />
Kees<br />
<br />
:Hello Kees,<br />
<br />
:some mouse clicks are not really extra work. The pages are deleted. I think we should change now the link on [[Lazarus Documentation]] from Tao Yue to your start page ([[Object Pascal Introduction]]?). --[[User:Swen|Swen]] 22:52, 26 November 2007 (CET)<br />
<hr><br />
Hello Swen,<br />
<br />
I received a USER TALK from you, but I'm not shure if this is the right way to talk back.<br />
Since you don't accept e-mail, I'll try it this way (could not find an other way!?).<br />
<br />
I've been working wiki-fying Tao Yue's Pascal Tutorial. I more or less kept the original page names, but since they are displayed on top in capitals, I later changed to more logical page names. And after I finished started a renaming cycle for the first pages. Since I didn't want to loose any work, and also had to change the table of contents, and previous/next on these pages, I first made it all work with new pages, afterwards deleted (made empty) the old ones. That's what I tried to accomplish.<br />
What is the best way to delete a page?<br />
Please reply, so I know you received this message .<br />
<br />
Regards,<br />
<br />
Kees<br />
<hr><br />
Dear Swen-san,<br />
<br />
Thank you for telling me that I have mistakenly violated the structure rule.<br />
Because I do not know how to delete the wrong page, plese delete it if you can.<br />
<br />
Sincerely,<br />
<br />
Haruyuki Fujimaki<br />
<br />
<br />
:Dear Fujimaki-san,<br />
<br />
:a wiki allows to move pages (that means, a page gets a new name). So a deletion is not necessary. If I see, that a page got a problematic name, I will correct this automatically. Don't hesitate to ask me if you have questions (or ideas).<br />
<br />
:Best regards,<br />
:Swen<br />
<br />
==category+ real==<br />
I deleted the page 'real' because the page contained only a redirect. I couldn't see any advantage of the new page. <br />
If you have an explanation please let me know. <br />
By the way, what do you want to do with the category 'pascal'?<br />
I tried [[real]] and it gave me the edit new page thingy. As real now still seems to redirect to [[Real]] this may have been a temp glitch.<br />
<br />
As to a the category 'pascal' it is more that I'm keen on categories in general as a way of helping users find what's available. There is quite a number of pages that are more about Pascal in general rather than fpc so that seemed a good place to start. Hence I see it as a not-specifically-Lazarus-or-fpc-cat.<br />
[[User:Dejvid|Dejvid]] 20:16, 9 March 2007 (CET)<br />
<br />
<br />
Aha now I see. If you type in real you get redirected to [[Real]] but a link [[real]] will not redirect wihout a redirect page. Could you restore it please?<br />
[[User:Dejvid|Dejvid]] 20:19, 9 March 2007 (CET)<br />
<br />
:If I look on the pages, where you inserted the category keyword, I see that the category is shown in red (that means, that there is no content behind it). Thats why I asked, if you want to do something special with the category. From my point we don't need this category. This wiki is about Lazarus and Free Pascal. Pascal is always inside there.<br />
:Regarding the 'real' page it's maybe the better solution to move the whole page from 'Real' to 'real'. So we wouldn't need a redirect. I'm not sure what other users think about this. --[[User:Swen|Swen]] 23:27, 9 March 2007 (CET)<br />
<br />
If you click on the category you will still get all the pages in the category. While it is true that this wiki is specifically about Lazarus and not Pascal in general, there are a number of pages that are not really fpc-Laz specific and need a cat. True, this not the most essential cat but I'm quite new to Lazarus so I don't have the confidence to decide on the most apropriate cats for those pages. Ultimately, IMO, every page should be in at least one cat.<br />
<br />
As to making [[real]] the page, surely you will still need a redirect on the [[Real]] page?<br />
[[User:Dejvid|Dejvid]] 14:59, 10 March 2007 (CET)<br />
<br />
:I have moved the page to 'real' and I also updated the links to this page. --[[User:Swen|Swen]] 13:45, 11 March 2007 (CET)<br />
<br />
==Carbon Page==<br />
<br />
Hallo, ich habe eine kleine Änderung in der Carbon Seite gemacht. Könntest du die Deutsch Seite aktualisieren? Ich möchte sehen, wie die Übersetzung wäre. danke --[[User:Sekelsenmat|Sekelsenmat]] 15:56, 28 June 2007 (CEST)<br />
<br />
:Ich habe die Änderungen auf [[Carbon Interface/de]] übertragen. Ich bin mir in einem Punkt aber nicht sicher 'able to run lazarus'. Das Carbon Widgetset ist doch ein Teil von Lazarus oder sehe ich das falsch? --[[User:Swen|Swen]] 17:18, 3 July 2007 (CEST)<br />
<br />
:: Ja, the Carbon Interface gehört zu Lazarus. Bei "able to run lazarus", ich meine dass man eine Lazarus compiliert mit Carbon widgetset laufen kann. Ah, und a propos, normalerweise antwortet man in meine Talk page, damit ich eine Message über deine Antwort bekomme. Es ist ein bischen seltsam aber es funktioniert so. --[[User:Sekelsenmat|Sekelsenmat]] 20:22, 3 July 2007 (CEST)<br />
<br />
:::Ich habe die Übersetzung angepaßt. In anderen Wikis (z.B. [http://de.wikipedia.org]) ist es üblich, daß eine Diskussion dort fortgeführt wird, wo sie begonnen wurde. Wir können das hier aber auch anders handhaben. Ich sehe das nicht so eng. --[[User:Swen|Swen]] 22:36, 3 July 2007 (CEST)<br />
<br />
::::Danke. Über die Talk-seiten, nein, in Wikipedia eine Diskussion in eine User-talkpage muss funktionieren wie ich habe gesagt. Es geht weiter in die gleich Seite nür wann es ist eine Artikel-talkpage und nicht eine User-talkpage. Oder am mindestens as funktioniert in deise weise in portuguesisch und englisch wikipedia. Vielleicht viele leute macht so falsch, aber die Admins und alter leute machen es richtig. --[[User:Sekelsenmat|Sekelsenmat]] 14:14, 4 July 2007 (CEST)<br />
<br />
----<br />
hello, it's me again,<br />
<br />
this time, i would like to copy a table from french version of wiki to english version, so i ask you for your agreement<br />
<br />
the adress is http://wiki.lazarus.freepascal.org/index.php?title=Code_Conversion_Guide/fr&action=edit&section=13<br />
<br />
--[[User:Paulatreides|paulatreides]] 02:32, 4 July 2007 (CEST)<br />
<br />
:If you mean this table [[Code Conversion Guide/fr#Fichier_Delphi_.2F_Kylix_.C3.A9quivalents_dans_Lazarus]], I see no problems (don't forget to change french descriptions to english). --[[User:Swen|Swen]] 10:08, 4 July 2007 (CEST)<br />
<br />
== Sorry ==<br />
<br />
Hello Swen, <br />
I mistaken? <br />
on which page? <br />
Thank you to say to me so that I see my error :) <br />
<br />
regards<br />
<br />
:You changed the [[LCL Defines]] page. I copied your changes to [[LCL Defines/fr]] and restored the english page. --[[User:Swen|Swen]] 11:00, 9 July 2007 (CEST)<br />
----<br />
<br />
Hello,<br />
<br />
Could you explain me quickly the difference beetwen USER and USERTALK, can i use indistinctly the two to speak to someone ?<br />
<br />
thank you<br />
<br />
--[[User:Paulatreides|paulatreides]] 00:36, 9 July 2007 (CEST)<br />
<br />
:The USER page is usually reserved for the user to give information about his person, his projects or whatever he wants to tell. On the USERTALK page other users can ask questions or give hints or ... . -- [[User:Swen|Swen]] 11:00, 9 July 2007 (CEST)<br />
<br />
----<br />
<br />
you are right but.... If you create for example a new projet(nothing more) if you type, CTRL+R, the windows will appear, but if you type CTRL+F it will not ! But if you put the cursor on the source éditor and then type CTRL+F, the find windows will appear as expected.<br />
<br />
--[[User:Paulatreides|paulatreides]] 16:15, 20 July 2007 (CEST)<br />
<br />
<br />
Hello Swen,<br />
Thank you for your attention, please remind me if I make any mistake relating to Wiki. Vincent just add Indonesian (Bahasa Indonesia) as I asked. Currently I am a translator for FPC and Lazarus (Indonesian). Now I want to participate in the Wiki.<br />
Best Regards,<br />
adezm<br />
<br />
----<br />
==Language Menu to translate page==<br />
I see your work on some page, I think you tray this [[Template:Translate]] or this [[Template:MenuTranslate]] <br />
<br />
--[[User:Xno|Xno]] 09:50, 11 May 2009 (CEST)</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Swen&diff=35336User talk:Swen2009-05-11T07:50:25Z<p>Xno: </p>
<hr />
<div>Hello Swen,<br />
<br />
you asked "Is 中文(简体)the official chinese translation of 'Chinese' (are the brackets necessary)?", The Answer is: 中文(简体) = Chinese Simplified. So, the brackets is necessary.<br />
<br />
:Thanks for your reply. Then we will use these characters. Regards --[[User:Swen|Swen]] 13:21, 1 December 2007 (CET)<br />
<br />
Hi Swen,<br />
<br />
Please remove the empty pages, I know I can move pages, but since described below, I choose to do it the other way, sorry to have caused you extra work.<br />
What now is Toa's Pascal Tutorial should grow into The Object Pascal Tutorial targeting FPC.<br />
<br />
Regards,<br />
<br />
Kees<br />
<br />
:Hello Kees,<br />
<br />
:some mouse clicks are not really extra work. The pages are deleted. I think we should change now the link on [[Lazarus Documentation]] from Tao Yue to your start page ([[Object Pascal Introduction]]?). --[[User:Swen|Swen]] 22:52, 26 November 2007 (CET)<br />
<hr><br />
Hello Swen,<br />
<br />
I received a USER TALK from you, but I'm not shure if this is the right way to talk back.<br />
Since you don't accept e-mail, I'll try it this way (could not find an other way!?).<br />
<br />
I've been working wiki-fying Tao Yue's Pascal Tutorial. I more or less kept the original page names, but since they are displayed on top in capitals, I later changed to more logical page names. And after I finished started a renaming cycle for the first pages. Since I didn't want to loose any work, and also had to change the table of contents, and previous/next on these pages, I first made it all work with new pages, afterwards deleted (made empty) the old ones. That's what I tried to accomplish.<br />
What is the best way to delete a page?<br />
Please reply, so I know you received this message .<br />
<br />
Regards,<br />
<br />
Kees<br />
<hr><br />
Dear Swen-san,<br />
<br />
Thank you for telling me that I have mistakenly violated the structure rule.<br />
Because I do not know how to delete the wrong page, plese delete it if you can.<br />
<br />
Sincerely,<br />
<br />
Haruyuki Fujimaki<br />
<br />
<br />
:Dear Fujimaki-san,<br />
<br />
:a wiki allows to move pages (that means, a page gets a new name). So a deletion is not necessary. If I see, that a page got a problematic name, I will correct this automatically. Don't hesitate to ask me if you have questions (or ideas).<br />
<br />
:Best regards,<br />
:Swen<br />
<br />
==category+ real==<br />
I deleted the page 'real' because the page contained only a redirect. I couldn't see any advantage of the new page. <br />
If you have an explanation please let me know. <br />
By the way, what do you want to do with the category 'pascal'?<br />
I tried [[real]] and it gave me the edit new page thingy. As real now still seems to redirect to [[Real]] this may have been a temp glitch.<br />
<br />
As to a the category 'pascal' it is more that I'm keen on categories in general as a way of helping users find what's available. There is quite a number of pages that are more about Pascal in general rather than fpc so that seemed a good place to start. Hence I see it as a not-specifically-Lazarus-or-fpc-cat.<br />
[[User:Dejvid|Dejvid]] 20:16, 9 March 2007 (CET)<br />
<br />
<br />
Aha now I see. If you type in real you get redirected to [[Real]] but a link [[real]] will not redirect wihout a redirect page. Could you restore it please?<br />
[[User:Dejvid|Dejvid]] 20:19, 9 March 2007 (CET)<br />
<br />
:If I look on the pages, where you inserted the category keyword, I see that the category is shown in red (that means, that there is no content behind it). Thats why I asked, if you want to do something special with the category. From my point we don't need this category. This wiki is about Lazarus and Free Pascal. Pascal is always inside there.<br />
:Regarding the 'real' page it's maybe the better solution to move the whole page from 'Real' to 'real'. So we wouldn't need a redirect. I'm not sure what other users think about this. --[[User:Swen|Swen]] 23:27, 9 March 2007 (CET)<br />
<br />
If you click on the category you will still get all the pages in the category. While it is true that this wiki is specifically about Lazarus and not Pascal in general, there are a number of pages that are not really fpc-Laz specific and need a cat. True, this not the most essential cat but I'm quite new to Lazarus so I don't have the confidence to decide on the most apropriate cats for those pages. Ultimately, IMO, every page should be in at least one cat.<br />
<br />
As to making [[real]] the page, surely you will still need a redirect on the [[Real]] page?<br />
[[User:Dejvid|Dejvid]] 14:59, 10 March 2007 (CET)<br />
<br />
:I have moved the page to 'real' and I also updated the links to this page. --[[User:Swen|Swen]] 13:45, 11 March 2007 (CET)<br />
<br />
==Carbon Page==<br />
<br />
Hallo, ich habe eine kleine Änderung in der Carbon Seite gemacht. Könntest du die Deutsch Seite aktualisieren? Ich möchte sehen, wie die Übersetzung wäre. danke --[[User:Sekelsenmat|Sekelsenmat]] 15:56, 28 June 2007 (CEST)<br />
<br />
:Ich habe die Änderungen auf [[Carbon Interface/de]] übertragen. Ich bin mir in einem Punkt aber nicht sicher 'able to run lazarus'. Das Carbon Widgetset ist doch ein Teil von Lazarus oder sehe ich das falsch? --[[User:Swen|Swen]] 17:18, 3 July 2007 (CEST)<br />
<br />
:: Ja, the Carbon Interface gehört zu Lazarus. Bei "able to run lazarus", ich meine dass man eine Lazarus compiliert mit Carbon widgetset laufen kann. Ah, und a propos, normalerweise antwortet man in meine Talk page, damit ich eine Message über deine Antwort bekomme. Es ist ein bischen seltsam aber es funktioniert so. --[[User:Sekelsenmat|Sekelsenmat]] 20:22, 3 July 2007 (CEST)<br />
<br />
:::Ich habe die Übersetzung angepaßt. In anderen Wikis (z.B. [http://de.wikipedia.org]) ist es üblich, daß eine Diskussion dort fortgeführt wird, wo sie begonnen wurde. Wir können das hier aber auch anders handhaben. Ich sehe das nicht so eng. --[[User:Swen|Swen]] 22:36, 3 July 2007 (CEST)<br />
<br />
::::Danke. Über die Talk-seiten, nein, in Wikipedia eine Diskussion in eine User-talkpage muss funktionieren wie ich habe gesagt. Es geht weiter in die gleich Seite nür wann es ist eine Artikel-talkpage und nicht eine User-talkpage. Oder am mindestens as funktioniert in deise weise in portuguesisch und englisch wikipedia. Vielleicht viele leute macht so falsch, aber die Admins und alter leute machen es richtig. --[[User:Sekelsenmat|Sekelsenmat]] 14:14, 4 July 2007 (CEST)<br />
<br />
----<br />
hello, it's me again,<br />
<br />
this time, i would like to copy a table from french version of wiki to english version, so i ask you for your agreement<br />
<br />
the adress is http://wiki.lazarus.freepascal.org/index.php?title=Code_Conversion_Guide/fr&action=edit&section=13<br />
<br />
--[[User:Paulatreides|paulatreides]] 02:32, 4 July 2007 (CEST)<br />
<br />
:If you mean this table [[Code Conversion Guide/fr#Fichier_Delphi_.2F_Kylix_.C3.A9quivalents_dans_Lazarus]], I see no problems (don't forget to change french descriptions to english). --[[User:Swen|Swen]] 10:08, 4 July 2007 (CEST)<br />
<br />
== Sorry ==<br />
<br />
Hello Swen, <br />
I mistaken? <br />
on which page? <br />
Thank you to say to me so that I see my error :) <br />
<br />
regards<br />
<br />
:You changed the [[LCL Defines]] page. I copied your changes to [[LCL Defines/fr]] and restored the english page. --[[User:Swen|Swen]] 11:00, 9 July 2007 (CEST)<br />
----<br />
<br />
Hello,<br />
<br />
Could you explain me quickly the difference beetwen USER and USERTALK, can i use indistinctly the two to speak to someone ?<br />
<br />
thank you<br />
<br />
--[[User:Paulatreides|paulatreides]] 00:36, 9 July 2007 (CEST)<br />
<br />
:The USER page is usually reserved for the user to give information about his person, his projects or whatever he wants to tell. On the USERTALK page other users can ask questions or give hints or ... . -- [[User:Swen|Swen]] 11:00, 9 July 2007 (CEST)<br />
<br />
----<br />
<br />
you are right but.... If you create for example a new projet(nothing more) if you type, CTRL+R, the windows will appear, but if you type CTRL+F it will not ! But if you put the cursor on the source éditor and then type CTRL+F, the find windows will appear as expected.<br />
<br />
--[[User:Paulatreides|paulatreides]] 16:15, 20 July 2007 (CEST)<br />
<br />
<br />
Hello Swen,<br />
Thank you for your attention, please remind me if I make any mistake relating to Wiki. Vincent just add Indonesian (Bahasa Indonesia) as I asked. Currently I am a translator for FPC and Lazarus (Indonesian). Now I want to participate in the Wiki.<br />
Best Regards,<br />
adezm<br />
<br />
----<br />
=Language Menu to translate page=<br />
I see your work on some page, I think you tray this [[Template:Translate]] or this [[Template:MenuTranslate]] <br />
<br />
--[[User:Xno|Xno]] 09:50, 11 May 2009 (CEST)</div>Xnohttps://wiki.freepascal.org/index.php?title=Projects_using_Free_Pascal&diff=35278Projects using Free Pascal2009-05-06T07:53:51Z<p>Xno: /* Dedalu */</p>
<hr />
<div>{{Projects using Lazarus}}<br />
<br />
see also:[[Lazarus_Application_Gallery]] <br />
<br />
== Active Lazarus Projects ==<br />
<br />
=== 30 Seconds Free Software ===<br />
[http://code.google.com/p/30seconds 30 Seconds] is software package that creates cards for the [http://en.wikipedia.org/wiki/30_Seconds_(game) 30 Seconds] board game. It also have a playing interface if you want to play on your laptop / PC (and hopefully soon WinCE devices). <br />
<br />
=== 5dpo Component Library ===<br />
[[5dpo]] is a set of components developed by the [http://www.fe.up.pt/~robosoc 5dpo Robotic Soccer Team]. It provides a visual serial port (TSdpoSerial) implementation of [[Projects_using_Lazarus#Synaser|Synaser]], an IEEE1394 camera (TSdpoVideo1394) component, an [http://linux-uvc.berlios.de/ UVC video] driver component (TSdpoVideo4L2) for webcams, a Gtk fast painting form (TSdpoFastForm) and a Joystick (TSdpoJoystick) component.<br />
<br />
=== Audio Component Suite ===<br />
A collection of components to develop applications for audio playing/recording/processing. Can play wav,ogg,mp3,mp2,wma ... record from any recordable source, do everything simultan, ripping and more ..<br />
You can find all about it in the Code and Components section or Download section<br />
<br />
=== Audio X ===<br />
[http://www.ullihome.de Audio X] is an media management tool, that organize and sort your media without an database so everything is ever actual. A lot of audio formats are useable directly but you can also organize your LP or CD collection with it,it stores the data in XML Files so they are viewablealso with an webbrowser ... <br />
<br />
=== Becape ===<br />
[https://sourceforge.net/projects/becape/ Becape] is a open source backup tool aimed to personal/desktop usage. It does incrementall backups and stores the backup info in a sqlite database allowing to restore the exact state of the backed files at a choosen date. It's fully written in Lazarus/Freepascal.<br />
<br />
=== BeniBela's tools/components ===<br />
On [http://www.benibela.de BeniBela online] I published some components for Lazarus and tools based on them/it. <br />
<br />
They include: A treelistview control which is a mix between a treeview and a listview, a diagram unit which displays diagrams based on a model/view concept and a templated based html parser which matches the structure of the parsed file to the one of a previously created template.<br />
<br />
The tools only works on Windows, and are an API Manager to control the Win32-API and a sun simulator which changes the settings of the graphic card to match the natural sun light<br />
<br />
<br />
=== BrasLib ===<br />
[http://br.groups.yahoo.com/group/BrasLib-devel/ BrasLib] is a new report component for Lazarus under development by brazilian programmers. <br />
<br />
=== Cactus Jukebox ===<br />
Cactus is an audio player that comes with a database to organize your mp3 file collection. Take a look at [http://cactus.hey-you-freaks.de Cactus Homepage]. It's plattform independent and currently available for linux and win32. <br />
<br />
Since actual v0.3 it supports managing and uploading files on a mobile player.<br />
<br />
===CQRLOG===<br />
<br />
[http://www.sourceforge.net/projects/cqrlog/ CQRLOG] is an advanced ham radio logger based on Firebird database. Provides radio control based on hamlib libraries (currently support of 140+ radio types and models), DX cluster connection, QRZ callbook (web version), a grayliner, ON6DP QSL manager database support and a most accurate country resolution algorithm based on country tables developed by OK1RR. CQRlog is strongly focused on easy operation and maintenance.<br />
<br />
=== CUPS for lazarus ===<br />
Olivier Guilbaud [http://cups4lazarus.sourceforge.net/ CUPS for lazarus project] is developing the bindings for pascal to use the CUPS (Common UNIX Printing System) libraries. With some dialogs for select printer, setup printer, setup printer jobs.<br />
<br />
Note: This package is deprecated, Cups for Lazarus is now integrated in Printers4Lazarus package which is included with Lazarus. --[[User:Jesusrmx|jesusrmx]] 20:10, 26 June 2006 (CEST)<br />
<br />
=== Daring Apprentice ===<br />
<br />
[http://daringapprentice.wikispaces.com Daring Apprentice] is a 3d [http://www.wizards.com/magic/ Magic: The Gathering] tabletop. It uses GLScene, and lNet.<br />
<br />
=== dbmaker ===<br />
<br />
[http://www.rgsoftware.de dbmaker] is a database application using TDbf and LazReport. Its user interface language is german.<br />
<br />
=== Dedalu ===<br />
A collection of small and simple projects developed in Lazarus by Giuseppe Ridinò (aka Pepecito). They are games, editors, utilities, etc.<br><br />
Homepage: http://dedalu.sourceforge.net/<br />
=== Double Commander ===<br />
Double Commander is a cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas. Homepage: http://sourceforge.net/projects/doublecmd/<br />
<br />
=== ExPress ===<br />
A GUI wrapper for UPX (Ultimate Packer for eXecutables). Download it [http://code.google.com/p/express-gui here].<br />
<br />
=== ExtPascal ===<br />
An Ext JS wrapper. [http://extpascal.googlecode.com ExtPascal] lets you use the ExtJS from Object Pascal commands issued by the server. That brings the structure and strict syntax of the Object Pascal for programming the web browser.<br />
<br />
=== fenixsql ===<br />
[http://fblib.altervista.org fenixsql] is a simple admin tool for firebird sql database<br />
<br />
=== Free Pascal Operating System ===<br />
Interested in developing an OS with Free Pascal? This project can be used as a starting point (though incomplete and YOU ARE WELCOME to complete it :-)). Download it [http://code.google.com/p/fpos here].<br />
<br />
=== Game Maker ===<br />
[http://www.yoyogames.com/gamemaker Game Maker] allows you to make computer games using easy to learn drag-and-drop actions. You can create professional looking games within very little time. You can make games with backgrounds, animated graphics, music and sound effects, and even 3D games! And when you've become more experienced, there is a built-in programming language, which gives you the full flexibility of creating games with Game Maker. What is best, is the fact that Game Maker can be used free of charge.<br />
<br />
Originally written in Delphi, Lazarus/FreePascal was used to port it from Win32 to Mac OS X and could be used in future for Linux and other platforms.<br />
<br />
=== GLScene ===<br />
A complete 3D graphics library using OpenGL for rendering. You are able to edit your 3D scenes directly in the IDE. Further information can be found on the main page ([http://www.glscene.org GLScene]) or in [[GLScene|GLScene's 'Code and Components' section]].<br />
<br />
=== GTK2forpascal ===<br />
Mattias Gaertner's [http://sourceforge.net/projects/gtk2forpascal/ gtk2forpascal project] is developing the bindings for pascal to use the gtk2 libraries (gimp tool kit). Supported Languages are [[Free Pascal]] and Kylix and the bindings are intended to work under Linux, FreeBSD and Win32. These bindings are now also part of the packages supplied with fpc.<br />
<br />
=== GTK-Fireadmin ===<br />
A GTK based Firebird Administration tool using Firebird Objects and Lazarus Components is available [http://sourceforge.net/projects/gtkfireadmin/ here].<br />
<br />
<br />
=== Habari ActiveMQ Client ===<br />
[http://www.mikejustin.com/ Habari ActiveMQ Client] is a library (and components) for Delphi(tm) and Free Pascal which provides easy access to [http://activemq.apache.org/ Apache ActiveMQ], the most popular and powerful open source Message Broker.<br />
With Habari ActiveMQ Client, applications can connect to Apache ActiveMQ servers, subscribe to queues and topics, send and receive messages and objects, and work with transactions. The communication layer supports Synapse and Indy for Lazarus.<br />
<br />
=== Indy for lazarus ===<br />
Begun only a short while ago, this project has as an ambition to port the 119 components Indy de Delphi/Kylix on FPC/Lazarus.<br />
See [http://indy4lazarus.sourceforge.net/ Indy for Lazarus project] and a <br />
[http://indy4lazarus.sourceforge.net/images/img1_1.jpg screenshot].<br />
<br />
=== ISA Digital Osciloscope ===<br />
A graphical interface for a digital osciloscope. The osciloscope itself is an ISA card with a probe to measure waves. It works on both Windows and Linux. There is some information on how it is being built on [[Hardware Access]]. The full documentation (in English and Portuguese), screenshots and the source code of project can be downloaded [http://eletronicalivre.incubadora.fapesp.br/portal/english/oscilloscope/ here].<br />
<br />
=== Kamouflage ===<br />
<br />
[http://wiki.lazarus.freepascal.org/User:Beli0135 Kamouflage] - Camouflage files into images<br />
<br />
===LazFileSplitter===<br />
[http://br.geocities.com/antoniog123456/ LazFileSplitter] is a utility to split and merge big files.<br />
<br />
===LazPad===<br />
[http://br.geocities.com/antoniog123456/ LazPad] is a simple text editor made with Lazarus.<br />
<br />
=== LazReport ===<br />
LazReport is a group of components to add reporting capabilities to applications, it uses a visual designer to create banded reports and includes a report engine with interpreter to run user scripts and a report previewer, report designer can be invoked at runtime.<br />
<br />
LazReport is based on FreeReport 2.32 and thanks to Fast Reports Inc. it's available under modified LGPL, the same license as the Lazarus LCL.<br />
<br />
'''Note.''' Since Lazarus 0.9.23 revision 11950, LazReport source code is<br />
already included in Lazarus/components/lazreport directory.<br />
<br />
===LazVisual===<br />
[http://br.geocities.com/antoniog123456/ LazVisual] is an external tool to include resources on executable file and set application icon.<br />
<br />
===Lightweight Networking Library===<br />
<br />
[http://wiki.freepascal.org/lNet lNet] is a lightweight library designed specifically for Free Pascal and Lazarus which provides simple, single-threaded event-driven networking suite with protocols from TCP and UDP to SMTP and HTTP. lNet was designed to not depend on any external libraries and is extremely portable (currently supports almost all platforms where FPC itself runs).<br />
<br />
=== Master Maths ===<br />
[http://www.mastermaths.co.za Master Maths] specialises in computer based training and maths. The 3rd incarnation of our flagship product is developed using Lazarus, Firebird, [http://tiopf.sourceforge.net/ tiOPF v2] and the [http://opensoft.homeip.net/fpgui/ fpGUI Toolkit]. The product has two parts. A GUI Administration application and a CGI Learner Browser (used to view and mark the teaching modules). The Learner Browser uses Macromedia Flash extensively. The complete product runs under Linux and Windows.<br />
<br />
===Morse Machine===<br />
<br />
[http://downloads.tech-pro.net/morse-machine_tpmm01.html Morse Machine] is an implementation of "A Fully Automatic Morse Code Teaching Machine" first described in a May 1977 QST article of the same name by Ward Cunningham using Lazarus. The program teaches Morse code by sending a character and waiting for you to type what you heard on the keyboard. It grades your score and adds new characters when it sees that you are ready. The program is released under the GNU GPL version 2. Due to its use of the sound card, this implementation is for the Windows platform.<br />
<br />
=== MRIcron ===<br />
[http://www.mricro.com/mricron/ MRIcron] is an opensource project that allows users to visualize and volume render medical images (MRI, CT, PET). It includes tools for lesion mapping, non parametric statistical analysis ([http://www.mricro.com/npm/ npm]), and conversion from the medical DICOM format to the scientific NIfTI format ([http://www.mricro.com/mricron/dcm2nii.html dcm2nii]). It is available for Windows, Linux and Macintosh OSX.<br />
<br />
=== OggBase ===<br />
[http://sourceforge.net/projects/oggbase/ Oggbase] is a FreePascal/Lazarus program for managing your Ogg-Vorbis files in a Database.<br />
<br />
=== OutKafe ===<br />
[http://www.outkastsolutions.co.za/outkast/index.php?option=com_openwiki&Itemid=45&id=outkafe OutKafe] is a next-generation free and open source cybercafe management suite. It currently is running hundreds of cybercafe's at businesses, schools and other establishments around the world. <br />
<br />
=== 'Pnigin' project (a 'Pengo' Remake) ===<br />
The 'Pnigin' project is an advanced remake of the 80's arcade classic 'Pengo' .<br />
<br />
The project was made from scratch, using all original artwork and music. The project used Delphi 5 personal, Lazarus and FreePascal for development.<br />
<br />
As the project is currently in Bèta stage there is no working demo yet, but it is expected that a playable demo is released in summer 2008.<br />
<br />
See the Gong-Proces site [[http://www.naton.org]] for more information regarding the project.<br />
<br />
=== Project Theseus ===<br />
Tom Lisjac's [http://theseus.sourceforge.net Project Theseus] is using Lazarus and FPC for creating a rapid deployment and distribution system for Linux called [http://theseus.sourceforge.net/index.php?wiki=EpikBuilder Epik-Builder]. [http://theseus.sourceforge.net/index.php?wiki=EpikStopwatch EpikStopwatch] and [http://theseus.sourceforge.net/index.php?wiki=EpikBrowser EpikBrowser] are also Lazarus based projects that are currently under development. <br />
<br />
=== QFront ===<br />
<br />
[http://www.ullihome.de QFront] is a platform independent Frontend for the CPU Emulator QEmu<br />
<br />
=== RiXtoR ===<br />
[http://www.freewebs.com/bpsoftware/RiXtoR/rixtor.htm RiXtoR] is a Point of Sale program specially designed for restaurants, working on both Windows and GNU/Linux Systems<br />
<br />
=== SFS Technology ===<br />
Linux technology to solve the dependencies problems on a Debian/Ubuntu/Linux Tiger operating system. <br />
For more infos see:<br />
[http://code.google.com/p/sfs-technology/ SFS-Technology]<br />
<br />
=== Seksi Commander ===<br />
GPL Filemanager for Linux developed in Lazarus and FreePascal.<br />
Integrated bin, text, hex viewer (own component) and editor based on SynEdit.<br />
Home Page: http://radekc.regnet.cz/<br />
<br />
=== Shell for Gammu (Mobile Phone Tool) ===<br />
The [http://www.petersieg.de/gammush Gammush Site] offers hardcopies and downloads for this<br />
Application. Gammush is a shell for gammu.exe. It allows to backup/restore your phone data,<br />
get, edit , put logos, set date+time, send sms messages etc.<br />
<br />
===Siages===<br />
[http://siages.solis.coop.br/ Siages] is an ERP application made with Lazarus.<br />
<br />
=== SilentCoder's site ===<br />
DireqCafe A complete and full full featured internet cafe solution for LTSP and a number of other useful lazarus programs can be found on A.J. Venter's site: [http://www.silentcoder.co.za silentcoder.co.za].<br />
<br />
=== Skychart / Cartes du Ciel ===<br />
[http://www.ap-i.net/skychart Skychart] is a free software to draw a map of the night sky for the amateur astronomer from a bunch of stars and nebulae catalogs. It shows the position of the planets, simulates an eclipse and more. <br />
<br />
===SMTPUtils===<br />
[http://smtputils.sourceforge.net/ SMTPUtils] A tool to tunning your SMTP server against the Open relay, Spam, Virus, to measure the performance, verify it in the black lists (DNSBL) and more.<br />
<br />
=== SPINA ===<br />
[http://spina.medical-cybernetics.de/en/ SPINA] is software for determining constant structure-parameters of endocrine feedback control systems from hormone levels obtained in vivo. The first version of this cybernetic approach allows for evualuating the functional status of the thyroid gland.<br />
<br />
=== Synapse ===<br />
The [http://www.ararat.cz/synapse/ Synapse Project] by Lukas Gebauer provides a serial port and synchronous TCP/IP Library for Delphi,C++ Builder, Kylix and FreePascal. This is a high quality offering with too many features to list. The packages are robust, reliable, work well with Lazarus and FPC and the code is easy to follow and maintain... ''highly'' recommended!<br />
<br />
=== Synaser ===<br />
Library for serial communication (Linux, Windows) from author of Synapse.<br />
homepage: http://www.ararat.cz/synapse/ (same as Synapse)<br />
<br />
=== The Icebox ===<br />
A lot of useful Lazarus/FPC related information and components can be found on Tony Maro's [http://tony.maro.net/ Icebox site]. His TMPack, Checkbook Tracker and RDP Frontend application are all excellent examples of the quality components and applications that Lazarus is capable of producing.<br />
<br />
=== The Light Pascal Toolkit (LPTK) ===<br />
The goal of the [http://lptk.sourceforge.net/ Light Pascal Toolkit] Project is to create a free object pascal toolkit for linux and windows GUI development. It looks pretty interesting... check out the [http://lptk.sourceforge.net/screenshots.php screenshots]!<br />
<br />
=== TruckBites ===<br />
Business management software for independent trucking companies and owner/operators (for the USA.) Written under contract by [[user:Tonymaro | Tony Maro]] for both Linux and Windows for "Partners in Trucking, LLC".<br />
http://www.truckbites.com<br />
Still under development, anticipated release in the next few months.<br />
<br />
=== TurboCash ===<br />
Open Source Accounting software. [http://www.turbocash.net/wiki/index.php?title=Developer:Lazarus]<br />
<br />
=== Virtual Magnifying Glass ===<br />
[http://magnifier.sourceforge.net/ Virtual Magnifying Glass] is designed for visually-impaired and others who need to magnify a part of the screen. Unlike most similar programs it does not open a separate window for the magnification but instead puts a movable magnifying glass on screen. The project was converted from Visual Studio .NET to Lazarus and now offers a Linux version. Mac OS X and Pocket PC versions are planned.<br />
<br />
=== WikiHelp ===<br />
[http://www.ullihome.de WikiHelp] is an small Tool that generates HTML Pages from an Wiki. It downloads the content Automatically and convert the WikiText Pages into HTML. Most WikiText Features are useable including Images,tables and so on.<br />
<br />
=== WinFF ===<br />
[http://www.winff.org WinFF] is a GUI for the command line video converter, FFMPEG. It will convert most any video file that FFmpeg will convert. WinFF does multiple files in multiple formats at one time. You can for example convert mpeg's, flv's, and mov's, all into avi's all at once. WinFF is available for Windows 95, 98 , ME, NT, XP, VISTA, and Debian, Ubuntu, Redhat based GNU/Linux distributions.<br />
<br />
----<br />
<br />
<br />
'''If your Lazarus project should be listed here, please edit this page and add it!'''<br />
<br />
== Orginal contributors and changes ==<br />
This page has been converted from epikwiki.<br />
* Initial posting - 9/26/2003<br />
* Updated links and labels - [[User:VlxAdmin]] 9/28/2003<br />
* Added the Light Pascal ToolKit project - [[User:VlxAdmin]]10/27/2003<br />
* Added the Dedalu project - [[User:pepecito]] 8/31/2005<br />
* Added ISA Digital Osciloscope - --[[User:Sekelsenmat|Sekelsenmat]] 20:26, 20 Oct 2005 (CEST) 10/20/2005<br />
* Added laz-Indict - [[User:bee]] 13:51, 29 Mar 2006 (WIB) :)<br />
* Added CQRLOG - [[User:ok2cqr]] 08:52 UTC, 2007-10-23<br />
* Added BTActiveMQClient - [[User:Mjustin|Mjustin]] 14:51, 30 December 2007 (CET)<br />
* sorted list alphabeticaly - da_seeb 15:26, 29 January 2008 (CET)</div>Xnohttps://wiki.freepascal.org/index.php?title=Lazarus_Database_Overview&diff=35007Lazarus Database Overview2009-04-15T08:06:18Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
<br />
== Overview ==<br />
<br />
This tutorial is about getting Lazarus to work with a variety of existing databases.<br />
<br />
Lazarus supports several databases out-of-the-box, however the developer must install the adequate packages for each one. You can access the database throught code or by dropping components on a form. The data-aware components represent fields and are connected by setting the DataSource property to point to a TDataSource. The Datasource represents a table and is connected to the database components (examples: TPSQLDatabase, TSQLiteDataSet) by setting the DataSet property. The data-aware components are located on the "Data Controls" tab. The Datasource and the database controls are located on the "Data Access" tab.<br />
<br />
== Lazarus and MySQL ==<br />
<br />
=== Get MySQL working in Linux or Windows ===<br />
Follow the instructions in the MySQL User Manual. Make sure that the mysqld daemon runs reliably, and that all potential users (including root, mysql, yourself and anybody else that may need it) have as many privileges as they need, from as many hosts as may be needed (including 'localhost', the local host's name, any other hosts on your network) as far as is consistent with security. It is preferable that all users including root have passwords. Test the action of the database system using the examples given in the manual, and check that all users really do have reliable access.<br />
<br />
=== Get MySQL working for FPC in text mode ===<br />
There is a directory with an example program in $(fpc<b>src</b>dir)/packages/base/mysql/. You can find the fpc source directory in Lazarus: Environment menu -> Environment Options -> Paths tab -> FPC source directory. Possible paths for the mysql directory are /usr/share/fpcsrc/packages/base/mysql/ (rpm install) or C:\lazarus\fpcsrc\packages\base\mysql\ (windows). This directory also contains the units mysql.pp, mysql_com.pp and mysql_version.pp. Before running the test script, you need to create a database called testdb: do this by logging into the mysql monitor (as root with full privileges) and issuing the following SQL statement<br />
CREATE DATABASE testdb;<br />
then make sure that all relevant users have appropriate access privileges to it<br />
GRANT ALL ON testdb TO johnny-user IDENTIFIED BY 'johnnyspassword'; <br />
There is a script called mkdb which you should now try to run:<br />
sh ./mkdb<br />
This will probably fail, as the system will not allow an anonymous user to access the database. So change the script using an editor so that the line invoking mysql reads:<br />
mysql -u root -p ${1-testdb} << EOF >/dev/null<br />
and try running it again, entering your password when prompted. With luck you might have managed to create the test database: test it (while logged in to the mysql monitor) by issuing the mysql statement <br />
select * from FPdev;<br />
You should see a table listing the ID, username and email address of some of the FPC developers.<br />
<br />
Now try to run the test program testdb.pp (this may need to be compiled, and will almost certainly fail on the first attempt!!).<br />
<br />
I found that the program could not connect to mysql for several reasons:<br />
<br />
* My system (SuSE Linux v9.0) installs mysql v4.0.15, not the version3 for which the package was designed. <br />
<br />
* The program needs to have user names and passwords to get access to the database.<br />
<br />
* The compiler needs to know where to find the mysql libraries (IF YOU HAVEN'T INSTALLED THE MYSQL DEVELOPMENT LIBRARIES, DO SO NOW!)<br />
<br />
I created a copy of testdb.pp called trydb.pp, rather than editing the original - this means that the original files still get fixed in subsequent CVS updates.<br />
I also copied the files found in the subdirectory mysql/ver40/ into the main mysql/ subdirectory, renaming them mysql_v4.pp, mysql_com_v4.pp and mysql_version_v4.pp, being sure to rename the units within each file correspondingly. I changed the uses statement in trydb.pp to <br />
uses mysql_v4<br />
and the statement in mysql_v4.pp to<br />
<br />
uses mysql_com_v4<br />
<br />
I added a line to /etc/fpc.cfg to point to my libraries:<br />
-Fl/lib;/usr/lib<br />
The following step might not be necessary if the devel-libraries are installed as the links will be created for you, but it never hurts to check.<br />
I had to find the real name of the mysqlclint library in the /usr/lib directory and in my case I had to issue the shell command:<br />
ln -s libmysqlclient.so.12.0.0 lmysqlclient<br />
to make a symbolic link allowing FPC to find the library. For good measure I also created the link<br />
ln -s libmysqlclient.so.12.0.0 mysqlclient<br />
and placed similar links in various other directories: not strictly necessary, but just in case ...!<br />
Some users might need to add the following link:<br />
ln -s libmysqlclient.so.12.0.0 libmysqlclient.so<br />
<br />
I modified trydb.pp to include user details, initially by adding host, user and password as constants:<br />
<br />
const<br />
host : Pchar= 'localhost';<br />
user : Pchar= 'myusername';<br />
passwd: Pchar = 'mypassword';<br />
<br />
I also found that I couldn't connect to mysql using the mysql_connect() call, but had to use mysql_real_connect() which has many more parameters. To complicate things further, the number of parameters seems to have changed between version3 (where there are seven) and version4 (where there are eight). Before using mysql_real_connect I had to use mysql_init() which is not found in the original mysql.pp but is found in mysql_v4.pp.<br />
<br />
So the code for connection to the database is now:<br />
<br />
{ a few extra variables}<br />
var<br />
alloc : PMYSQL;<br />
<br />
{main program fragment}<br />
<br />
begin<br />
if paramcount=1 then<br />
begin<br />
Dummy:=Paramstr(1)+#0;<br />
DataBase:=@Dummy[1];<br />
end;<br />
<br />
Writeln ('Allocating Space...');<br />
alloc := mysql_init(PMYSQL(@qmysql));<br />
Write ('Connecting to MySQL...');<br />
sock := mysql_real_connect(alloc, host, user, passwd, database, 0, nil, 0);<br />
if sock=Nil then<br />
begin<br />
Writeln (stderr,'Couldn''t connect to MySQL.');<br />
Writeln (stderr, 'Error was: ', mysql_error(@qmysql));<br />
halt(1);<br />
end;<br />
Writeln ('Done.');<br />
Writeln ('Connection data:');<br />
{$ifdef Unix}<br />
writeln ('Mysql_port : ',mysql_port);<br />
writeln ('Mysql_unix_port : ',mysql_unix_port);<br />
{$endif}<br />
writeln ('Host info : ',mysql_get_host_info(sock));<br />
writeln ('Server info : ',mysql_stat(sock));<br />
writeln ('Client info : ',mysql_get_client_info);<br />
<br />
Writeln ('Selecting Database ',DataBase,'...');<br />
if mysql_select_db(sock,DataBase) < 0 then<br />
begin<br />
Writeln (stderr,'Couldn''t select database ',Database);<br />
Writeln (stderr,mysql_error(sock));<br />
halt (1);<br />
end;<br />
{... as original contents of testdb.pp}<br />
<br />
<br />
Now - ready to start compiling trydb.pp?<br />
fpc trydb<br />
success! Now run it:<br />
./trydb<br />
whoopee! I got the listing of the FPC developers!<br />
<br />
A few extra refinements: make the entry of user details and the mysql commands interactive, using variables rather than constants, and allow several SQL commands to be entered, until we issue the quit command: see the [[Lazarus Database Tutorial/TryDbpp|full program listing]], where user details are entered from the console, and the program goes into a loop where SQL commands are entered from the console (without the terminal semicolon) and the responses are printed out, until 'quit' is entered from the keyboard.<br />
<br />
See [[Lazarus Database Tutorial/SampleListing|Sample Console Listing]].<br />
<br />
===Connecting to MySQL from a Lazarus Application ===<br />
<br />
This tutorial shows how to connect Lazarus to the MySQL database, and execute simple queries, using only the basic Lazarus components; it uses no Data Aware components, but illustrates the principles of interfacing with the database.<br />
<br />
Create a new project in Lazarus:<br />
Project -> New Project -> Application<br />
A new automatically generated Form will appear.<br />
<br />
Enlarge the form to fill about half of the screen, then re-name the form and its caption to 'TryMySQL'.<br />
<br />
From the Standard Component tab place three Edit Boxes on the upper left side of the Form, and immediately above each box place a label. Change the names and captions to 'Host' (and HostLLabel,HostEdit), 'UserName' (and UserLabel, UserEdit) and 'Password' (with PasswdLabel and PasswdEdit). Alternatively you could use LabelledEdit components from the Additional tab.<br />
<br />
Select the Passwd Edit box and find the PasswordChar property: change this to * or some other character, so that when you type in a password the characters do not appear on your screen but are echoed by a series of *s. Make sure that the Text property of each edit box is blank.<br />
<br />
Now place another Edit box and label at the top of the right side of your form. Change the label to 'Enter SQL Command' and name it CommandEdit.<br />
<br />
Place three Buttons on the form: two on the left under the Edit boxes, and one on the right under the command box.<br />
<br />
Label the buttons on the left 'Connect to Database' (ConnectButton)and 'Exit' (ExitButton) and the one on the right 'Send Query' (QueryButton).<br />
<br />
Place a large Memo Box labelled and named 'Results' (ResultMemo) on the lower right, to fill most of the available space. Find its ScrollBars property and select ssAutoBoth so that scroll bars appear automatically if text fills the space. Make the WordWrap property True.<br />
<br />
Place a Status Bar (from the Common Controls tab) at the bottom of the Form, and make its SimpleText property 'TryMySQL'.<br />
<br />
A screenshot of the Form can be seen here: [http://lazarus-ccr.sourceforge.net/kbdata/trymysqldb.png Mysql Example Screenshot]<br />
<br />
Now we need to write some event handlers.<br />
<br />
The three Edit boxes on the left are for entry of hostname, username and password. When these have been entered satisfactorily, the Connect Button is clicked. The OnCLick event handler for this button is based on part of the text-mode FPC program above.<br />
<br />
The responses from the database cannot now be written using the Pascal write or writeln statements: rather, the replies have to be converted into strings and displayed in the Memo box. Whereas the Pascal write and writeln statements are capable of performing a lot of type conversion 'on the fly', the use of a memo box for text output necessitates the explicit conversion of data types to the correct form of string, so Pchar variables have to be converted to strings using StrPas, and integers have to be converted with IntToStr. <br />
<br />
Strings are displayed in the Memo box using<br />
<br />
procedure ShowString (S : string);<br />
(* display a string in a Memo box *)<br />
begin<br />
trymysqlForm1.ResultsMemo.Lines.Add (S)<br />
end;<br />
<br />
The ConnectButton event handler thus becomes:<br />
<br />
procedure TtrymysqlForm1.ConnectButtonClick(Sender: TObject);<br />
(* Connect to MySQL using user data from Text entry boxes on Main Form *)<br />
var strg: string;<br />
<br />
begin<br />
<br />
dummy1 := trymysqlForm1.HostEdit.text+#0;<br />
host := @dummy1[1];<br />
dummy2 := trymysqlForm1.UserEdit.text+#0;<br />
user := @dummy2[1] ;<br />
dummy3 := trymysqlForm1.PasswdEdit.text+#0;<br />
passwd := @dummy3[1] ;<br />
<br />
alloc := mysql_init(PMYSQL(@qmysql));<br />
sock := mysql_real_connect(alloc, host, user, passwd, database, 0, nil, 0);<br />
if sock=Nil then<br />
begin<br />
strg :='Couldn''t connect to MySQL.'; showstring (strg);<br />
Strg :='Error was: '+ StrPas(mysql_error(@qmysql)); showstring (strg);<br />
end<br />
else<br />
begin<br />
trymysqlForm1.statusBar1.simpletext := 'Connected to MySQL';<br />
strg := 'Now choosing database : ' + database; showstring (strg);<br />
{$ifdef Unix}<br />
strg :='Mysql_port : '+ IntToStr(mysql_port); showstring (strg);<br />
strg :='Mysql_unix_port : ' + StrPas(mysql_unix_port); showstring (strg);<br />
{$endif}<br />
Strg :='Host info : ' + StrPas(mysql_get_host_info(sock));<br />
showstring (strg);<br />
Strg :='Server info : ' + StrPas(mysql_stat(sock)); showstring (strg);<br />
Strg :='Client info : ' + Strpas(mysql_get_client_info); showstring (strg);<br />
<br />
trymysqlForm1.statusbar1.simpletext := 'Selecting Database ' + DataBase +'...';<br />
if mysql_select_db(sock,DataBase) < 0 then<br />
begin<br />
strg :='Couldn''t select database '+ Database; ShowString (strg);<br />
Strg := mysql_error(sock); ShowString (strg);<br />
end<br />
end;<br />
end;<br />
<br />
<br />
The Text Box on the right allows entry of a SQL statement, without a terminal semicolon; when you are satisfied with its content or syntax, the SendQuery button is pressed, and the query is processed, with results being written in the ResultsMemo box.<br />
<br />
The SendQuery event handler is again based on the FPC text-mode version, except that once again explicit type-conversion has to be done before strings are displayed in the box.<br />
<br />
A difference from the text-mode FPC program is that if an error condition is detected, the program does not halt and MySQL is not closed; instead, control is returned to the main form and an opportunity is given to correct the entry before the command is re-submitted. The application finally exits (with closure of MySQL) when the Exit Button is clicked.<br />
<br />
The code for SendQuery follows:<br />
<br />
procedure TtrymysqlForm1.QueryButtonClick(Sender: TObject);<br />
var<br />
dumquery, strg: string;<br />
begin<br />
dumquery := TrymysqlForm1.CommandEdit.text;<br />
dumquery := dumquery+#0;<br />
query := @dumquery[1];<br />
trymysqlForm1.statusbar1.simpletext := 'Executing query : '+ dumQuery +'...';<br />
strg := 'Executing query : ' + dumQuery; showstring (strg);<br />
if (mysql_query(sock,Query) < 0) then<br />
begin<br />
Strg :='Query failed '+ StrPas(mysql_error(sock)); showstring (strg);<br />
end<br />
else<br />
begin<br />
recbuf := mysql_store_result(sock);<br />
if RecBuf=Nil then<br />
begin<br />
Strg :='Query returned nil result.'; showstring (strg);<br />
end<br />
else<br />
begin<br />
strg :='Number of records returned : ' + IntToStr(mysql_num_rows (recbuf));<br />
Showstring (strg);<br />
Strg :='Number of fields per record : ' + IntToStr(mysql_num_fields(recbuf));<br />
showstring (strg);<br />
rowbuf := mysql_fetch_row(recbuf);<br />
while (rowbuf <>nil) do<br />
begin<br />
Strg :='(Id: '+ rowbuf[0]+', Name: ' + rowbuf[1]+ ', Email : ' +<br />
rowbuf[2] +')';<br />
showstring (strg);<br />
rowbuf := mysql_fetch_row(recbuf);<br />
end;<br />
end;<br />
end;<br />
end;<br />
<br />
<br />
Save your Project, and press Run -> Run<br />
<br />
==== Download MYSQL Source Code ====<br />
A full listing of the program is available here [http://lazarus-ccr.sourceforge.net/kbdata/mysqldemo.tar.gz Sample Source Code]<br />
<br />
== Simple MySQL Demo Using the TMySQL50Connection Component ==<br />
<br />
Here is code that functions as a quick demo to get up and running simply (tested on Win XP with Lighty2Go). libmysql.dll was put in the project and lazarus.exe directories (available from a directory in Lighty2Go). There is no requirement to place any components on the form other than the three edit boxes, a memo box and a few buttons. You need to add mysql50conn and sqldb to the uses statement. The Lazarus component directory must be rw for the programmer. The mysql dbms here has a user 'root' with no password, and a database test1 with table tPerson which has three fields: personid (int), surname (varchar(40)) and dob (datetime). phpMyAdmin (in Lighty2Go) was used to create the db, table and fields and insert some sample data. Note that dates in phpMyAdmin should be entered YYYY-MM-DD, though the program created below will accept dates in the usual formats. The button btnTest must be clicked first as it creates the connection with the dbms. Note the line that applies updates - without this the changed or new data will not be written back to the db though they will be in memory and can be viewed using btnFirst and btnNext.<br />
<pre><br />
unit unt_db;<br />
//Example based on:<br />
//http://www.lazarus.freepascal.org/index.php?name=PNphpBB2&file=viewtopic&t=5761<br />
//from tpglemur on that forum<br />
{$mode objfpc}{$H+}<br />
interface<br />
uses<br />
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,<br />
mysql50conn, sqldb, StdCtrls;<br />
type<br />
{ TForm1 }<br />
TForm1 = class(TForm)<br />
btnTest: TButton;<br />
btnNext: TButton;<br />
btnFirst: TButton;<br />
btnNew: TButton;<br />
edtPersonID: TEdit;<br />
edtSurname: TEdit;<br />
edtDOB: TEdit;<br />
Memo1: TMemo;<br />
procedure btnFirstClick(Sender: TObject);<br />
procedure btnNewClick(Sender: TObject);<br />
procedure btnNextClick(Sender: TObject);<br />
procedure btnTestClick(Sender: TObject);<br />
private<br />
{ private declarations }<br />
conn : TMySQL50Connection;<br />
query : TSQLQuery;<br />
transaction : TSQLTransaction;<br />
procedure Display;<br />
public<br />
{ public declarations }<br />
end;<br />
var<br />
Form1: TForm1;<br />
implementation<br />
{ TForm1 }<br />
procedure TForm1.btnTestClick(Sender: TObject);<br />
var<br />
S: String;<br />
begin<br />
conn := TMySQL50Connection.Create(nil);<br />
query := TSQLQuery.Create(nil);<br />
transaction := TSQLTransaction.Create(nil);<br />
try<br />
try<br />
conn.HostName := '127.0.0.1';<br />
conn.UserName := 'root';<br />
conn.Password := '';<br />
conn.DatabaseName := 'test1';<br />
conn.Connected := True;<br />
conn.Transaction := transaction;<br />
query.DataBase := conn;<br />
//query.ParseSQL := true; //line not needed - this is the default anyway<br />
//query.ReadOnly := false; //line not needed - this is the default anyway<br />
query.SQL.Text := 'select * from tperson';<br />
query.Open;<br />
<br />
query.Last;<br />
S := IntToStr(query.RecordCount) + #13#10;<br />
query.First;<br />
<br />
while not query.EOF do<br />
begin<br />
S := S + query.FieldByName('surname').AsString + #13#10;<br />
query.Next;<br />
end;<br />
finally<br />
//query.Free;<br />
//conn.Free;<br />
end;<br />
except<br />
on E: Exception do<br />
ShowMessage(E.message);<br />
end;<br />
Memo1.Text:= S;<br />
end;<br />
<br />
procedure TForm1.Display;<br />
begin<br />
edtPersonID.Text := query.FieldByName('personid').AsString;<br />
edtSurname.Text := query.FieldByName('surname').AsString;<br />
edtDOB.Text := query.FieldByName('dob').AsString;<br />
end;<br />
<br />
procedure TForm1.btnFirstClick(Sender: TObject);<br />
begin<br />
query.First;<br />
Display;<br />
end;<br />
<br />
procedure TForm1.btnNewClick(Sender: TObject);<br />
begin<br />
query.Append;<br />
query.FieldValues['personid'] := edtPersonID.Text;<br />
query.FieldValues['surname'] := edtSurname.Text;<br />
query.FieldValues['dob'] := edtDOB.Text;<br />
query.Post; <br />
query.ApplyUpdates; //to apply update<br />
//transaction.Commit; //line not needed<br />
end;<br />
<br />
procedure TForm1.btnNextClick(Sender: TObject);<br />
begin<br />
query.Next;<br />
Display;<br />
end;<br />
<br />
initialization<br />
{$I unt_db.lrs}<br />
end.<br />
</pre><br />
<br />
Here is a version using the TMySQL50Connection, TSQLQuery, TSQLTransaction, TDatasource and TDBGrid components that have been placed on the form:<br />
<pre><br />
unit unt_mysql2;<br />
{$mode objfpc}{$H+}<br />
interface<br />
uses<br />
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,<br />
mysql50conn, sqldb, StdCtrls, db, DBGrids, DbCtrls;<br />
type<br />
{ TForm1 }<br />
TForm1 = class(TForm)<br />
btnConnect: TButton;<br />
btnSave: TButton;<br />
btnNext: TButton;<br />
btnPrior: TButton;<br />
Datasource1: TDatasource;<br />
DBGrid1: TDBGrid;<br />
Memo1: TMemo;<br />
MySQL50Connection1: TMySQL50Connection;<br />
SQLQuery1: TSQLQuery;<br />
SQLTransaction1: TSQLTransaction;<br />
procedure btnConnectClick(Sender: TObject);<br />
procedure btnNextClick(Sender: TObject);<br />
procedure btnPriorClick(Sender: TObject);<br />
procedure btnSaveClick(Sender: TObject);<br />
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);<br />
procedure FormCreate(Sender: TObject);<br />
private<br />
{ private declarations }<br />
public<br />
{ public declarations }<br />
end; <br />
var<br />
Form1: TForm1; <br />
implementation<br />
{ TForm1 }<br />
<br />
procedure TForm1.FormCreate(Sender: TObject);<br />
begin<br />
//Set properties of components:<br />
//(could be done in the Object Inspector)<br />
MySQL50Connection1.HostName := '127.0.0.1';<br />
MySQL50Connection1.UserName := 'root';<br />
MySQL50Connection1.Password := '';<br />
MySQL50Connection1.DatabaseName := 'test1';<br />
MySQL50Connection1.Transaction := SQLTransaction1;<br />
//SQLQuery1.ParseSQL := true; //line not needed - this is the default<br />
//SQLQuery1.ReadOnly := false; //line not needed - this is the default<br />
SQLQuery1.SQL.Text := 'select * from tperson';<br />
SQLQuery1.Transaction := SQLTransaction1;<br />
SQLQuery1.UpdateMode := upWhereChanged;<br />
Datasource1.Dataset := SQLQuery1;<br />
DBGrid1.DataSource := Datasource1;;<br />
end;<br />
<br />
procedure TForm1.btnConnectClick(Sender: TObject);<br />
var<br />
S : string;<br />
begin<br />
try<br />
MySQL50Connection1.Connected := true;<br />
SQLQuery1.Open;<br />
<br />
//Tests to see if all is OK:<br />
SQLQuery1.Last;<br />
S := IntToStr(SQLQuery1.RecordCount) + #13#10;<br />
SQLQuery1.First;<br />
while not SQLQuery1.EOF do<br />
begin<br />
S := S + SQLQuery1.FieldByName('surname').AsString + #13#10;<br />
SQLQuery1.Next;<br />
end;<br />
except<br />
on E: Exception do<br />
ShowMessage(E.message);<br />
end;<br />
Memo1.Text:= S;<br />
end;<br />
<br />
procedure TForm1.btnNextClick(Sender: TObject);<br />
begin<br />
SQLQuery1.Next;<br />
end;<br />
<br />
procedure TForm1.btnPriorClick(Sender: TObject);<br />
begin<br />
SQLQuery1.Prior;<br />
end;<br />
<br />
procedure TForm1.btnSaveClick(Sender: TObject);<br />
begin<br />
SQLQuery1.ApplyUpdates;<br />
end;<br />
<br />
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);<br />
begin<br />
//Required or get EDatabase error on close:<br />
MySQL50Connection1.Connected := false;<br />
end;<br />
<br />
initialization<br />
{$I unt_mysql2.lrs}<br />
end.<br />
</pre><br />
<br />
== Lazarus and PostgreSQL ==<br />
<br />
This is a very short tutorial to get Lazarus 0.9.12 or later to connect to a PostgreSQL database, local or remote, using TPQConnection.<br />
<br />
After correct install, follow these steps:<br />
<br />
* Place a PQConnection from the SQLdb tab<br />
* Place a SQLQuery from the SQLdb tab<br />
* Place a SQLTransaction from the SQLdb tab<br />
* Place a DataSource from the DataAccess tab<br />
* Place a DBGrid from the DataControls tab<br />
<br />
* In the PQConnection fill in:<br />
** transaction property with the respective SQLTransaction object<br />
** Database name<br />
** HostName<br />
** UserName + password<br />
<br />
* Check that the SQLTransaction was automatically changed to point to the PQConnection<br />
<br />
* In the SQLQuery fill in:<br />
** transaction property with the respective object<br />
** database property with respective object<br />
** SQL (something like 'select * from anytable')<br />
<br />
* In the DataSource object fill in the DataSet property with the SQLQuery object<br />
<br />
* In the DBGrid fill in the datasource as the DataSource Object<br />
<br />
Turn everything to connected and active and the DBGrid should be filled in design time.<br />
TDBText and TDBEdit seem to work but (for me) they only _show_ _data_.<br />
<br />
To change contents in the database, I called the DB Engine direct with the following code:<br />
try<br />
sql:= 'UPDATE table SET setting=1';<br />
PQDataBase.Connected:=True;<br />
PQDataBase.ExecuteDirect('Begin Work;');<br />
PQDataBase.ExecuteDirect(sql);<br />
PQDataBase.ExecuteDirect('Commit Work;');<br />
PQDataBase.Connected:=False;<br />
except<br />
on E : EDatabaseError do<br />
MemoLog.Append('DB ERROR:'+sql+chr(13)+chr(10)+E.ClassName+chr(13)+chr(10)+E.Message);<br />
on E : Exception do<br />
MemoLog.Append('ERROR:'+sql+chr(13)+chr(10)+E.ClassName+chr(13)+chr(10)+E.Message);<br />
end;<br />
<br />
<br />
* Notes:<br />
** Tested on windows, Lazarus 0.9.12 + PgSQL 8.3.1<br />
** Some tests in linux, Lazarus 0.9.12 and PgSQL 8.0.x<br />
<br />
<br />
* Instalation and errors:<br />
** In the tested version of Lazarus .12, fields of type "text" and "numeric" have bugs<br />
** I used with no problems char fixed size, int and float8<br />
** Sometimes restarting Lazarus solves stupid errors...<br />
** After some errors, the transactions remain active and should be deactivated mannually<br />
** Changes made in Lazarus are of course not visible until transaction commited<br />
** The integrated debugger seems buggy (at least in windows) - sometimes running outside of the IDE may help to find errors<br />
** In linux certain error messages are printed in the console -- run your program in the command line, sometimes there is some extra useful debugging info<br />
** Error: "Can not load Postgresql client. Is it installed (libpq.so) ?"<br />
*** Add the path to seach libpq* from the PostgreSQL installation.<br />
*** In linux add the path to the libpq.so file to the libraries section in your /etc/fpc.cfg file. For example : -Fl/usr/local/pgsql/lib<br />
*** In windows, add these libs anywhere in the Path environment variable or project dir<br />
*** I windows, I copied all the DLLs in my C:\Program Files\PostgreSQL\8.1\bin dir to another dir in the PATH <br />
*** Or add this postgres\bin dir to the path<br />
<br />
A good example about connecting Lazarus with PostgreSQL under Windows is [http://http://paginas.fe.up.pt/~asousa/wiki/doku.php?id=proj:lazarus_projects easyDB].<br />
<br />
== Lazarus and SQLite ==<br />
<br />
by Luiz Américo<br />
<br />
Visit the [http://www.geocities.com/camara_luiz/ sqlite4fpc homepage] to find the API reference and more tutorials.<br />
<br />
===Introduction===<br />
<br />
TSqliteDataset and TSqlite3Dataset are TDataset descendants that access, respectively, 2.8.x and 3.x.x sqlite databases. Below is a list of the principal advantages and disadvantages:<br />
<br />
Advantages:<br />
<br />
* Flexible: programmers can choose to use or not to use the SQL language, allowing them to work with simple table layouts or any complex layout that SQL/sqlite allows<br />
* Automatic database update: no need to update the database manually with SQL statements, a single method take cares of it<br />
* Fast: it caches the data in memory, making browsing in the dataset fast<br />
* No server installation/configuration: just ship together with sqlite dynamic library<br />
<br />
Disadvantages<br />
<br />
* Requires external file (sqlite library)<br />
<br />
===Requirements===<br />
<br />
* For sqlite2 databases:<br />
** fpc 2.0.0<br />
** Lazarus 0.9.10<br />
** sqlite runtime library 2.8.15 or above (get from www.sqlite.org)<br />
<br />
* For sqlite3 databases:<br />
** fpc 2.0.2<br />
** Lazarus 0.9.11 (svn revision 8443 or above)<br />
** sqlite runtime library 3.2.1 or above (get from www.sqlite.org)<br />
<br />
'''Before initiating a lazarus projects, ensure that:'''<br />
* the sqlite library is on the system PATH or in the executable directory<br />
* under Linux, put cmem as the first unit in uses clause of the main program<br />
** In Debian, Ubuntu and other Debian-like distros, in order to build Lazarus IDE you must install the packages libsqlite-dev/libsqlite3-dev, not only sqlite/sqlite3 (Also applies to OpenSuSe)<br />
<br />
===How To Use (Basic Usage)===<br />
<br />
Install the package found at /components/sqlite directory (see instructions [[Install_Packages|here]])<br />
<br />
At design time set the following properties:<br />
<br />
* FileName: path of the sqlite file [required] <br />
* TableName: name of the table used in the sql statement [required] <br />
* Sql: a SQL select statement [optional] <br />
<br />
'''Creating a Table (Dataset)'''<br />
<br />
Double click in the component icon or use the 'Create Table' item of the popup menu that appears when clicking the right mouse button.<br />
A simple self-explaining table editor will be show.<br />
<br />
Here is all field types supported by TSqliteDataset and TSqlite3Dataset: <br />
<br />
Integer<br />
AutoInc<br />
String<br />
Memo<br />
Bool <br />
Float<br />
Word<br />
DateTime<br />
Date<br />
Time<br />
LargeInt<br />
Currency<br />
<br />
'''Retrieving the data'''<br />
<br />
After creating the table or with a previously created Table, open the dataset with Open method.<br />
If the SQL property was not set then all records from all fields will be retrieved, the same if you set the SQL to:<br />
<br />
SQL:='Select * from TABLENAME'; <br />
<br />
'''Applying changes to the underlying datafile'''<br />
<br />
To use the ApplyUpdates function, the dataset must contain at least one field that fills the requirements for a Primary Key (values must be UNIQUE and not NULL)<br />
<br />
It's possible to do that in two ways:<br />
<br />
* Set PrimaryKey property to the name of a Primary Key field<br />
* Add an AutoInc field (This is easier since the TSqliteDataSet automatically handles it as a Primary Key)<br />
<br />
If one of the two conditions is set then just call<br />
<br />
ApplyUpdates;<br />
<br />
PS1: If both conditions are set, the field corresponding to PrimaryKey is used to apply the updates.<br />
<br />
PS2: Setting PrimaryKey to a field that is not a Primary Key will lead to loss of data if ApplyUpdates is called, so ensure that the chosen field contains not Null and Unique values before using it.<br />
<br />
===Remarks===<br />
<br />
* Although it has been tested with 10000 records and worked fine, TSqliteDataset keeps all the data in memory, so remember to retrieve only the necessary data (principally with Memo Fields).<br />
* The same datafile (Filename property) can host several tables/datasets<br />
* Several datasets (different combinations of fields) can be created using the same table simultaneously <br />
* It's possible to filter the data using WHERE statements in the sql, closing and reopening the dataset (or calling RefetchData method). But in this case, the order and number of fields must remain the same <br />
* It's also possible to use complex SQL statements using aliases, joins, views in multiple tables (remember that they must reside in the same datafile), but in this case ApplyUpdates won't work. If someone wants to use complex queries and to apply the updates to the datafile, mail me and I will give some hints how to do that<br />
* Setting filename to a sqlite2.x datafile not created by TSqliteDataset and opening it is allowed but some fields won't have the correct field type detected. These will be treated as string fields.<br />
<br />
Generic examples can be found at fpc/fcl/db/sqlite CVS directory<br />
<br />
Luiz Américo<br />
pascalive(at)bol(dot)com(dot)br<br />
<br />
== Lazarus and MSSQL ==<br />
<br />
It is working with Zeoslib (latest cvs), see the links on bottom of page.<br />
<br />
== Lazarus and Interbase / Firebird ==<br />
<br />
See [[Install Packages|Install Packages]]. On this page is a first small example en explanation about how to connect to an IB or FB server.<br />
<br />
Also work with the latest Zeoslib (from cvs).<br />
<br />
===FBLib Firebird Library===<br />
<br />
[http://fblib.altervista.org/|FBLib] is an open Source Library No Data Aware for direct access to Firebird Relational Database from Borland Delphi / Kylix, Freepascal and Lazarus.<br />
<br />
Current Features include:<br />
<br />
* Direct Access to Firebird 1.0.x 1.5.x Classic or SuperServer<br />
* Multiplatform [Win32,Gnu/Linux,FreeBSD)<br />
* Automatic select client library 'fbclient' or 'gds32'<br />
* Query with params<br />
* Support SQL Dialect 1/3<br />
* LGPL License agreement<br />
* Extract Metadata<br />
* Simple Script Parser<br />
* Only 100-150 KB added into final EXE<br />
* Support BLOB Fields<br />
* Export Data to HTML SQL Script<br />
* Service manager (backup,restore,gfix...)<br />
* Events Alerter<br />
<br />
You can download documentation on [http://fblib.altervista.org/ FBLib's website].<br />
<br />
== Lazarus and dBase ==<br />
<br />
[[user:Tonymaro|Tony Maro]]<br />
<br />
You might also want to visit the beginnings of the [[Lazarus Tdbf Tutorial|TDbf Tutorial page]]<br />
<br />
FPC includes a simple database component that is similar in function to the Delphi TTable component called "TDbf" ([http://tdbf.sourceforge.net/ TDbf Website]) that supports a very basic subset of features for dBase files. It is not installed by default, so you will first need to install the Lazarus package from the "lazarus/components/tdbf" directory and rebuild your Lazarus IDE. It will then appear next to the TDatasource in your component palette (Data Access tab).<br />
<br />
The TDbf component has an advantage over other database components in that it doesn't require any sort of runtime database engine. However it's not the best option for large database applications.<br />
<br />
It's very easy to use. Simply drop a TDbf on your form, set the runtime path to the directory that your database files will be in, set the table name, and link it to your TDatasource component.<br />
<br />
Real functionality requires a bit more effort, however. If a table doesn't already exist, you'll need to create it programmatically, unless there's a compatible table designer I'm not familiar with.<br />
Note: Current version of OpenOffice (2.0x) contains OpenOffice Base, which can create dbf files in a somewhat user-friendly way.<br />
<br />
Attempting to open a nonexistent table will generate an error. Tables can be created programmatically through the component after the runtime path and table name are set.<br />
<br />
For instance, to create a table called "dvds" to store your dvd collection you would drop it on your form, set the runtime path, and set the table name to "dvds". The resulting file will be called "dvds.dbf".<br />
<br />
In your code, insert the following:<br />
<br />
Dbf1.FilePathFull := '/path/to/my/database';<br />
Dbf1.TableName := 'dvds';<br />
With Dbf1.FieldDefs do begin<br />
Add('Name', ftString, 80, True);<br />
Add('Description', ftMemo, 0, False);<br />
Add('Rating', ftString, 5, False);<br />
end;<br />
Dbf1.CreateTable;<br />
<br />
When this code is run, your DVD collection table will be created. After that, all data aware components linked through the TDatasource to this component will allow easy access to the data. <br />
<br />
Adding an index is a little different from your typical TTable. It must be done after the database is open. You use the same method also to rebuild the indices. For instance:<br />
<br />
Dbf1.Exclusive := True;<br />
Dbf1.Open;<br />
Dbf1.AddIndex('dvdsname','Name',[ixPrimary, ixUnique, ixCaseInsensitive]);<br />
Dbf1.AddIndex('rating.ndx', 'Rating', [ixCaseInsensitive]);<br />
Dbf1.Close;<br />
<br />
The first (primary) index will be a file called "dvdsname.mdx" and the second will be a file named "rating.ndx" so in a multiple table database you must be careful not to use the same file name again.<br />
<br />
I will try to add a more detailed example at a later date, but hopefully this will get those old Delphi programmers up and running with databases in Lazarus!<br />
<br />
<br />
<br />
===Searching and Displaying a data set===<br />
<br />
[[user:svbfieldview.net|Simon Batty]]<br />
<br />
In this example I wanted to search a database of books for all the titles an author has listed<br />
and then display the list in a memo box<br />
<br />
<br />
Dbf1.FilePathFull := '/home/somelocatio/database_location/'; // path to the database directory<br />
Dbf1.TableName := 'books.dbase'; // database file (including extension)<br />
DbF1.Open;<br />
memo1.Clear; // clear the memo box<br />
<br />
Dbf1.FilterOptions := [foCaseInsensitive];<br />
Df1.Filter := 'AU=' + QuotedStr('anauthor'); // AU is the field name containing the authors<br />
<br />
Dbf1.Filtered := true; // This selects the filtered set<br />
Dbf1.First; // moves the the first filtered data<br />
while not dbf1.EOF do // prints the titles that match the author to the memo box<br />
begin<br />
memo1.Append(Dbf1.FieldByName('TI').AsString); // TI is the field name for titles<br />
dbf1.next; // use .next here NOT .findnext!<br />
end;<br />
Dbf1.Close; <br />
<br />
Note that you can use Ddf1.findfirst to get the first record in the filtered set, then use <br />
Dbf1.next to move though the data. I found that using Dbf1.Findnext just causes the program to hang. <br />
<br />
This database was generated using TurboBD that came with the Kylix 1. I cannot get TurboBD tables to work with Lazarus, however you can download a command line tool from TurboDB's website that allows you to convert TurboDB table to other formats.<br />
<br />
== Using TSdfDataset and TFixedDataset ==<br />
<br />
TSdfDataset and TFixedDataset are two simple datasets which offer a very simple textual storage format. These datasets are very convenient for small databases, because they are fully implemented as an object pascal unit, and thus require no external libraries, and because their textual format allows them to be easely edited with a text editor.<br />
<br />
To start with this formats, a initial database file should be created. The format is very simple, so use a text editor to do this.<br />
<br />
Bellow is a sample database for TSdfDataset. Note that the first line has the names of the fields and that we are using commas as separators:<br />
<br />
<pre><br />
ID,NAMEEN,NAMEPT,HEIGHT,WIDTH,PINS,DRAWINGCODE<br />
1,resistor,resistor,1,1,1,LINE<br />
2,capacitor,capacitor,1,1,1,LINE<br />
3,transistor npn,transistor npn<br />
</pre><br />
<br />
And here is an example database for using with TFixedDataset. Each record occupies a fixed amount of space, and if the field is smaller then it, spaces should be used to fill the remaining size.<br />
<br />
<pre><br />
Name = 15 chars; Surname = 15 chars; Tell = 10 chars; e_mail = 20 chars;<br />
Piet Pompies piet@pompies.net <br />
</pre><br />
<br />
=== Using the datasets directly ===<br />
<br />
Sometimes it is useful to create the dataset and work with it completely in code, and the following code will do exactly this. Note some peculiarities of TSdfDataset/TFixedDataset:<br />
<br />
* The lines in the database can have a maximum size of about 300. A fix is being researched.<br />
* It is necessary to add the field definitions. Some datasets are able to fill this information alone from the database file<br />
* One should set FirstLineAsSchema to true, to indicate that the first line includes the field names and positions<br />
* The Delimiter property holds the separator for the fields. It will not be possible to use this char in strings in the database. Similarly it will not be possible to have lineendings in the database because they mark the change between records. It's possible to overcome this by substituting the needed comma or line ending with another not often used char, like # for example. So that when showing the data on screen all # chars could be converted to line endings and the inverse when storing data back to the database. The ReplaceString routine is useful here.<br />
<br />
<delphi><br />
constructor TComponentsDatabase.Create;<br />
begin<br />
inherited Create;<br />
<br />
FDataset := TSdfDataset.Create(nil);<br />
FDataset.FileName := vConfigurations.ComponentsDBFile;<br />
<br />
// Not necessary with TSdfDataset<br />
// FDataset.TableName := STR_DB_COMPONENTS_TABLE;<br />
// FDataset.PrimaryKey := STR_DB_COMPONENTS_ID;<br />
<br />
// Adds field definitions<br />
FDataset.FieldDefs.Add('ID', ftString);<br />
FDataset.FieldDefs.Add('NAMEEN', ftString);<br />
FDataset.FieldDefs.Add('NAMEPT', ftString);<br />
FDataset.FieldDefs.Add('HEIGHT', ftString);<br />
FDataset.FieldDefs.Add('WIDTH', ftString);<br />
FDataset.FieldDefs.Add('PINS', ftString);<br />
FDataset.FieldDefs.Add('DRAWINGCODE', ftString);<br />
<br />
// Necessary for TSdfDataset<br />
FDataset.Delimiter := ',';<br />
FDataset.FirstLineAsSchema := True;<br />
<br />
FDataset.Active := True;<br />
<br />
// Sets the initial record<br />
CurrentRecNo := 1;<br />
FDataset.First;<br />
end;<br />
</delphi><br />
<br />
When using TSdfDataset directly be aware that RecNo, although it is implemented, does not work as a way to move through the dataset whether reading or writing records. The standard navigation routines like First, Next, Prior and Last work as expected, so you need to use them rather than RecNo.<br />
If you are used to using absolute record numbers to navigate around a database you can implement your own version of RecNo. Declare a global longint variable called CurrentRecNo which will hold the current RecNo value. Remember that this variable will have the same convention as RecNo, so the first record has number 1 (it is not zero-based). After activating the database initialize the database to the first record with TSdfDataset.First and set CurrentRecNo := 1<br />
<br />
<delphi><br />
{@@<br />
Moves to the desired record using TDataset.Next and TDataset.Prior<br />
This avoids using TDataset.RecNo which doesn't navigate reliably in any dataset.<br />
<br />
@param AID Indicates the record number. The first record has number 1<br />
}<br />
procedure TComponentsDatabase.GoToRec(AID: Integer);<br />
begin<br />
// We are before the desired record, move forward<br />
if CurrentRecNo < AID then<br />
begin<br />
while (not FDataset.EOF) and (CurrentRecNo < AID) do<br />
begin<br />
FDataset.Next;<br />
FDataset.CursorPosChanged;<br />
Inc(CurrentRecNo);<br />
end;<br />
end<br />
// We are after the desired record, move back<br />
else if CurrentRecNo > AID then<br />
begin<br />
while (CurrentRecNo >= 1) and (CurrentRecNo > AID) do<br />
begin<br />
FDataset.Prior;<br />
FDataset.CursorPosChanged;<br />
Dec(CurrentRecNo);<br />
end;<br />
end;<br />
end;<br />
</delphi><br />
<br />
=== Using with data-aware controls ===<br />
<br />
== Related Links ==<br />
*[[Databases|Creating Databases Applications with Lazarus using the DB-unit]]<br><br />
*[[MySQLDatabases|Creating a database application using MySQL]]<br><br />
*[[Zeos_tutorial|Creating a database application using the Zeos components]]<br />
*[http://pdo.sourceforge.net Pascal Data Objects] is a database API that worked for both FPC and Delphi and utilises native MySQL libraries for version 4.1 and 5.0 and Firebird SQL 1.5, and 2.0. It's inspired by PHP's PDO class.<br />
<br />
==Contributors and Changes== <br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusDatabase version].<br />
<br />
----<br />
[[Developing with Graphics]]</div>Xnohttps://wiki.freepascal.org/index.php?title=Lazarus_Database_Tutorial/de&diff=35006Lazarus Database Tutorial/de2009-04-15T08:05:39Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
<br />
== Überblick ==<br />
<br />
Das Thema dieses Tutorial ist, wie Lazarus mit einer Auswahl von existierenden Datenbanken zusammenarbeiten kann.<br />
<br />
Bitte erweitern sie diesen Bereich.<br />
<br />
== Lazarus und MySQL ==<br />
<br />
=== MySQL unter Linux oder Windows zum Laufen bringen ===<br />
Folgen sie den Anweisungen im MySQL Benutzerhandbuch. Stellen sie sicher, dass der mysqld Daemon zuverlässig läuft (zumindest bei Linux), und dass alle potentiellen Benutzer (inclusive root, mysql, sie selbst und jeder sonst, der es benötigen könnte) so viele Rechte (privileges) wie nötig hat, von so vielen Hosts wie nötig (inclusive 'localhost', dem lokalen Host Namen, jedem anderen Host in ihrem Netzwerk) so weit es mit der Sicherheit vereinbar ist. Auch haben viele benötigte Dateien im fpcsrc- und im lazarus-Ordner stark eingeschränkte Schreibrechte, die root erst ändern muss, wenn andere User damit arbeiten sollen. Mangelnde Schreibrechte in Units zeigt Lazarus durch die Fehlermeldung "Error while linking" an. Es ist wünschenswert, dass alle Benutzer inclusive root Passwörter haben. Testen sie die Wirkung des Datenbanksystems bei der Benutzung der Beispiele aus dem Handbuch, und prüfen sie, dass alle Benutzer wirklich einen zuverlässigen Zugriff haben.<br />
<br />
=== MySQL für FPC im Textmodus zum Laufen bringen ===<br />
Es gibt ein Verzeichnis mit einem Beispielprogramm in $(fpc<b>src</b>dir)/packages/base/mysql/. Sie können das FPC Quellverzeichnis in Lazarus wie folgt finden: Environment menu -> Environment Options -> Paths tab -> FPC source directory. Mögliche Pfade für das mysql Verzeichnis sind /usr/share/fpcsrc/packages/base/mysql/ (rpm Installation) oder C:\lazarus\fpcsrc\packages\base\mysql\ (Windows). Dieses Verzeichnis enthält auch die Units mysql.pp, mysql_com.pp und mysql_version.pp. Bevor sie das Testscript starten, müssen sie eine Datenbank mit dem Namen testdb anlegen: Tun sie dies, indem sie sich in den mysql Monitor einloggen (als root mit allen Rechten (privileges)) und das folgende SQL Statement eingeben<br />
CREATE DATABASE testdb;<br />
Dann müssen sie sicherstellen, dass alle relevanten Benutzer einen passenden Zugriff darauf haben<br />
GRANT ALL ON testdb TO johnny@localhost IDENTIFIED BY 'johnnyspassword'; <br />
Es gibt ein Script namens mkdb, welches sie nun starten sollten:<br />
sh ./mkdb<br />
Dies wird wahrscheinlich fehlschlagen, weil das System keinem anonymen Benutzer den Zugriff auf die Datenbank erlauben wird. Ändern sie deshalb das Script mit einem Editor, so dass die Zeile, in der mysql aufgerufen wird, wie folgt aussieht:<br />
mysql -u root -p ${1-testdb} << EOF >/dev/null<br />
und versuchen sie, es erneut zu starten. Geben sie ihr Passwort ein, wenn danach verlangt wird. Mit etwas Glück ist es ihnen gelungen, die Testdatenbank anzulegen: testen sie es (während sie im mysql Monitor eingeloggt sind) unter Verwendung der mysql Anweisung <br />
select * from FPdev;<br />
Sie sollten eine Tabelle sehen, welche die ID, den Benutzernamen und die Emailadresse von einem der FPC Entwickler enthält.<br />
<br />
Versuchen sie nun, das Testprogramm testdb.pp zu starten (dieses muss evtl. noch kompiliert werden, und wird beinahe sicher beim ersten Versuch fehlschlagen!!).<br />
<br />
Ich habe herausgefunden, dass das Programm aus verschiedenen Gründen nicht mit mysql verbinden konnte:<br />
<br />
* Mein System (SuSE Linux v9.0) installiert mysql v4.0.15, nicht die Version 3, für welche das Package bestimmt war. <br />
<br />
* Das Programm benötigt Benutzernamen und Passwörter, um Zugriff auf die Datenbank zu erhalten.<br />
<br />
* Der Compiler muss wissen, wo die mysql Bibliotheken zu finden sind. (Wenn sie die mysql Entwicklungs-Bibliotheken nicht installiert haben, dann tun sie es jetzt!)<br />
<br />
Ich erzeugte eine Kopie von testdb.pp mit dem Namen trydb.pp, eher als das Original zu bearbeiten - das bedeutet, dass die originalen Dateien in späteren CVS Updates noch bereinigt werden.<br />
Ich kopierte auch die Dateien aus dem Unterverzeichnis mysql/ver40/ in das Haupt- mysql/ Unterverzeichnis, benannte sie in mysql_v4.pp, mysql_com_v4.pp und mysql_version_v4.pp um, um sicher zu sein, die Units mit jeder Datei entsprechend umzubenennen. Ich änderte die uses Anweisung in trydb.pp zu <br />
uses mysql_v4<br />
und die Anweisung in mysql_v4.pp zu<br />
<br />
uses mysql_com_v4<br />
<br />
Ich fügte eine Zeile zu /etc/fpc.cfg hinzu, um auf meine Bibliotheken zu zeigen:<br />
-Fl/lib;/usr/lib<br />
Der folgende Schritt mag nicht notwendig sein, wenn die devel-Biblitheken installiert sind wie die Links für sie erzeugt sind, aber es kann nie schaden, es zu prüfen.<br />
Ich musste den tatsächlichen Namen der mysqlclint Bibliothek im /usr/lib Verzeichnis u finden nd in meinem Fall das folgende shell-Kommando eingeben:<br />
ln -s libmysqlclient.so.12.0.0 lmysqlclient<br />
um einen symbolischen Link zu erstellen, um FPC zu erlauben die Bibliothek zu finden. Für ein gutes Maß erzeugte ich auch den Link<br />
ln -s libmysqlclient.so.12.0.0 mysqlclient<br />
und plazierte einfache Links in verschiedenen anderen Verzeichnissen: nicht unbedingt notwendig, aber für alle Fälle ...!<br />
Einige Benutzer müssen evtl. den folgenden Link hinzufügen:<br />
ln -s libmysqlclient.so.12.0.0 libmysqlclient.so<br />
<br />
Ich modifizierte trydb.pp um Benutzerdetails einzubeziehen, zunächst durch Hinzufügen von host, Benutzer und Passwort als Konstanten:<br />
<br />
const<br />
host : Pchar= 'localhost';<br />
user : Pchar= 'myusername';<br />
passwd: Pchar = 'mypassword';<br />
<br />
Ich habe auch herausgefunden, dass ich keine Verbindung zu mysql mit der Benutzung des mysql_connect() Aufrufs bekam, aber mit mysql_real_connect(), das mehr Parameter hat. Um die Dinge weiter zu komplizieren, scheint die Anzahl der Parameter geändert werden zu müssen zwischen Version3 (wo es sieben sind) und Version4 (wo es acht sind). Vor der Benutzung von using mysql_real_connect musste ich mysql_init() verwenden, welche nicht in der originalen mysql.pp zu finden ist, aber in mysql_v4.pp.<br />
<br />
Daher ist der Code für die Verbindung zur Datenbank jetzt:<br />
<br />
<delphi><br />
{ einige extra Variablen}<br />
var<br />
alloc : PMYSQL;<br />
<br />
{Teil des Hauptprogramms}<br />
<br />
begin<br />
if paramcount=1 then<br />
begin<br />
Dummy:=Paramstr(1)+#0;<br />
DataBase:=@Dummy[1];<br />
end;<br />
<br />
Writeln ('Allocating Space...');<br />
alloc := mysql_init(PMYSQL(@qmysql));<br />
Write ('Connecting to MySQL...');<br />
sock := mysql_real_connect(alloc, host, user, passwd, database, 0, nil, 0);<br />
if sock=Nil then<br />
begin<br />
Writeln (stderr,'Couldn''t connect to MySQL.');<br />
Writeln (stderr, 'Error was: ', mysql_error(@qmysql));<br />
halt(1);<br />
end;<br />
Writeln ('Done.');<br />
Writeln ('Connection data:');<br />
{$ifdef Unix}<br />
writeln ('Mysql_port : ',mysql_port);<br />
writeln ('Mysql_unix_port : ',mysql_unix_port);<br />
{$endif}<br />
writeln ('Host info : ',mysql_get_host_info(sock));<br />
writeln ('Server info : ',mysql_stat(sock));<br />
writeln ('Client info : ',mysql_get_client_info);<br />
<br />
Writeln ('Selecting Database ',DataBase,'...');<br />
if mysql_select_db(sock,DataBase) < 0 then<br />
begin<br />
Writeln (stderr,'Couldn''t select database ',Database);<br />
Writeln (stderr,mysql_error(sock));<br />
halt (1);<br />
end;<br />
{... wie die Originalinhalte von testdb.pp}<br />
</delphi><br />
<br />
Jetzt - sind sie bereit, um die Kompilierung von trydb.pp zu starten?<br />
fpc trydb<br />
Erfolg! Jetzt starten sie es:<br />
./trydb<br />
whoopee! Ich erhielt die Auflistung der FPC Entwickler!<br />
<br />
Einige zusätzliche Feinheiten: Machen sie die Eingabe der Benutzerdetails und der mysql Befehle interaktiv, benutzen sie eher Variablen als Konstanten und erlauben sie die Eingabe verschiedener SQL Befehle, bis wir den quit Befehl geben: schauen sie in der [[Lazarus Database Tutorial/TryDbpp|vollen Programmauflistung]] nach, wo Benutzerdetails von der Konsole aus eingegeben werden, und das Programm in eine Schleife geht, wo SQL Befehle von der Konsole aus eingegeben werden (ohne das abschließende Semikolon) und die Antworten ausgedruckt werden, bis 'quit' über die Tastatur eingegeben wird.<br />
<br />
Siehe [[Lazarus Database Tutorial/SampleListing|Einfaches Konsole Listing]] .<br />
<br />
=== Verbindung zu MySQL von einer Lazarus Anwendung aus ===<br />
<br />
Dieses Tutorial zeigt, wie man Lazarus bei einer MySQL Datenbank anmelden und einfache Abfragen ausführen kann, lediglich unter Verwendung der Lazarus Grundkomponenten; es benutzt keine datensensitiven Komponenten, aber es illustriert die Prinzipien der Kopplung mit der Datenbank.<br />
<br />
Erzeugen sie ein neues Projekt in Lazarus:<br />
Projekt -> Neues Projekt -> Anwendung<br />
Ein neues automatisch erzeugtes Formular wird erscheinen.<br />
<br />
Vergrößern sie das Formular bis es etwa die Hälfte ihres Bildschirms ausfüllt, dann benennen sie das Formular und seine Titelzeile (caption) in 'TryMySQL' um.<br />
<br />
Von der Standard Komponentenpalette platzieren sie drei Edit Felder oben links auf dem Formular, und platzieren sofort über jedem Feld ein Label. Ändern sie die Namen und Captions zu 'Host' (und HostLLabel,HostEdit), 'UserName' (und UserLabel, UserEdit) und 'Password' (mit PasswdLabel und PasswdEdit). Alternativ können sie LabelledEdit Komponenten von der Additional Palette benutzen.<br />
<br />
Wählen sie das Passwd Editfeld und finden sie die PasswordChar Eigenschaft: ändern sie diese dies auf * oder ein anderes Zeichen, so dass ihrer Eingaben in diesem Feld nicht erscheinen, sondern nur eine Reihe von * erscheint. Stellen sie sicher, dass die Eigenschaft Text für jedes Editfeld leer ist. <br />
<br />
Nun platzieren sie eine neues Edit Feld und Label oben rechts auf ihrem Formular. Ändern sie die Label Caption zu 'Enter SQL Command' und nennen sie es CommandEdit.<br />
<br />
Platzieren sie drei Buttons auf dem Formular: zwei links unter den Edit Feldern, und einen rechts unter dem command Feld.<br />
<br />
Benennen sie die Buttons auf der linken Seite 'Connect to Database' (ConnectButton) und 'Exit' (ExitButton) und den auf der rechten Seite 'Send Query' (QueryButton).<br />
<br />
Platzieren sie ein großes Memo Feld mit Label und Namen 'Results' (ResultMemo) unten rechts, um den meisten verfügbaren Platz auszufüllen. Finden sie seine ScrollBars Eigenschaft und wählen sie ssAutoBoth, so dass die Bildlaufleisten automatisch erscheinen wenn Text die Leerstellen füllt. Setzen sie die WordWrap Eigenschaft auf True.<br />
<br />
Platzieren sie eine Status Bar (von der Common Controls Palette) am unteren Ende des Formulars, und setzen seine SimpleText Eigenschaft auf 'TryMySQL'.<br />
<br />
Ein Bildschirmfoto des Formulars ist hier zu sehen: [http://lazarus-ccr.sourceforge.net/kbdata/trymysqldb.png Mysql Beispiel Screenshot]<br />
<br />
Nun müssen wir einige Ereignis-Handler schreiben.<br />
<br />
Die drei Edit-Boxen auf der linken sind für die Eingabe von Hostnamen, Benutzernamen und Passwort. Wenn diese zufriedenstellend eingegeben wurden, wird der Connect Button angeklickt. Der OnCLick Ereignis handler für diesen Button beruht auf Teilen des Textmodus FPC Programms oberhalb.<br />
<br />
Die Antworten von der Datenbank können jetzt nicht mit den Pascal ''write'' oder ''writeln'' Anweisungen geschrieben werden. Stattdessen müssen die Antworten in Strings konvertiert und in einem Memo Feld angezeigt werden. Wohingegen die Pascal ''write'' und ''writeln'' Anweisungen geeignet sind, eine Menge von Typumformungen 'on the fly' durchzuführen, die Benutzung eines Memo Felds für die Textausgabe erfordert die explizite Konvertierung von Datentypen in die korrekte Form eines string, daher müssen Pchar Variablen in Strings konvertiert werden mit ''StrPas'', und Integers müssen mit ''IntToStr'' konvertiert werden. <br />
<br />
Strings werden im Memo Feld angezeigt unter Verwendung von<br />
<br />
procedure ShowString (S : string);<br />
(* zeigt einen String in einem Memo Feld an *)<br />
begin<br />
trymysqlForm1.ResultsMemo.Lines.Add (S)<br />
end;<br />
<br />
Der ConnectButton Ereignis-handler wird daher:<br />
<br />
<delphi><br />
procedure TtrymysqlForm1.ConnectButtonClick(Sender: TObject);<br />
(* Verbinden zu MySQL unter Verwendung der Benutzerdaten von den Texteingabefeldern auf Main Form *)<br />
var strg: string;<br />
<br />
begin<br />
<br />
dummy1 := trymysqlForm1.HostEdit.text+#0;<br />
host := @dummy1[1];<br />
dummy2 := trymysqlForm1.UserEdit.text+#0;<br />
user := @dummy2[1] ;<br />
dummy3 := trymysqlForm1.PasswdEdit.text+#0;<br />
passwd := @dummy3[1] ;<br />
<br />
alloc := mysql_init(PMYSQL(@qmysql));<br />
sock := mysql_real_connect(alloc, host, user, passwd, database, 0, nil, 0);<br />
if sock=Nil then<br />
begin<br />
strg :='Couldn''t connect to MySQL.'; showstring (strg);<br />
Strg :='Error was: '+ StrPas(mysql_error(@qmysql)); showstring (strg);<br />
end<br />
else<br />
begin<br />
trymysqlForm1.statusBar1.simpletext := 'Connected to MySQL';<br />
strg := 'Now choosing database : ' + database; showstring (strg);<br />
{$ifdef Unix}<br />
strg :='Mysql_port : '+ IntToStr(mysql_port); showstring (strg);<br />
strg :='Mysql_unix_port : ' + StrPas(mysql_unix_port); showstring (strg);<br />
{$endif}<br />
Strg :='Host info : ' + StrPas(mysql_get_host_info(sock));<br />
showstring (strg);<br />
Strg :='Server info : ' + StrPas(mysql_stat(sock)); showstring (strg);<br />
Strg :='Client info : ' + Strpas(mysql_get_client_info); showstring (strg);<br />
<br />
trymysqlForm1.statusbar1.simpletext := 'Selecting Database ' + DataBase +'...';<br />
if mysql_select_db(sock,DataBase) < 0 then<br />
begin<br />
strg :='Couldn''t select database '+ Database; ShowString (strg);<br />
Strg := mysql_error(sock); ShowString (strg);<br />
end<br />
end;<br />
end;<br />
</delphi><br />
<br />
Das Textfeld rechts erlaubt die Eingabe einer SQL-Anweisung, ohne abschließendes Semikolon. Wenn sie mit seinem Inhalt oder Schreibweise zufrieden sind, drücken sie den SendQuery-Button, und die Abfrage wird abgearbeitet, mit den Ergebnissen, die in das ResultsMemo-Feld geschrieben sind.<br />
<br />
Der SendQuery Ereignis-Handler basiert wieder auf der FPC Textmodus Version, abgesehen davon, dass eine explizite Typenkonversion erfolgen muss bevor Strings in der Box angezeigt werden.<br />
<br />
Ein Unterschied zu dem Textmodus FPC Programm ist, dass das Programm nicht stoppt und MySQL nicht geschlossen wird, wenn eine Fehlerbedingung entdeckt wird. Stattdessen geht die Kontrolle an das Hauptformular zurück und eine Gelegenheit wird gegeben, den Eintrag zu berichtigen, bevor das Kommando neu eingereicht wird. Die Anwendung wird schließlich beendet (mit Schliessen von MySQL), wenn der Exit-Button angeklickt wird.<br />
<br />
Der Code für SendQuery folgt:<br />
<br />
<delphi><br />
procedure TtrymysqlForm1.QueryButtonClick(Sender: TObject);<br />
var<br />
dumquery, strg: string;<br />
begin<br />
dumquery := TrymysqlForm1.CommandEdit.text;<br />
dumquery := dumquery+#0;<br />
query := @dumquery[1];<br />
trymysqlForm1.statusbar1.simpletext := 'Executing query : '+ dumQuery +'...';<br />
strg := 'Executing query : ' + dumQuery; showstring (strg);<br />
if (mysql_query(sock,Query) < 0) then<br />
begin<br />
Strg :='Query failed '+ StrPas(mysql_error(sock)); showstring (strg);<br />
end<br />
else<br />
begin<br />
recbuf := mysql_store_result(sock);<br />
if RecBuf=Nil then<br />
begin<br />
Strg :='Query returned nil result.'; showstring (strg);<br />
end<br />
else<br />
begin<br />
strg :='Number of records returned : ' + IntToStr(mysql_num_rows (recbuf));<br />
Showstring (strg);<br />
Strg :='Number of fields per record : ' + IntToStr(mysql_num_fields(recbuf));<br />
showstring (strg);<br />
rowbuf := mysql_fetch_row(recbuf);<br />
while (rowbuf <>nil) do<br />
begin<br />
Strg :='(Id: '+ rowbuf[0]+', Name: ' + rowbuf[1]+ ', Email : ' +<br />
rowbuf[2] +')';<br />
showstring (strg);<br />
rowbuf := mysql_fetch_row(recbuf);<br />
end;<br />
end;<br />
end;<br />
end;<br />
</delphi><br />
<br />
Speichern sie ihr Projekt, und drücken Start -> Start<br />
<br />
==== Download des MYSQL Quelltextes ====<br />
Eine volle Auflistung des Programms gibt es hier [http://lazarus-ccr.sourceforge.net/kbdata/mysqldemo.tar.gz Beispiel Quellcode]<br />
<br />
== Lazarus und Postgresql ==<br />
<br />
Bitte schreiben sie mir!<br />
<br />
siehe auch [[TPSQL/de|TPSQL]]<br />
<br />
== Lazarus und SQLite ==<br />
<br />
von Luiz Américo<br />
<br />
Besuchen sie die [http://www.geocities.com/camara_luiz/ sqlite4fpc Homepage]. Dort finden sie die API-Referenz und weitere Tutorials.<br />
<br />
=== Einführung ===<br />
<br />
TSqliteDataset und TSqlite3Dataset sind TDataset Abkömmling-Klassen, die jeweils auf sqlite 2.8.x und 3.x.x Datenbanken zugreifen. Nachstehend befindet sich eine Liste der wichtigsten Vor- und Nachteile:<br />
<br />
Vorteile:<br />
<br />
* Flexibilität: Programmier können wählen, ob sie die SQL Sprache verwenden oder nicht, erlaubt ihnen mit einfachen Tabellenlayouts zu arbeiten oder jedem komplexen Layout, welches SQL ermöglicht.<br />
* Automatisches Datenbank Update: Kein Bedarf, die Datenbank manuell mit SQL Anweisungen zu updaten, eine einzelne Methode erledigt dies.<br />
* Schnelligkeit: Es puffert die Daten im Arbeitsspeicher, was das Browsen im Datenbestand schnell macht.<br />
* Keine Server Installation/Konfiguration: einfach zusammen verfrachten mit der sqlite dynamic Bibliothek.<br />
<br />
Nachteile<br />
<br />
* Benötigt externe Datei (sqlite Bibliothek)<br />
<br />
=== Voraussetzungen ===<br />
* Für sqlite2 Datenbanken:<br />
** fpc 2.0.0<br />
** Lazarus 0.9.10<br />
** sqlite Laufzeitbibliothek 2.8.15 oder höher (von www.sqlite.org)<br />
<br />
* Für sqlite3 Datenbanken:<br />
** fpc 2.0.2<br />
** Lazarus 0.9.11 (SVN Revision 8443 oder höher)<br />
** sqlite Laufzeitbibliothek 3.2.1 oder höher (von www.sqlite.org)<br />
<br />
'''Bevor sie ein Lazarus Projekt beginnen, stellen sie sicher, dass:'''<br />
* die sqlite Bibliothek im Systempfad (PATH) ist oder im Verzeichnis des executable<br />
* unter Linux, bringen sie cmem als erste Unit in den uses-Abschnitt des Hauptprogramms<br />
<br />
=== Anwendung (grundlegende Verwendung) ===<br />
<br />
Installieren sie das Package aus dem /components/sqlite Verzeichnis (siehe Instruktionen [[Install_Packages/de|hier]])<br />
<br />
Zur Entwicklungszeit setzen sie die folgenen Eigenschaften:<br />
<br />
* FileName: Pfad der sqlite Datei [benötigt] <br />
* TableName: Name der Tabelle, die in der SQL Anweisung benutzt wird [benötigt] <br />
* Sql: eine SQL ''select'' Anweisung [optional] <br />
<br />
'''Erzeugen einer Tabelle (Dataset)'''<br />
<br />
Klicken sie doppelt auf das Komponenten-Icon oder benutzen sie den 'Create Table' Punkt im Popup-Menü, das erscheint, wenn sie mit der rechten Maustaste klicken.<br />
Ein einfacher selbsterklärender Tabellen-Editor wird eingeblendet.<br />
<br />
Hier sind alle Feldtypen, die von TSqliteDataset und TSqlite3Dataset unterstützt werden: <br />
<br />
Integer<br />
AutoInc<br />
String<br />
Memo<br />
Bool <br />
Float<br />
Word<br />
DateTime<br />
Date<br />
Time<br />
LargeInt<br />
Currency<br />
<br />
'''Abrufen der Daten'''<br />
<br />
Nach dem Erzeugen der Tabelle oder mit einer vorher erzeugten Tabelle, öffnen sie die Datenmenge mit der ''Open'' Methode.<br />
Wenn die SQL-Eigenschaft nicht gesetzt wurde, dann werden alle Datensätze von allen Feldern abgerufen, das selbe passiert, wenn sie SQL auf:<br />
<br />
SQL:='Select * from TABLENAME'; <br />
<br />
setzen.<br />
<br />
'''Anwendung von Änderungen zur grundlegenden Datendatei'''<br />
<br />
Um die Funktion ApplyUpdates zu benutzen, muss der Datenbestand mindestens ein Feld enthalten, das die Anforderungen für einen Primary Key erfüllt (Werte müssen UNIQUE und nicht NULL sein).<br />
<br />
Es ist möglich, dies auf zwei Wegen zu erreichen:<br />
<br />
* Setzen sie die Eigenschaft PrimaryKey auf den Namen eines Primary Key Feldes.<br />
* Fügen sie ein Feld AutoInc hinzu (dies ist einfacher seit TSqliteDataSet es automatisch als Primary Key behandelt)<br />
<br />
Wenn eine oder zwei Bedingungen gesetzt sind, rufen sie<br />
<br />
ApplyUpdates;<br />
<br />
auf.<br />
<br />
PS1: Wenn beide Bedingungen gesetzt sind, wird das Feld entsprechend dem PrimaryKey genutzt, um die Updates anzuwenden.<br />
<br />
PS2: Setzen von PrimaryKey auf ein Feld, das kein Primary Key ist, wird zu einem Verlust von Daten führen, wenn ApplyUpdates aufgerufen wird, daher stellen sie sicher, dass das gewählte Feld keinen Null Wert und Unique values enthält, bevor sie es benutzen.<br />
<br />
=== Bemerkungen ===<br />
<br />
* Obwohl es mit 10000 Datensätzen getestet wurde und problemlos funktionierte, hält TSqliteDataset alle Daten im Arbeitsspeicher. Denken sie daher daran, nur die notwendigen Daten abzurufen (hauptsächlich mit Memo Feldern).<br />
* Die selbe Datendatei (Filename Eigenschaft) kann verschiedene Tabllen/Datasets hosten.<br />
* Verschiedene Datasets (unterschiedliche Kombinationen von Feldern) können unter simultaner Nutzung der selben Tabelle erzeugt werden . <br />
* Es ist möglich, die Daten mit der ''WHERE'' Anweisung in SQL zu filtern, das Dataset zu schliessen und wieder zu öffnen (oder die Methode RefetchData aufrufen). Aber in diesem Fall müssen die Reihenfolge und Anzahl der Felder gleich bleiben. <br />
* Es ist auch möglich, komplexe SQL-Anweisungen zu verwenden mittels Aliasen, Joins, Views bei mehrfachen Tabellen (denken sie daran, dass sie sich in der selben Datendatei befinden müssen), aber in diesem Fall wird ApplyUpdates nicht funktionieren. Wenn jemand komplexe Abfragen benutzen und die Updates in die Datendatei einsetzen will, soll er mir schreiben und ich werde einige Hinweise geben, wie man das tut.<br />
* Es ist erlaubt, den Dateinamen zu einer sqlite2.x Datendatei zu setzen, welche nicht von TSqliteDataset erzeugt wurde, aber einige Felder werden nicht den korrekten Feldtyp ermitteln. Diese werden als String-Felder behandelt.<br />
<br />
Allgemeine Beispiele sind zu finden im fpc/fcl/db/sqlite CVS-Verzeichnis<br />
<br />
Luiz Américo<br />
pascalive(at)bol(dot)com(dot)br<br />
<br />
== Lazarus und MSSQL ==<br />
<br />
Bitte schreiben sie mir!<br />
<br />
== Lazarus und Interbase / Firebird ==<br />
<br />
Schauen sie auf [[Install Packages/de|Installation von Packages]] nach. Auf dieser Seite befindet sich ein erstes kleines Beispiel und eine Beschreibung, wie man eine Verbindung zu einem IB- oder FB-Server herstellt. Informationen zu Firebird gibt es auch hier [[Firebird in action]].<br />
<br />
Funktioniert auch mit der neuesten Zeoslib (aus dem cvs).<br />
<br />
== Lazarus und dBase ==<br />
<br />
[[user:Tonymaro|Tony Maro]]<br />
<br />
Sie können auch mit dem Besuch der [[Lazarus Tdbf Tutorial/de|TDbf Tutorial Seite]] anfangen.<br />
<br />
FPC enthält eine einfache Datenbank-Komponente, die ähnlich funktioniert wie die Delphi-Komponente TTable, genannt "TDbf" ([http://tdbf.sourceforge.net/ TDbf Webseite]), die eine sehr elementare Teilmenge von Features für dBase-Dateien bietet. Sie wird inzwischen standardmäßig installiert, so dass sie das Lazarus Package aus dem "lazarus/components/tdbf" Verzeichnis nicht mehr manuell installieren und ihre Lazarus IDE neu aufbauen müssen (rebuild). Sie erscheint neben 'TDatasource' in ihrer Komponentenpalette.<br />
<br />
Die Komponente TDbf hat einen Vorteil gegenüber anderen Datenbank-Komponenten, dass sie keine Art von Datenbank-Laufzeit-engines benötigt. Sie ist aber nicht die beste Option für große Datenbankanwendungen.<br />
<br />
Sie ist sehr einfach zu benutzen. Nehmen sie einfach eine TDbf und legen sie sie auf ihrem Formular ab, setzen den Laufzeit-Pfad auf das Verzeichnis, wo sich ihre Datenbank-Dateien befinden, setzen den Tabellennamen und verbinden sie mit ihrer TDatasource-Komponente.<br />
<br />
Wirkliche Funktionalität benötigt ein bißchen mehr Aufwand, wie auch immer. Wenn eine Tabelle nicht bereits schon existiert, müssen sie sie per Programm erzeugen, es sei denn, es gibt einen kompatiblen Tabellen-Designer, mit dem ich nicht vertraut bin.<br />
<br />
Der Versuch, eine nicht existierende Tabelle zu öffnen, wird einen Fehler erzeugen. Tabellen können per Programm durch die Komponente erzeugt werden, sobald der Laufzeit-Pfad und der Tabellenname gesetzt wurden.<br />
<br />
Ein Beispiel: Sie erzeugen eine Tabelle mit dem Namen "dvds", um ihre DVD-Kollektion zu speichern, in dem sie sie auf ihrem Formular ablegen, den Laufzeit-Pfad setzen und den Tabellennamen auf "dvds" setzen. Die resultierende Datei heißt "dvds.dbf".<br />
<br />
Fügen sie das Folgende in ihren Code ein:<br />
<br />
Dbf1.FilePathFull = '/Pfad/zu/meiner/Datenbank';<br />
Dbf1.TableName = 'dvds';<br />
With Dbf1.FieldDefs do begin<br />
Add('Name', ftString, 80, True);<br />
Add('Description', ftMemo, 0, False);<br />
Add('Rating', ftString, 5, False);<br />
end;<br />
Dbf1.CreateTable;<br />
<br />
Wenn dieser Code läuft, wird ihre Tabelle DVD-Kollektion erzeugt. Danach werden alle datensensitiven Komponenten, die durch TDatasource mit dieser Komponente verbunden sind, einen einfachen Zugang zu den Daten erlauben. <br />
<br />
Das Hinzügen von Indexen ist ein wenig unterschiedlich von ihrer typischen TTable. Es muss getan werden, nachdem die Datenbank geöffnet wurde. Es ist auch die selbe Methode, die sie zum Erneuern der Indexe verwenden. Zum Beispiel:<br />
<br />
Dbf1.Exclusive := True;<br />
Dbf1.Open;<br />
Dbf1.AddIndex('dvdsname','Name',[ixPrimary, ixUnique, ixCaseInsensitive]);<br />
Dbf1.AddIndex('rating.ndx', 'Rating', [ixCaseInsensitive]);<br />
Dbf1.Close;<br />
<br />
Der erste (primary) Index ist eine Datei mit dem Namen "dvdsname.mdx" und der zweite ist die Datei "rating.ndx". Daher müssen sie aufpassen in einer Mehrfach-Tabellen Datenbank, den selben Dateinamen nicht zweimal zu verwenden.<br />
<br />
Ich will versuchen, ein detaillierteres Beispiel zu einem späteren Zeitpunkt hinzuzufügen, aber hoffentlich wird dies jene 'alten' Delphi-Programmierer anspornen, Datenbankprogramme mit Lazarus zu schreiben!<br />
<br />
== Verwendung von TSdfDataset und TFixedDataset ==<br />
<br />
TSdfDataset and TFixedDataset are two simple datasets which offer a very simple textual storage format. These datasets are very convenient for small databases, because they are fully implemented as an object pascal unit, and thus require no external libraries, and because their textual format allows them to be easely edited with a text editor.<br />
<br />
To start with this formats, a initial database file should be created. The format is very simple, so use a text editor to do this.<br />
<br />
Below is a sample database for TSdfDataset. Note that the first line has the names of the fields and that we are using commas as separators:<br />
<br />
<pre><br />
ID,NAMEEN,NAMEPT,HEIGHT,WIDTH,PINS,DRAWINGCODE<br />
1,resistor,resistor,1,1,1,LINE<br />
2,capacitor,capacitor,1,1,1,LINE<br />
3,transistor npn,transistor npn<br />
</pre><br />
<br />
And here is an example database for using with TFixedDataset. Each record occupies a fixed amount of space, and if the field is smaller then it, spaces should be used to fill the remaining size.<br />
<br />
<pre><br />
Name = 15 chars; Surname = 15 chars; Tell = 10 chars; e_mail = 20 chars;<br />
Piet Pompies piet@pompies.net <br />
</pre><br />
<br />
=== Direkte Verwendung der Datasets ===<br />
<br />
Sometimes it is useful to create the dataset and work with it completely in code, and the following code will do exactly this. Note some peculiarities of TSdfDataset/TFixedDataset:<br />
<br />
* The lines in the database can have a maximum size of about 300. A fix is being researched.<br />
* It is necessary to add the field definitions. Some datasets are able to fill this information alone from the database file<br />
* One should set FirstLineAsSchema to true, to indicate that the first line includes the field names and positions<br />
* The Delimiter property holds the separator for the fields. It will not be possible to use this char in strings in the database. Similarly it will not be possible to have lineendings in the database because they mark the change between records. It's possible to overcome this by substituting the needed comma or line ending with another not often used char, like # for example. So that when showing the data on screen all # chars could be converted to line endings and the inverse when storing data back to the database. The ReplaceString routine is useful here.<br />
<br />
<delphi><br />
constructor TComponentsDatabase.Create;<br />
begin<br />
inherited Create;<br />
<br />
FDataset := TSdfDataset.Create(nil);<br />
FDataset.FileName := vConfigurations.ComponentsDBFile;<br />
<br />
// Not necessary with TSdfDataset<br />
// FDataset.TableName := STR_DB_COMPONENTS_TABLE;<br />
// FDataset.PrimaryKey := STR_DB_COMPONENTS_ID;<br />
<br />
// Adds field definitions<br />
FDataset.FieldDefs.Add('ID', ftString);<br />
FDataset.FieldDefs.Add('NAMEEN', ftString);<br />
FDataset.FieldDefs.Add('NAMEPT', ftString);<br />
FDataset.FieldDefs.Add('HEIGHT', ftString);<br />
FDataset.FieldDefs.Add('WIDTH', ftString);<br />
FDataset.FieldDefs.Add('PINS', ftString);<br />
FDataset.FieldDefs.Add('DRAWINGCODE', ftString);<br />
<br />
// Necessary for TSdfDataset<br />
FDataset.Delimiter := ',';<br />
FDataset.FirstLineAsSchema := True;<br />
<br />
FDataset.Active := True;<br />
<br />
// Sets the initial record<br />
CurrentRecNo := 1;<br />
FDataset.First;<br />
end;<br />
</delphi><br />
<br />
When using TSdfDataset directly be careful that althought it is implemented, RecNo does not work correctly, neither for setting nor for reading. The standard movimentation routines like First, Next, Prior and Last work correctly, so it's possible to use them to implement a replacement for RecNo. Keep a variable somewhere called CurrentRecNo which will hold the current RecNo value. Remember that this variable will have the same convention as RecNo, so the first record has number 1. After activating the database initialize the database to the first record with TSdfDataset.First and with CurrentRecNo := 1<br />
<br />
<delphi><br />
{@@<br />
Moves to the desired record using TDataset.Next and TDataset.Prior<br />
Avoids using TDataset.RecNo which doesn't work in all datasets<br />
<br />
@param AID Indicates the record number. The first record has number 1<br />
}<br />
procedure TComponentsDatabase.GoToRec(AID: Integer);<br />
begin<br />
// We are before the desired record, move forward<br />
if CurrentRecNo < AID then<br />
begin<br />
while (not FDataset.EOF) and (CurrentRecNo < AID) do<br />
begin<br />
FDataset.Next;<br />
FDataset.CursorPosChanged;<br />
Inc(CurrentRecNo);<br />
end;<br />
end<br />
// We are after the desired record, move back<br />
else if CurrentRecNo > AID then<br />
begin<br />
while (CurrentRecNo >= 1) and (CurrentRecNo > AID) do<br />
begin<br />
FDataset.Prior;<br />
FDataset.CursorPosChanged;<br />
Dec(CurrentRecNo);<br />
end;<br />
end;<br />
end;<br />
</delphi><br />
<br />
=== Verwendung mit datensensitiven Komponenten ===<br />
<br />
== Verwandte Links ==<br />
[[Databases/de| Startseite für Datenbankanwendungen mit Lazarus]]<br><br />
[[MySQLDatabases/de| Erstellung einer Datenbankanwendung unter Verwendung von MySQL]]<br><br />
[[Zeos tutorial/de| Verwendung der Zeos Komponenten]]<br />
<br />
== Mitwirkende und Änderungen ==<br />
Die Anfänge dieser Seite stammen von der epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusDatabase Version].</div>Xnohttps://wiki.freepascal.org/index.php?title=IDE_Window:_Options/de&diff=35005IDE Window: Options/de2009-04-15T08:00:29Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
<br />
[[IDE Window: Environment Options/de|Environment]]<br />
<br />
[[IDE Window: Editor Options/de|Editor]]<br />
<br />
[[IDE Window: Codetools Options/de|Codetools]]<br />
<br />
[[IDE Window: Debugger Options/de|Debugger]]</div>Xnohttps://wiki.freepascal.org/index.php?title=IDE_Window:_Options&diff=35004IDE Window: Options2009-04-15T08:00:06Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
<br />
[[IDE Window: Environment Options|Environment]]<br />
<br />
[[IDE Window: Editor Options|Editor]]<br />
<br />
[[IDE Window: Codetools Options|Codetools]]<br />
<br />
[[IDE Window: Debugger Options|Debugger]]</div>Xnohttps://wiki.freepascal.org/index.php?title=TGradPageControl&diff=31482TGradPageControl2008-10-09T09:27:09Z<p>Xno: </p>
<hr />
<div>{{Translate}}<br />
<br />
==About==<br />
Part of [[GradControls]]. TGradPageControl is a TCustomControl descendant. This TGradPageControl should be like or better than the normal TPageControl<br />
<br />
Current Version: '''0.1''' - ''unstable''<br />
<br />
==Todo==<br />
===Control===<br />
* TGradDrawer (ThemeSupport)<br />
* some more Todos<br />
* Long Tabs on Right / Left Side<br />
* Events of all SubComponents - maybe useful<br />
* Close Buttons on Tabs<br />
* Glyphs on Tabs or using ImageList with ImageIndex<br />
<br />
===Demos===<br />
* Move Tabs with Drag'N'Drop<br />
* Active Page with MouseWheel<br />
* Theme Selection (if TGradDrawer works)<br />
* <br />
<br />
<br />
==Autor==<br />
'''[[User:EugenE|Eugen Bolz]]'''</div>Xnohttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation/it&diff=31116Lazarus Documentation/it2008-09-11T10:42:02Z<p>Xno: Categoria Italiano</p>
<hr />
<div>{{Translate}}<br />
<br />
==Istruzioni per Lazarus e Pascal==<br />
*[[Overview of Free Pascal and Lazarus|Panoramica sul Free Pascal e Lazarus]] - Una breve discussione su ciò che puoi sviluppare con questi strumenti.<br />
*[[Lazarus Tutorial]] - Una guida per iniziare e una descrizione dettagliata di Lazarus.<br />
*[[Lazarus IDE Tools]] - Una guida di livello intermedio riguardo il completamento del codice e altri strumenti dell'IDE.<br />
*[[Lazarus Database Tutorial]] - Un'introduzione all'uso di Lazarus con i database.<br />
*[[Developing with Graphics]] - Alcuni esempi di base sulla programmazione grafica.<br />
*[[Pascal Tutorial]] - [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial] (copiato con permesso).<br />
*[[TXMLPropStorage]] - Usare TXMLPropStorage per salvare le preferenze dell'utente.<br />
*[[Executing External Programs]] - Un breve corso che mostra come aprire programmi esterni.<br />
*[[Hardware Access]] - Come accedere a dispositivi hardware, come schede ISA, PCI, porte parallele e seriali e dispositivi USB.<br />
*[[Networking]] - Varie guide su XML, sul protocollo TCP/IP, sulla creazione di programmi di rete sicuri, sui servizi web, ecc.<br />
*[[Multithreaded Application Tutorial]] - Come scrivere applicazioni multithread usando Free Pascal e Lazarus<br />
*[[Streaming components]] - Come scrivere componenti per stream o come leggere/creare componenti dagli stream<br />
*[[OpenGL Tutorial]] - Come usare GLUT in Lazarus<br />
*[[Creating bindings for C libraries]] - Come convertire i file header C (.h) in unit pascal<br />
*[[Lazarus/FPC Libraries]] - Come creare e come usare le librerie dinamiche (.so, .dll, .dynlib) con Free Pascal e Lazarus<br />
<br />
==Le guide di lazarus (per utenti)==<br />
*[[Lazarus Faq]] - Informazioni generali riguardo Lazarus con dettagli per gli utenti di Linux e Windows.<br />
*[[Lazarus DB Faq]] - Domande ricorrenti sui database con Lazarus.<br />
*[[Code Examples]] - Alcuni programmi di esempio con Lazarus.<br />
*[[Feature_Ideas|Desiderata]] - Ciò che vorresti trovare nel Lazarus.<br />
*[[How do I create a bug report|Come fare un corretto rapporto di bug]] - Se pensi di aver trovato un bug e vuoi che venga preso in considerazione.<br />
===Installazione=== <br />
*[[Installing Lazarus]] - Una guida all'installazione<br />
*[[Getting Lazarus]] - Come scaricare versioni rilasciate o SVN di Lazarus<br />
*[[OS X Programming Tips]] - Installazione, strumenti utili, comandi Unix, e altro...<br />
===IDE===<br />
*[[IDE tricks]] - Consigli, trucchi e strumenti nascosti<br />
*[[Lazarus IDE]] - L'IDE di windows<br />
*[[Lazarus Packages]] - Guida per creare pacchetti per Lazarus<br />
*[[Install Packages]] - Come installare i pacchetti<br />
*[[Extending the IDE]] - Come aggiungere funzioni all'IDE Lazarus<br />
<br />
===LCL===<br />
*[[doc:lcl/|LCL documentation]] - Assistenza in linea per LCL (lavori in corso).<br />
*[[Main Loop Hooks]] - Come gestire fonti di eventi multiple.<br />
*[[Asynchronous Calls]] - Come mettere in attesa processi per chiamarli in seguito.<br />
*[[File size and smartlinking]] - come creare files eseguibili più piccoli.<br />
*[[Accessing the Interfaces directly]] - Esempi di come accedere ai widgetsets LCL.<br />
*[[Add Help to Your Application|Aggiungere una guida alla tua applicazione]] - Come creare la guida in linea per le tue applicazioni.<br />
*[[Anchor Sides]] - Descrizione delle caratteristiche Anchor Sides.<br />
*[[LCL Tips]] - Consigli e trucchi.<br />
*[[LCL Defines]] - Scegliere le giuste opzioni per ricompilare LCL.<br />
<br />
===Sviluppo===<br />
*[[The Power of Proper Planning and Practices]] - common-sense programming best practices for the Free Pascal and Lazarus developer<br />
*[[Multiplatform Programming Guide]] - Come si sviluppano applicazioni cross-platform e come si portano da una piattaforma ad un'altra<br />
*[[Using Pascal Libraries with .NET and Mono]] - Sì, puoi usare il tuo codice Free Pascal con .NET e Mono!<br />
*[[Deploying Your Application]] - Come creare un installer per la tua applicazione.<br />
*[[Cross compiling]] - Creazione di eseguibili per una piattaforma, su di un'altra.<br />
*[[Remote Debugging]] - Come fare il debug della tua applicazione Lazarus da un'altra macchina.<br />
<br />
===Strumenti===<br />
*[[Lazarus Documentation Editor]] - Usare "lazde" per creare la documentazione.<br />
*[[LazDoc]] - Un editor integrato per i files di documentazione.<br />
*[[lazbuild]] - Compilare i progetti e i packages senza l'IDE.<br />
<br />
===Venendo da Delphi===<br />
*[[Lazarus Components]] - Comparazione tra i componenti Lazarus e Turbo Delphi.<br />
*[[Lazarus For Delphi Users]] - Per gli utenti Delphi che sono agli inizi con Lazarus.<br />
*[[Code Conversion Guide]] - Come si converte il codice esistente e componenti da Delphi e Kylix.<br />
<br />
==Le guide dello sviluppatore Lazarus==<br />
*[[How To Help Developing Lazarus]] - Una guida per aiutare i principianti a migliorare Lazarus<br />
*[[Version Numbering]] - Descrizione dei numeri di versione di Lazarus <br />
*[[Creating A Patch| Creating a Patch]] - A guide to making a patch with changes made to Lazarus<br />
*[[Creating a Backtrace with GDB]] - A guide to making a backtrace to help you debug a program<br />
*[[Nomenclature]] - Guida alla scelta del nome per un nuovo metodo o proprietà<br />
*[[DesignGuidelines|Design Guide Lines]] - Una guida sulla procedura di modifica del codice sorgente di Lazarus.<br />
*[[GUI design]] - Notes on guidelines when designing the lazarus GUI<br />
*[[Roadmap]] - An idea of the current status of the various parts of Lazarus<br />
*[[Road To 1.0]] - Cosa manca da fare per Lazarus 1.0<br />
*[[Moderating the bug tracker]] - Linee guida per gli sviluppatori e i moderatori lazarus per l'uso dello strumento [http://www.freepascal.org/mantis/ bug tracker].<br />
*[[Codetools]] - How the codetools are integrated into the IDE<br />
*[[Creating IDE Help]] - Come estendere la documentazione IDE<br />
*[[Unit not found - How to find units]] - Come impostare l'IDE e i file sorgente<br />
*[[Bounties]] - Necessiti velocemente di una particolare nuova caratteristica? Investi in un premio! <br />
<br />
===LCL - La libreria a componenti di Lazarus===<br />
*[[LCL Messages]] - Guida ai messaggi LCL<br />
*[[LCL Internals]] - Some info about the inner workings of the LCL<br />
*[[LCL Key Handling]] - Aiuto! Ho premuto un tasto, e ora?<br />
*[[LCL Unicode Support]] - Road to Unicode enabled Lazarus<br />
*[[LCL Documentation Roadmap]] - Stato della documentazione delle unit<br />
<br />
===Interfacce===<br />
*[[Carbon Interface]] - L'interfaccia Carbon per Mac OS X<br />
*[[Qt Interface]] - L'iterfaccia Qt 4 per Unix, Mac OS X e PDA basati su linux<br />
*[[Windows CE Interface]] - Per Pocket PC e Smartphones<br />
<br />
===Traduzioni===<br />
* [[Getting translation strings right | Come ottenere le giuste stringhe di traduzione]] alcune note per i programmatori su come creare e usare stringhe traducibili nelle applicazioni. Discussione generale sulla creazione di stringhe; offre alcuni suggerimenti su problemi di implementazione mettendo in risalto alcuni aspetti importanti da considerare, usando l'inglese come linguaggio base.<br />
* '''Note per la localizzazione:'''<br />
:* [[German localization notes|Tedesco]] - Note e linee guida per la traduzione dell'IDE Lazarus in Tedesco, incluso un piccolo dizionario da consultare spesso per le traduzioni ricorrenti.<br />
:* [[Portuguese-Brazilian Localization Notes|Portoghese-Brasiliano]] - Piccolo dizionario contente termini comuni tradotti usati nell'IDE Lazarus per il Portoghese-Brasiliano.<br />
<!-- *[[TO-DO]] Remaining Tasks --><br />
* [[Help:Add language bar | Aggiungi una scheda lingua]] spiega come aggiungere un elenco di traduzioni in cima ad una pagina wiki.<br />
<br />
==Documentazione aggiuntiva sui componenti==<br />
*[[Pascal Script]] e [[Pascal Script Examples|Esempi di Pascal Script]] - Come usare i componenti pascal script in Lazarus<br />
*[[OpenGL]] - Come usare OpenGL in Lazarus<br />
<br />
==Documentazione del compilatore Free Pascal==<br />
Oltre che in [http://lazarus-ccr.sourceforge.net/fpcdoc/ questo sito], l'ultima versione della documentazione può essere trovata online anche in una varietà di formati scaricabili nel sito principale del [http://www.freepascal.org/docs.html compilatore Free Pascal].<br />
Inoltre ora c'è anche un sito WiKi per FreePascal [http://www.freepascal.org/wiki/index.php/Main_Page] molto simile nello stile a questo, per permettere agli sviluppatori di stendere documentazione aggiuntiva oltre a quella ufficiale dei documenti FPC riportati di seguito.<br />
<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html Guida utente]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/prog/prog.html Guida del programmatore]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/ref/ref.html Guida di riferimento per le unit di sistema, e per i costrutti Pascal supportati]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/rtl/index.html Manuale di riferimento libreria run-time ]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fcl/index.html Manuale di riferimento libreria componenti liberi]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fpdoc/fpdoc.html Manuale degli strumenti di documentazione del Free Pascal]<br />
*[[Build messages]]<br />
<br />
==I blog di Lazarus==<br />
*[[Adventures of a Newbie|Le avventure di un principiante]] - Un blog di un principiante che comincia a lavorare; con alcune informazioni di aiuto in una specie di diario.<br />
*[http://lazarusroad.blogspot.com/ In viaggio con Lazarus/Freepascal] - Un blog dedicato a registrare le mie esperienze nella programmazione con Lazarus e Freepascal (di Luiz Américo)<br />
*[http://port2laz.blogspot.com/ Porting su Lazarus] - Questo blog descrive il port di una media applicazione (~100 k linee di codice) da D7 con CLX a Lazarus (di Alexsander da Rosa)<br />
*[http://living-lazarus.blogspot.com/ Vivendo Lazarus] - Esplorazione di un singolo delle possibilità di un RAD open source (di [[User:Wibblytim|Wibblytim]]).<br />
*[http://beeography.wordpress.com/tag/object-pascal/ Bee.ography] solo (altro) rumore da Bee!<br />
<br />
{{AutoCategory}}</div>Xnohttps://wiki.freepascal.org/index.php?title=Data_type/it&diff=31115Data type/it2008-09-11T10:40:47Z<p>Xno: Categoria italiano</p>
<hr />
<div>{{Translate}}<br />
<br />
Una '''type''' è una classificazione di una variabile o di una costante. ci sono alcune data types che sono predefinite in certi Pascal compiler (perchè necessarie per fare qualsiasi altro). sono:<br />
<br />
* [[Byte/it|byte]] - numero senza segno da 0 a 255<br />
* [[Char/it|char]] - singolo carattere<br />
* [[Integer|integer]] - numero intero. FPC attualmente usa 4 bytes per interi<br />
* [[real]] - un numero con decimali e un esponente<br />
* [[cardinal]] - una variabile che ha un gruppo di valori di cui può tenere 1 solo;<br />
* [[set]] - una serie di elementi; la dimensione dipende dal nmero di elementi <br />
* [[Pointer|pointer]] - un riferimento a una locazione di memoria, usato generalmente per variabili dinamiche.<br />
* [[record]] - una combinazione delle variabili sopracitate<br />
* [[object]] - un'entità mista che può contenere valori e [[Procedure|procedure]] che ne modificano il valore.<br />
<br />
Altre data types sono generalmentee fatte con combinazioni di queste. FPC aggiunge altre data types.<br />
<br />
{{AutoCategory}}</div>Xnohttps://wiki.freepascal.org/index.php?title=Main_Page/it&diff=31114Main Page/it2008-09-11T10:37:16Z<p>Xno: /* Questa pagina */</p>
<hr />
<div>__NOTOC__<br />
{{Main Page}}<br />
=Benvenuti nella Lazarus-CCR Knowledge-Base=<br />
==A proposito di==<br />
<br />
Lo scopo della Lazarus-CCR Knowledgebase è creare una documentazione completa per Lazarus e per il Free Pascal Compiler, usufruibile online e dotata di strumenti di ricerca. Nonostante il compiler sia ben documentato, Lazarus ha un po' di gap da colmare... per questo motivo questa area è un "documento aperto", un "wiki" dove tutti possono modificare e aggiungere contenuti. Il wiki accelera le cose rendendo possibile fare modifiche e aggiunte direttamente con un browser! Per i tutorials, date uno sguardo a [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] oppure allo [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Una [[Sand Box]] è disponibile per le vostre prove.<br />
<br />
Se incontrate dei problemi, per favore notificateli sul sito degli [http://sourceforge.net/users/vlx/ amministratori] oppure postate un bug report nel sito [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Potete anche lasciare delle note o dei suggerimenti nella pagina [[Site Feedback]].<br />
<br />
==Il progetto Documentazione Lazarus==<br />
;[[Lazarus Documentation/it|Documentazione Lazarus]]<br />
:Tutta la documentazione disponibile e [[Lazarus Documentation/it#Lazarus_and_Pascal_Tutorials|i tutorials]] per il Lazarus IDE (inclusi i manuali per Free Pascal Compiler ) possono essere trovati sulla pagina della [[Lazarus Documentation/it |documentazione Lazarus]]. Molte delle pagine disponibili sono dei "lavori in corso", sentitevi quindi liberi di aggiungere la vostra esperienza a queste sezioni. Se volete potete anche registrarvi e creare una pagina personale con i riferimenti per contattarvi.<br />
<br />
==Downloads==<br />
Tutti i componenti e i pacchetti correntemente disponibili li trovate su [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. Il Free Pascal Compiler e la versione di sviluppo corrente potete reperirli sul sito [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge]. <br />
Documentazione supplementare su questi pacchetti può essere trovata sulla pagina wiki [[Components and Code examples]], dove le persone che hanno contribuito con i pacchetti hanno creato anche le relative pagine di informazioni. Il compilatore e molti altri contributi in codice possono essere trovati sul mirror [http://www.freepascal.org/sdown.html Free Pascal Compiler] e anche su [http://lazarus.freepascal.org Lazarus IDE website].<br />
L'area di download degli Snapshots Lazarus la trovate [[Lazarus Snapshots Downloads | qui]].<br />
<br />
==Mailing lists==<br />
Utenti nuovi ed esperti sono invitati a unirsi alle mailing list disponibili:<br />
Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce annunci] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general generale].<br />
<br />
Un'altra lista molto utilizzata è quella dedicata a [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus], alla sua interfaccia IDE e allo sviluppo.<br />
<br />
Quelle un po' più tecniche dedicate agli sviluppatori le trovate su [http://www.freepascal.org/maillist.html FreePascal].<br />
<br />
==Chi sta lavorando su cosa?==<br />
Se stai convertendo un componente o una libreria o hai bisogno che qualcosa venga convertito, puoi cortesemente segnalarlo sulla pagina dei [[Current conversion projects|Progetti Correnti]].<br />
Queste segnalazioni costituiranno una guida per gli sviluppatori che vogliono convertire componenti a dedicarsi a quelli che sono già stati richiesti... e anche a evitare che due persone si sovrappongano dedicandosi alla conversione del medesimo pacchetto, perdendo tempo inutilmente.<br />
<br />
==Riferimenti, Collegamenti e Risorse==<br />
<br />
===Lazarus IDE===<br />
Novità e informazioni sullo stato dell'IDE Lazarus possono essere trovate sul sito [http://lazarus.freepascal.org Lazarus IDE]. Nuovi release di Lazarus e del compilatore FreePascal possono essere scaricate da qui. L'area [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file ] <br />
contiene anche gli ultimi pacchetti del compilatore e dell'IDE disponibili al download.<br />
<br />
====Progetti Lazarus Attivi====<br />
La lista dei nostri attuali [[Projects using Lazarus|Progetti Lazarus]] con indicati i siti web da cui accedervi e i collegamenti ai file relativi a Lazarus da scaricare.<br />
<br />
====Super Siti e Collezioni di Link====<br />
La nostra collezione corrente di siti relativi a Delphi/Kylix la potete trovare sulla nostra pagina [[Page Of Code Sites]]. Cortesemente se conoscete qualche buon sito, che non fa ancora parte della collezione, provvedere voi ad aggiungerlo.<br />
<br />
====Motori di ricerca specializzati====<br />
Esistono su Internet alcuni siti importanti di ricerca e di raccolta documentazione online che possono essere molto utili per l'insegnamento di nuove tecniche e per la risoluzione dei problemi.<br />
Tamarack Associates gestisce un [http://www.tamaracka.com/search.htm motore di ricerca] molto veloce specifico per gli archivi usenet Borland. Mer Systems Inc. fornisce un [http://www.mers.com/searchsite.html servizio di ricerca] simile.<br />
Un altra fonte notevole di informazioni (notevole l'estensione del [http://www.efg2.com/ sito]) è l'[http://www.efg2.com/Lab/search.htm Earl F. Glynn's Computer Lab and Reference] .<br />
<br />
<br />
=Questa pagina=<br />
Questa pagina è stata tradotta dalla [[Main_Page|pagina principale inglese]]<br />
<br />
Tradotta da [[User:Xno]] e da [[User:ciampix]]<br />
{{AutoCategory}}</div>Xnohttps://wiki.freepascal.org/index.php?title=Template:AutoCategory&diff=31113Template:AutoCategory2008-09-11T10:34:54Z<p>Xno: </p>
<hr />
<div><includeonly><br />
{{ #switch:{{#titleparts:{{PAGENAME}}|1|2}}<br />
| it= [[Category:Italiano|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| es= [[Category:Castellano|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| de= [[Category:Deutsch|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| fi= [[Category:Suomi|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| id= [[Category:Bahasa Indonesia|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| nl= [[Category:Nederlands|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| pl= [[Category:Polski|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| sk= [[Category:Slovensky|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
}}<br />
<!-- Witch title for this category???<br />
*'''عربي (ar)<br />
*'''Español (es)<br />
*'''Français (fr)<br />
*'''日本語 (ja)<br />
*'''Македонски (mk)<br />
*'''Português (pt)<br />
*'''Русский (ru)<br />
*'''Shqip (sq)<br />
*'''Українська (uk)<br />
*'''Việt Nam (vn)<br />
*'''中文(简体)(zh_CN)<br />
*'''中文(正體)(zh_TW)<br />
--><br />
</includeonly><noinclude><br />
This template automatic add a page to category by check title suffix<br />
<br />
=Template use=<br />
Copy and paste this line on top of your page:<br />
<pre><nowiki>{{AutoCategory}}<br />
</nowiki></pre><br />
<br />
[[Category:Template|A]]<br />
<br />
</noinclude></div>Xnohttps://wiki.freepascal.org/index.php?title=Category:Italiano&diff=31112Category:Italiano2008-09-11T10:32:48Z<p>Xno: </p>
<hr />
<div>Questa categoria raccoglie le pagine tradotte in italiano.<br />
<br />
=Come aggiungere pagine=<br />
Occorre aggiungere nelle pagine tradotte in italiano il codice wiki per farle comparire in questa categoria. <br />
<br />
Incolla una delle seguenti righe nella pagina, di solito si aggiunge a fondo pagina.<br />
==Metodo classico==<br />
<nowiki><br />
[[category:Italiano|X]]<br />
</nowiki><br />
<br />
Al posto della X metti la lettera dove vuoi che l'articolo compaia.<br />
==Sistema automatico==<br />
<nowiki><br />
{{AutoCategory}}<br />
</nowiki><br />
<br />
In questo modo viene testato il suffisso "it" del titolo della pagina.</div>Xnohttps://wiki.freepascal.org/index.php?title=Byte/it&diff=31111Byte/it2008-09-11T10:27:32Z<p>Xno: </p>
<hr />
<div>{{Byte}}<br />
<br />
Un '''byte''' è un [[Integer/it|intero]] senza segno che può assumere valori che vanno da 0 a 255. Un byte e un [[Char/it|char]] sono la stessa cosa, con la differenza che il byte può contenere solo valori numerici, mentre il char può contenere un carattere o una parte di una [[String|stringa]], e non può essere usato in espressioni aritmetiche.<br />
<br />
Ad esempio:<br />
<delphi><br />
var <br />
c: byte; <br />
ch: char;<br />
begin<br />
c := 65; ch := 'A'; { sono la stessa azione, ed è legittimo }<br />
c := 'A'; ch := 65; { questo è illegittimo }<br />
end.<br />
</delphi><br />
<br />
l'uso di char o byte come tipi di dato permette una migliore comprensione circa l'utilizzo di una determinata variabile. Il char può essere [[coersion|convertito]] in byte usando la funzione '''[[ord]]'''. I valori delle variabili di tipo byte possono essere convertiti in char tramite '''[[chr]]'''.<br />
<br />
Il precedente programma reso legittimo:<br />
<br />
<delphi><br />
var <br />
c: byte; <br />
ch: char;<br />
begin<br />
c := 65; ch := 'A'; { sono la stessa azione, e sono legittimi }<br />
c := ord('A'); ch := Chr(65); { ora legittimo }<br />
end.<br />
</delphi><br />
<br />
{{Data types}}<br />
<br />
[[category:Pascal]]<br />
{{AutoCategory}}</div>Xnohttps://wiki.freepascal.org/index.php?title=Category:Template&diff=31110Category:Template2008-09-11T10:25:54Z<p>Xno: New page: List of template</p>
<hr />
<div>List of template</div>Xnohttps://wiki.freepascal.org/index.php?title=Template:AutoCategory&diff=31109Template:AutoCategory2008-09-11T10:25:17Z<p>Xno: </p>
<hr />
<div><includeonly><br />
{{ #switch:{{#titleparts:{{PAGENAME}}|1|2}}<br />
| it= [[Category:Italiano|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| es= [[Category:Castellano|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| de= [[Category:Deutsch|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| fi= [[Category:Suomi|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| id= [[Category:Bahasa Indonesia|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| nl= [[Category:Nederlands|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| pl= [[Category:Polski|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| sk= [[Category:Slovensky|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
}}<br />
<!-- Witch title for this category???<br />
*'''عربي (ar)<br />
*'''Español (es)<br />
*'''Français (fr)<br />
*'''日本語 (ja)<br />
*'''Македонски (mk)<br />
*'''Português (pt)<br />
*'''Русский (ru)<br />
*'''Shqip (sq)<br />
*'''Українська (uk)<br />
*'''Việt Nam (vn)<br />
*'''中文(简体)(zh_CN)<br />
*'''中文(正體)(zh_TW)<br />
--><br />
</includeonly><noinclude><br />
This template automatic add a page to category by check title suffix<br />
<br />
=Template use=<br />
Copy and paste this line on top of your page:<br />
<pre><nowiki>{{AutoCategory}}<br />
</nowiki></pre><br />
<br />
[[Category:Template|Categorize]]<br />
<br />
</noinclude></div>Xnohttps://wiki.freepascal.org/index.php?title=Template:AutoCategory&diff=31108Template:AutoCategory2008-09-11T10:23:40Z<p>Xno: New page: <includeonly> {{ #switch:{{#titleparts:{{PAGENAME}}|1|2}} | it= }} | es= }} | de= [[...</p>
<hr />
<div><includeonly><br />
{{ #switch:{{#titleparts:{{PAGENAME}}|1|2}}<br />
| it= [[Category:Italiano|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| es= [[Category:Castellano|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| de= [[Category:Deutsch|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| fi= [[Category:Suomi|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| id= [[Category:Bahasa Indonesia|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| nl= [[Category:Nederlands|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| pl= [[Category:Polski|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
| sk= [[Category:Slovensky|{{#titleparts:{{PAGENAME}}|1|}}]]<br />
}}<br />
<!-- Witch title for this category???<br />
*'''عربي (ar)<br />
*'''Español (es)<br />
*'''Français (fr)<br />
*'''日本語 (ja)<br />
*'''Македонски (mk)<br />
*'''Português (pt)<br />
*'''Русский (ru)<br />
*'''Shqip (sq)<br />
*'''Українська (uk)<br />
*'''Việt Nam (vn)<br />
*'''中文(简体)(zh_CN)<br />
*'''中文(正體)(zh_TW)<br />
--><br />
</includeonly><noinclude><br />
This template automatic add a page to category by check title suffix<br />
<br />
[[Category:Template|Categorize]]<br />
<br />
</noinclude></div>Xnohttps://wiki.freepascal.org/index.php?title=Sand_Box/it&diff=31106Sand Box/it2008-09-11T10:03:36Z<p>Xno: </p>
<hr />
<div>{{Sand Box}}<br />
<br />
{{MenuTranslate | page=Sand Box}}<br />
<br />
{{Translate}}<br />
=Intestazione=<br />
<br />
In order to create a new Language Section follow these steps:<br><br />
Open the page you wish to translate<br><br />
select the Edit command<br><br />
move to bottom of the page and search for the link: "Templates used on this page:"<br><br />
Open the link "Template: nameofthepage"<br><br />
select the Edit command<br><br />
Here you find the list of languages actually created<br><br />
<br />
<nowiki><small></nowiki><br><br />
<nowiki>[[Sand Box| English (en)]]</nowiki><br><br />
<nowiki>[[Sand Box/fr|'''Français (fr)''']]</nowiki><br><br />
<nowiki>[[Sand Box/it|'''Italiano (it)''']]</nowiki><br><br />
<nowiki></small></nowiki><br><br />
<br />
Add a new line with your language<br><br />
Save page<br><br />
<br />
----<br />
<br />
==Link Esterno==<br />
Link esterno: [http://www.example.com link title]<br />
<br />
==Un'immagine==<br />
Questo testo dovrebbe stare vicino alla figura, è così? zxvzxcv zxvc xcv xzcv zxcv zxvc zxvc zxcv zxcv zxcv zxcv xcv xcv xcv xcv zxcv zxcv zxcv xcv zxcv zxcv aaaaaaaaaaaaa<br><br />
<b>E quasta riga dove si posiziona?</b> e questa?<br><br />
<br />
ecc. ecc.</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Vincent&diff=31068User talk:Vincent2008-09-10T09:39:52Z<p>Xno: </p>
<hr />
<div>Sorry Vincent, I forget the version in link:<br />
http://br.geocities.com/hipernetjr/lmdi/lmdi-0.1.zip<br />
<br />
Thanks!<br />
<br />
=Wiki parser=<br />
Hi Vincent,<br />
I try to use some function of wiki parser like {{ #if: namepage}} to write template for language menu. I think parser isn't install.<br />
<br />
You can see this page for help<br />
*http://meta.wikimedia.org/wiki/ParserFunctions#Installation<br />
<br />
This code on local server display a menu for translated page<br />
<pre><nowiki>{{MenuTranslate| page=Main Page}}<br />
</nowiki></pre><br />
<br />
{{MenuTranslate| page=Main Page}}<br />
--[[User:Xno|Xno]] 15:38, 5 September 2008 (CEST)<br />
: Does it work with our version of mediawiki or do I need to upgrade mediawiki to a current version? [[User:Vincent|Vincent]] 23:34, 8 September 2008 (CEST)<br />
<br />
::Version of mediawiki is ok. You must install the parser function, it's only 5 files, and a line in LocalSettings.php, see [http://meta.wikimedia.org/wiki/ParserFunctions#Installation| parser function install] --[[User:Xno|Xno]] 09:11, 9 September 2008 (CEST)<br />
::: I think that I did what is required. Can you test (and document)? [[User:Vincent|Vincent]] 08:02, 10 September 2008 (CEST)<br />
:::: It's ok. I've create [[Template:MenuTranslate]], now it run correct. --[[User:Xno|Xno]] 11:39, 10 September 2008 (CEST)<br />
<br />
: Hello Xno, you don't need a parser for the language templates. You can study the existing templates (like http://wiki.lazarus.freepascal.org/Template:Lazarus_DB_Faq ) and then create new templates. Regards --[[User:Swen|Swen]] 17:46, 5 September 2008 (CEST)<br />
<br />
::Hello Swen, I try to create unique template for al page. I see the existing template, and I think I can contribute with this type of ''template'', where an unique '''MenuTranslate''' is used, for al page that need link to translated page, more simple I think. --[[User:Xno|Xno]] 18:37, 5 September 2008 (CEST)<br />
<br />
:::But then you assume, that all pages have the same translations. But currently that's not true. If you create a template for all pages you will get a lot of 'red' links. I wouldn't like to have such links. --[[User:Swen|Swen]] 23:30, 5 September 2008 (CEST)<br />
<br />
::::More page are TITLEPAGE/SUFIX with the same title. For 'red' links I thik use this #ifexist: <br />
<nowiki>{{#ifexist:}}</nowiki> returns one of two results based on whether or not a particular page exists.<br />
<br />
{{#ifexist:{{{page}}}/de | [[{{{page}}}/de|Deutsch (de)]] }}<br />
<br />
::::--[[User:Xno|Xno]] 02:17, 7 September 2008 (CEST)</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Vincent&diff=31031User talk:Vincent2008-09-09T07:11:02Z<p>Xno: </p>
<hr />
<div>Sorry Vincent, I forget the version in link:<br />
http://br.geocities.com/hipernetjr/lmdi/lmdi-0.1.zip<br />
<br />
Thanks!<br />
<br />
=Wiki parser=<br />
Hi Vincent,<br />
I try to use some function of wiki parser like {{ #if: namepage}} to write template for language menu. I think parser isn't install.<br />
<br />
You can see this page for help<br />
*http://meta.wikimedia.org/wiki/ParserFunctions#Installation<br />
<br />
This code on local server display a menu for translated page<br />
<pre><nowiki>{{MenuTranslate| Testpage}}<br />
</nowiki></pre><br />
<br />
{{MenuTranslate| Testpage}}<br />
--[[User:Xno|Xno]] 15:38, 5 September 2008 (CEST)<br />
: Does it work with our version of mediawiki or do I need to upgrade mediawiki to a current version? [[User:Vincent|Vincent]] 23:34, 8 September 2008 (CEST)<br />
<br />
::Version of mediawiki is ok. You must install the parser function, it's only 5 files, and a line in LocalSettings.php, see [http://meta.wikimedia.org/wiki/ParserFunctions#Installation| parser function install] --[[User:Xno|Xno]] 09:11, 9 September 2008 (CEST)<br />
<br />
: Hello Xno, you don't need a parser for the language templates. You can study the existing templates (like http://wiki.lazarus.freepascal.org/Template:Lazarus_DB_Faq ) and then create new templates. Regards --[[User:Swen|Swen]] 17:46, 5 September 2008 (CEST)<br />
<br />
::Hello Swen, I try to create unique template for al page. I see the existing template, and I think I can contribute with this type of ''template'', where an unique '''MenuTranslate''' is used, for al page that need link to translated page, more simple I think. --[[User:Xno|Xno]] 18:37, 5 September 2008 (CEST)<br />
<br />
:::But then you assume, that all pages have the same translations. But currently that's not true. If you create a template for all pages you will get a lot of 'red' links. I wouldn't like to have such links. --[[User:Swen|Swen]] 23:30, 5 September 2008 (CEST)<br />
<br />
::::More page are TITLEPAGE/SUFIX with the same title. For 'red' links I thik use this #ifexist: <br />
<nowiki>{{#ifexist:}}</nowiki> returns one of two results based on whether or not a particular page exists.<br />
<br />
{{#ifexist:{{{page}}}/de | [[{{{page}}}/de|Deutsch (de)]] }}<br />
<br />
::::--[[User:Xno|Xno]] 02:17, 7 September 2008 (CEST)</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Vincent&diff=30992User talk:Vincent2008-09-07T00:17:07Z<p>Xno: </p>
<hr />
<div>Sorry Vincent, I forget the version in link:<br />
http://br.geocities.com/hipernetjr/lmdi/lmdi-0.1.zip<br />
<br />
Thanks!<br />
<br />
=Wiki parser=<br />
Hi Vincent,<br />
I try to use some function of wiki parser like {{ #if: namepage}} to write template for language menu. I think parser isn't install.<br />
<br />
You can see this page for help<br />
*http://meta.wikimedia.org/wiki/ParserFunctions#Installation<br />
<br />
This code on local server display a menu for translated page<br />
<pre><nowiki>{{MenuTranslate| Testpage}}<br />
</nowiki></pre><br />
<br />
{{MenuTranslate| Testpage}}<br />
--[[User:Xno|Xno]] 15:38, 5 September 2008 (CEST)<br />
<br />
: Hello Xno, you don't need a parser for the language templates. You can study the existing templates (like http://wiki.lazarus.freepascal.org/Template:Lazarus_DB_Faq ) and then create new templates. Regards --[[User:Swen|Swen]] 17:46, 5 September 2008 (CEST)<br />
<br />
::Hello Swen, I try to create unique template for al page. I see the existing template, and I think I can contribute with this type of ''template'', where an unique '''MenuTranslate''' is used, for al page that need link to translated page, more simple I think. --[[User:Xno|Xno]] 18:37, 5 September 2008 (CEST)<br />
<br />
:::But then you assume, that all pages have the same translations. But currently that's not true. If you create a template for all pages you will get a lot of 'red' links. I wouldn't like to have such links. --[[User:Swen|Swen]] 23:30, 5 September 2008 (CEST)<br />
<br />
::::More page are TITLEPAGE/SUFIX with the same title. For 'red' links I thik use this #ifexist: <br />
<nowiki>{{#ifexist:}}</nowiki> returns one of two results based on whether or not a particular page exists.<br />
<br />
{{#ifexist:{{{page}}}/de | [[{{{page}}}/de|Deutsch (de)]] }}<br />
<br />
::::--[[User:Xno|Xno]] 02:17, 7 September 2008 (CEST)</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Vincent&diff=30969User talk:Vincent2008-09-05T16:37:12Z<p>Xno: </p>
<hr />
<div>Sorry Vincent, I forget the version in link:<br />
http://br.geocities.com/hipernetjr/lmdi/lmdi-0.1.zip<br />
<br />
Thanks!<br />
<br />
=Wiki parser=<br />
Hi Vincent,<br />
I try to use some function of wiki parser like {{ #if: namepage}} to write template for language menu. I think parser isn't install.<br />
<br />
You can see this page for help<br />
*http://meta.wikimedia.org/wiki/ParserFunctions#Installation<br />
<br />
This code on local server display a menu for translated page<br />
<pre><nowiki>{{MenuTranslate| Testpage}}<br />
</nowiki></pre><br />
<br />
{{MenuTranslate| Testpage}}<br />
--[[User:Xno|Xno]] 15:38, 5 September 2008 (CEST)<br />
<br />
: Hello Xno, you don't need a parser for the language templates. You can study the existing templates (like http://wiki.lazarus.freepascal.org/Template:Lazarus_DB_Faq ) and then create new templates. Regards --[[User:Swen|Swen]] 17:46, 5 September 2008 (CEST)<br />
<br />
::Hello Swen, I try to create unique template for al page. I see the existing template, and I think I can contribute with this type of ''template'', where an unique '''MenuTranslate''' is used, for al page that need link to translated page, more simple I think. --[[User:Xno|Xno]] 18:37, 5 September 2008 (CEST)</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Vincent&diff=30967User talk:Vincent2008-09-05T13:38:46Z<p>Xno: </p>
<hr />
<div>Sorry Vincent, I forget the version in link:<br />
http://br.geocities.com/hipernetjr/lmdi/lmdi-0.1.zip<br />
<br />
Thanks!<br />
<br />
=Wiki parser=<br />
Hi Vincent,<br />
I try to use some function of wiki parser like {{ #if: namepage}} to write template for language menu. I think parser isn't install.<br />
<br />
You can see this page for help<br />
*http://meta.wikimedia.org/wiki/ParserFunctions#Installation<br />
<br />
This code on local server display a menu for translated page<br />
<pre><nowiki>{{MenuTranslate| Testpage}}<br />
</nowiki></pre><br />
<br />
{{MenuTranslate| Testpage}}<br />
--[[User:Xno|Xno]] 15:38, 5 September 2008 (CEST)</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Xno&diff=30965User talk:Xno2008-09-05T13:27:43Z<p>Xno: </p>
<hr />
<div>Xno, can you put some contact information on your [[User:Xno | user page]]? Thanks in advance, [[User:Vincent|Vincent]] 05:01, 23 Feb 2005 (PST)<br />
: Thanks. [[User:Vincent|Vincent]] 07:30, 24 Feb 2005 (PST)<br />
<br />
<s>Sorry for the late response. Could you please try to send the example again. If it still doesn't work send it to chtk at xs4all.nl, please.</s><br />
Oops, found your examples on [[Current conversion projects]]. Will include them in a new package of powerpdf.<br />
--[[User:Chtk|Chtk]] 09:56, 7 Dec 2005 (CET)<br />
<br />
{{MenuTranslate|page = }}<br />
<br />
{{#ifexist:Aiuto:ParserFunctions|Sì|No}}<br />
<br />
{{#ifexist:Help:ParserFunctions|Sì|No}}<br />
<br />
{{ #titleparts: {{PAGENAME}} | 1 | 0 }}</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Xno&diff=30964User talk:Xno2008-09-05T13:22:16Z<p>Xno: </p>
<hr />
<div>Xno, can you put some contact information on your [[User:Xno | user page]]? Thanks in advance, [[User:Vincent|Vincent]] 05:01, 23 Feb 2005 (PST)<br />
: Thanks. [[User:Vincent|Vincent]] 07:30, 24 Feb 2005 (PST)<br />
<br />
<s>Sorry for the late response. Could you please try to send the example again. If it still doesn't work send it to chtk at xs4all.nl, please.</s><br />
Oops, found your examples on [[Current conversion projects]]. Will include them in a new package of powerpdf.<br />
--[[User:Chtk|Chtk]] 09:56, 7 Dec 2005 (CET)<br />
<br />
{{MenuTranslate|page = }}<br />
<br />
{{#ifexist:Aiuto:ParserFunctions|Sì|No}}<br />
<br />
{{#ifexist:Help:ParserFunctions|Sì|No}}</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Xno&diff=30960User talk:Xno2008-09-05T13:09:04Z<p>Xno: </p>
<hr />
<div>Xno, can you put some contact information on your [[User:Xno | user page]]? Thanks in advance, [[User:Vincent|Vincent]] 05:01, 23 Feb 2005 (PST)<br />
: Thanks. [[User:Vincent|Vincent]] 07:30, 24 Feb 2005 (PST)<br />
<br />
<s>Sorry for the late response. Could you please try to send the example again. If it still doesn't work send it to chtk at xs4all.nl, please.</s><br />
Oops, found your examples on [[Current conversion projects]]. Will include them in a new package of powerpdf.<br />
--[[User:Chtk|Chtk]] 09:56, 7 Dec 2005 (CET)<br />
<br />
{{MenuTranslate|page = }}</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Xno&diff=30955User talk:Xno2008-09-05T13:03:37Z<p>Xno: </p>
<hr />
<div>Xno, can you put some contact information on your [[User:Xno | user page]]? Thanks in advance, [[User:Vincent|Vincent]] 05:01, 23 Feb 2005 (PST)<br />
: Thanks. [[User:Vincent|Vincent]] 07:30, 24 Feb 2005 (PST)<br />
<br />
<s>Sorry for the late response. Could you please try to send the example again. If it still doesn't work send it to chtk at xs4all.nl, please.</s><br />
Oops, found your examples on [[Current conversion projects]]. Will include them in a new package of powerpdf.<br />
--[[User:Chtk|Chtk]] 09:56, 7 Dec 2005 (CET)<br />
<br />
{{MenuTranslate}}</div>Xnohttps://wiki.freepascal.org/index.php?title=Lazarus_DB_Faq/it&diff=30954Lazarus DB Faq/it2008-09-05T11:18:13Z<p>Xno: </p>
<hr />
<div>{{Lazarus DB Faq}}<br />
<!-- {{MenuTranslate}} --><br />
[[category:Italiano|D]]<br />
<br />
== In generale ==<br />
<br />
Questa FAQ riguarda la programmazione di database con Lazarus.<br />
<br />
=== Dove posso trovare altre FAQ? ===<br />
<br />
Sul sito ufficiale www.lazarus.freepascal.org. c'è un'altra FAQ. [[Lazarus Faq|Qui]] troverete una pagina che era partita come una copia della FAQ di www.lazarus.freepascal.org .<br />
<br />
=== Dove posso trovare dei componenti per database? ===<br />
<br />
Al momento i componenti SQLdb sono tra i package di Lazarus, dovete soltanto installarli. Nella directory [$LazarusDir]/components troverete una sottodirectory SQLdb. Installate sqldblaz.lpk e avrete la possibilità di connettervi ai server MySQL, Interbase / Firebird e Postgres.<br />
[[Install Packages|Qui]] troverete informazioni su come installare i package.<br />
<br />
=== Esistono altri componenti? ===<br />
<br />
Sì. I [http://zeoslib.sourceforge.net/index.php componenti ZEOS] sono stati convertiti per Lazarus.<br />
<br>Avrete bisogno di scaricare ZEOSDBO_Rework dal server [http://sourceforge.net/cvs/?group_id=35994 cvs di ZEOS].<br />
<br>Leggete anche questo tutorial su [[Zeos_tutorial|Zeos]].<br />
<br>[http://pdo.sourceforge.net Pascal Data Objects] funziona sia con Delphi che con FPC 2.0 (MySQL e Firebird)<br />
<br />
== IB / FB ==<br />
<br />
=== Come mi connetto da Linux a un server Windows? ===<br />
Immettere il percorso corretto di un database su un server Windows da un client Linux non è molto chiaro. <br />
<br />
Diciamo che avete installato firebird in F:\Program Files\firebird\. Il database di esempio employee.fdb verrà quindi installato nella directory F:\Program Files\firebird\examples\ . L'indirizzo IP del vostro computer è 192.168.2.100.<br />
<br />
Quindi inserire il seguente nome per il database <br />
192.168.2.100:F:\Program Files\firebird\examples\employee.fdb<br />
nel vostro IBConnection vi connetterà al database richiesto.<br />
<br />
Notate che non dovete inserire nessun valore per la proprietà hostname!<br />
<br />
== MySQL ==<br />
<br />
=== Quale versione di mySQL è supportata? ===<br />
<br />
Al momento MySQL 4.0, MySQL 4.1 e MySQL 5.0 sono supportate dai componenti SQLdb. Assicuratevi di utilizzare il componente per la connessione adeguato per la versione della libreria del vostro client. Quindi se avete installato la libreria client per MySQL 4.1 allora dovrete utilizzare il componente TMySQL41Connection, anche se sul server gira la versione 4.0 o 5.0.<br />
<br />
==== Pascal Data Objects ====<br />
Ora c'è un'alternativa. Le funzioni introdotte in MySQL 4.1 e 5.0 come prepared statements, binding e stored procedures sono supportate da una API per database chiamata Pascal Data Objects, che si ispira a PHP Data Objects. Il codice e la documentazione necessaria per usare questa nuova API è disponibile su sourceforge:<br />
<br />
http://pdo.sourceforge.net<br />
<br />
30 Gennaio 2007: sono stati aggiunti a PDO i driver per Firebird 1.5 e 2.0<br />
<br />
== PostgreSQL ==<br />
<br />
Potete connettervi a un database PostgreSQL tramite il componente TPQConnection. Questo componente utilizza per la connessione la libreria libpq di PostgreSQL [http://www.postgresql.org/docs/8.0/interactive/libpq.html], così potrete connettervi facilmente a praticamente ogni database PostgreSQL, ma il componente non supporta le seguenti opzioni di connessione:<br />
* Port<br />
* ClientEncoding<br />
Probabilmente ci sono altri parametri di connessione non supportati.</div>Xnohttps://wiki.freepascal.org/index.php?title=Lazarus_DB_Faq/it&diff=30952Lazarus DB Faq/it2008-09-05T11:12:08Z<p>Xno: Categoria Italiano</p>
<hr />
<div><!-- {{Lazarus DB Faq}} --><br />
{{MenuTranslate}}<br />
[[category:Italiano|D]]<br />
<br />
== In generale ==<br />
<br />
Questa FAQ riguarda la programmazione di database con Lazarus.<br />
<br />
=== Dove posso trovare altre FAQ? ===<br />
<br />
Sul sito ufficiale www.lazarus.freepascal.org. c'è un'altra FAQ. [[Lazarus Faq|Qui]] troverete una pagina che era partita come una copia della FAQ di www.lazarus.freepascal.org .<br />
<br />
=== Dove posso trovare dei componenti per database? ===<br />
<br />
Al momento i componenti SQLdb sono tra i package di Lazarus, dovete soltanto installarli. Nella directory [$LazarusDir]/components troverete una sottodirectory SQLdb. Installate sqldblaz.lpk e avrete la possibilità di connettervi ai server MySQL, Interbase / Firebird e Postgres.<br />
[[Install Packages|Qui]] troverete informazioni su come installare i package.<br />
<br />
=== Esistono altri componenti? ===<br />
<br />
Sì. I [http://zeoslib.sourceforge.net/index.php componenti ZEOS] sono stati convertiti per Lazarus.<br />
<br>Avrete bisogno di scaricare ZEOSDBO_Rework dal server [http://sourceforge.net/cvs/?group_id=35994 cvs di ZEOS].<br />
<br>Leggete anche questo tutorial su [[Zeos_tutorial|Zeos]].<br />
<br>[http://pdo.sourceforge.net Pascal Data Objects] funziona sia con Delphi che con FPC 2.0 (MySQL e Firebird)<br />
<br />
== IB / FB ==<br />
<br />
=== Come mi connetto da Linux a un server Windows? ===<br />
Immettere il percorso corretto di un database su un server Windows da un client Linux non è molto chiaro. <br />
<br />
Diciamo che avete installato firebird in F:\Program Files\firebird\. Il database di esempio employee.fdb verrà quindi installato nella directory F:\Program Files\firebird\examples\ . L'indirizzo IP del vostro computer è 192.168.2.100.<br />
<br />
Quindi inserire il seguente nome per il database <br />
192.168.2.100:F:\Program Files\firebird\examples\employee.fdb<br />
nel vostro IBConnection vi connetterà al database richiesto.<br />
<br />
Notate che non dovete inserire nessun valore per la proprietà hostname!<br />
<br />
== MySQL ==<br />
<br />
=== Quale versione di mySQL è supportata? ===<br />
<br />
Al momento MySQL 4.0, MySQL 4.1 e MySQL 5.0 sono supportate dai componenti SQLdb. Assicuratevi di utilizzare il componente per la connessione adeguato per la versione della libreria del vostro client. Quindi se avete installato la libreria client per MySQL 4.1 allora dovrete utilizzare il componente TMySQL41Connection, anche se sul server gira la versione 4.0 o 5.0.<br />
<br />
==== Pascal Data Objects ====<br />
Ora c'è un'alternativa. Le funzioni introdotte in MySQL 4.1 e 5.0 come prepared statements, binding e stored procedures sono supportate da una API per database chiamata Pascal Data Objects, che si ispira a PHP Data Objects. Il codice e la documentazione necessaria per usare questa nuova API è disponibile su sourceforge:<br />
<br />
http://pdo.sourceforge.net<br />
<br />
30 Gennaio 2007: sono stati aggiunti a PDO i driver per Firebird 1.5 e 2.0<br />
<br />
== PostgreSQL ==<br />
<br />
Potete connettervi a un database PostgreSQL tramite il componente TPQConnection. Questo componente utilizza per la connessione la libreria libpq di PostgreSQL [http://www.postgresql.org/docs/8.0/interactive/libpq.html], così potrete connettervi facilmente a praticamente ogni database PostgreSQL, ma il componente non supporta le seguenti opzioni di connessione:<br />
* Port<br />
* ClientEncoding<br />
Probabilmente ci sono altri parametri di connessione non supportati.</div>Xnohttps://wiki.freepascal.org/index.php?title=Category:Italiano&diff=30949Category:Italiano2008-09-05T11:01:11Z<p>Xno: New page: Questa categoria raccoglie le pagine tradotte in italiano. Occorre aggiungere nelle pagine italiane il codice wiki per farle comparire nelle categorie: <nowiki> X ...</p>
<hr />
<div>Questa categoria raccoglie le pagine tradotte in italiano.<br />
<br />
Occorre aggiungere nelle pagine italiane il codice wiki per farle comparire nelle categorie:<br />
<br />
<nowiki><br />
[[category:Italiano|X]]<br />
</nowiki><br />
<br />
Al posto della X metti la lettera dove vuoi che l'articolo compaia.</div>Xnohttps://wiki.freepascal.org/index.php?title=Lazarus_DB_Faq/it&diff=30948Lazarus DB Faq/it2008-09-05T10:56:25Z<p>Xno: Categoria Italiano</p>
<hr />
<div>{{Lazarus DB Faq}}<br />
[[category:Italiano|D]]<br />
<br />
== In generale ==<br />
<br />
Questa FAQ riguarda la programmazione di database con Lazarus.<br />
<br />
=== Dove posso trovare altre FAQ? ===<br />
<br />
Sul sito ufficiale www.lazarus.freepascal.org. c'è un'altra FAQ. [[Lazarus Faq|Qui]] troverete una pagina che era partita come una copia della FAQ di www.lazarus.freepascal.org .<br />
<br />
=== Dove posso trovare dei componenti per database? ===<br />
<br />
Al momento i componenti SQLdb sono tra i package di Lazarus, dovete soltanto installarli. Nella directory [$LazarusDir]/components troverete una sottodirectory SQLdb. Installate sqldblaz.lpk e avrete la possibilità di connettervi ai server MySQL, Interbase / Firebird e Postgres.<br />
[[Install Packages|Qui]] troverete informazioni su come installare i package.<br />
<br />
=== Esistono altri componenti? ===<br />
<br />
Sì. I [http://zeoslib.sourceforge.net/index.php componenti ZEOS] sono stati convertiti per Lazarus.<br />
<br>Avrete bisogno di scaricare ZEOSDBO_Rework dal server [http://sourceforge.net/cvs/?group_id=35994 cvs di ZEOS].<br />
<br>Leggete anche questo tutorial su [[Zeos_tutorial|Zeos]].<br />
<br>[http://pdo.sourceforge.net Pascal Data Objects] funziona sia con Delphi che con FPC 2.0 (MySQL e Firebird)<br />
<br />
== IB / FB ==<br />
<br />
=== Come mi connetto da Linux a un server Windows? ===<br />
Immettere il percorso corretto di un database su un server Windows da un client Linux non è molto chiaro. <br />
<br />
Diciamo che avete installato firebird in F:\Program Files\firebird\. Il database di esempio employee.fdb verrà quindi installato nella directory F:\Program Files\firebird\examples\ . L'indirizzo IP del vostro computer è 192.168.2.100.<br />
<br />
Quindi inserire il seguente nome per il database <br />
192.168.2.100:F:\Program Files\firebird\examples\employee.fdb<br />
nel vostro IBConnection vi connetterà al database richiesto.<br />
<br />
Notate che non dovete inserire nessun valore per la proprietà hostname!<br />
<br />
== MySQL ==<br />
<br />
=== Quale versione di mySQL è supportata? ===<br />
<br />
Al momento MySQL 4.0, MySQL 4.1 e MySQL 5.0 sono supportate dai componenti SQLdb. Assicuratevi di utilizzare il componente per la connessione adeguato per la versione della libreria del vostro client. Quindi se avete installato la libreria client per MySQL 4.1 allora dovrete utilizzare il componente TMySQL41Connection, anche se sul server gira la versione 4.0 o 5.0.<br />
<br />
==== Pascal Data Objects ====<br />
Ora c'è un'alternativa. Le funzioni introdotte in MySQL 4.1 e 5.0 come prepared statements, binding e stored procedures sono supportate da una API per database chiamata Pascal Data Objects, che si ispira a PHP Data Objects. Il codice e la documentazione necessaria per usare questa nuova API è disponibile su sourceforge:<br />
<br />
http://pdo.sourceforge.net<br />
<br />
30 Gennaio 2007: sono stati aggiunti a PDO i driver per Firebird 1.5 e 2.0<br />
<br />
== PostgreSQL ==<br />
<br />
Potete connettervi a un database PostgreSQL tramite il componente TPQConnection. Questo componente utilizza per la connessione la libreria libpq di PostgreSQL [http://www.postgresql.org/docs/8.0/interactive/libpq.html], così potrete connettervi facilmente a praticamente ogni database PostgreSQL, ma il componente non supporta le seguenti opzioni di connessione:<br />
* Port<br />
* ClientEncoding<br />
Probabilmente ci sono altri parametri di connessione non supportati.</div>Xnohttps://wiki.freepascal.org/index.php?title=User_talk:Chtk&diff=3584User talk:Chtk2005-11-05T16:47:55Z<p>Xno: </p>
<hr />
<div>I'm try to send you an email with PowerPdf example, but your server refuse my address, then I've post a link to example package. In next release you can include the example on PowerPDF package.<br />
--[[User:Xno|Xno]] 17:47, 5 Nov 2005 (CET)</div>Xnohttps://wiki.freepascal.org/index.php?title=Current_conversion_projects&diff=3685Current conversion projects2005-11-05T15:25:34Z<p>Xno: /* PowerPDF for Lazarus */</p>
<hr />
<div>This page contains a list of applications and components, that are currently being converted. If the conversion has been finished (or before if you want more user feedback), the components can be moved to [[Components and Code examples]] and the applications to [[Projects using Lazarus]]. If a description page has been made, the applications or components can be offered for download at the [http://sourceforge.net/project/showfiles.php?group_id=92177 sourceforge files area].<br />
==Applications==<br />
'''Add an application you're converting here'''<br />
<br />
==Components==<br />
===Large Display Components===<br />
Almost finished:<br />
* TLCD99<br />
* TLCDLabel<br />
* TAnalogueclock<br />
Everthing compiles for SGraph 2.4 except the data series unit that requires the variant support that's coming with the 1.9 branch of FPC.<br />
<br />
I've also converted a small trend recorder variant of Mark Dodson's original but I'm thinking about rewriting it. If anyone is interested in any of these components, let me know. - [[User:VlxAdmin|VlxAdmin]]<br />
<br />
===Indy===<br />
[http://www.indyproject.org/ Internet Direct (Indy)] is an open source TCP/IP socket component suite comprised of popular Internet protocols. For more info see [http://indy4lazarus.sourceforge.net/ indy4lazarus].<br />
<br />
===FormStorage===<br />
[http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=98986 FormStorage] <br />
is a component to save all selected properties of a form in an xml file.<br />
<br />
===PowerPDF for Lazarus===<br />
[http://www.est.hi-ho.ne.jp/takeshi_kanno/powerpdf/index.html Original PowerPDF site]<br />
PowerPdf is a LCL suite of components to create PDF documents visually. With this components you can design PDF documents easily on Lazarus IDE.<br />
Based in PowerPDF version 0.9, status is 95% finished. -[[User:jesusrmx|jesusrmx]]<br />
<br />
[[User:Chtk|Chtk]] also started a port of PowerPdf for Lazarus. The result of this effort has been merged with the port done by jesusrmx. A package, which should have all the functionality of the Delphi version, is availabe [http://iquad.nl/files/powerpdf/ here].<br />
<br />
[[User:Xno|Xno]] have port some example of PowerPdf to Lazarus. This code is available [http://xoomer.virgilio.it/xno/xnocbt.html here].<br />
<br />
==Libraries/headers==<br />
===dxGetText===<br />
[[dxGetText | Lazarus dxGetText]] is a conversion by [http://sourceforge.net/users/golivier/ Olivier Guilbaud] of the [http://dybdahl.dk/dxgettext/ dxGetText project]. From the dxGetTest website: "Initially, this project used a Windows port of the GNU gettext library, but has made it much further and today it is a complete reimplementation of the GNU gettext library with many enhancements".<br />
<br />
===Pascal Script===<br />
[http://wiki.lazarus.freepascal.org/index.php/Pascal_Script Pascal Script] is a ported to Lazarus REMObjects Pascal Script interpreter [http://www.remobjects.com/page.asp?id={9A30A672-62C8-4131-BA89-EEBBE7E302E6} RemObjects Pascal Script home page] .Works on Win32 and Linux.100% completed (maybe even without bugs).Some fixes done by Boguslaw Brandys.Need testers especially under Linux.Screenshots : [http://wiki.lazarus.freepascal.org/index.php/Image:Rops_windows.png under Windows]<br />
[http://wiki.lazarus.freepascal.org/index.php/Image:Rops_linux.png under Linux]<br />
----<br />
<br />
Sources have been sent to author (Carlo Kok) and are now available from RemObjects SVN. I hope it will be also available in Lazarus installer as additional components.<br />
--[[User:Forest|Forest]] 12:22, 19 Oct 2005 (CEST)<br />
<br />
==Requested Components==<br />
===devphp===<br />
[http://sourceforge.net/projects/devphp/ devphp] is an IDE for PHP written in Delphi/Kylix. It's got a lot of nice features and would be very handy to have compiling under Lazarus. The author has run out of time to work on it so it would probably be a good candidate for conversion. [[User:VlxAdmin|Tom]]<br />
<br />
===ZEOS Data Objects===<br />
[http://sourceforge.net/projects/zeoslib ZEOS Data Objects] is a set of components for accessing directly the various dabase backends that you might need to. MySQL, Postgres and others, on Delphi it compiles directly into the .exe, only requiring that you have the appropriate DLL installed (postgres.dll, mysql.dll). <strike> It would be fabulous to get these components working under Lazarus as we can then write real database apps quickly </strike>. [[User:MartynRanyard]]<br />
<br />
'''Note:''' this functionality is being implemented in the sqldb-components. Not as good as ZEOS yet, but worth a look. [[User:Loesje]]<br />
<br />
'''Note 2:''' <font color=blue>The conversion of these components has recently been completed</font>. Take a look at [http://sourceforge.net/projects/zeoslib ZEOS Data Objects] and download ZEOSDBO_REWORK package from CVS. Also check this [[Zeos_tutorial|Tutorial]] [[user:Matthijs|Matthijs]]<br />
<br />
===Usercontrol===<br />
[http://sourceforge.net/projects/usercontrol Usercontrol] Delphi (and Kylix) component package to user and profile management and access control. Supports ADO, DBX, IBX, BDE, IBO, FIBPlus, ZeosDBO, DBISAM, MDO, MyDAC, MySQLDAC and ASTA3. Access control auto-extract TMenu, TActionList and TActionManager items. And MODULE for UIB component.<br />
<br />
===Report Manager===<br />
[http://reportman.sourceforge.net Report Manager] Component for creating reports from database with visual editor,band support,conditional printing,evaluating saving to XLS,PDF,HTML.<br />
<br />
===Other applications, libraries and components===<br />
'''Add an application, library or component that you need here'''<br />
<br />
The Delphi IDE, but not Kylix, has a File -> Print selection which allows either the current source file or the current Form to be sent to the printer. I know there are lots of ways in both Linux and Windows to have files and screenshots printed, but it would be a convenience to be able to initiate printing direct from the IDE, with all the formatting and highlighting that you see on the screen. [[User:Kirkpatc]]<br />
<br />
Support for Paradox and Access databasing (ADO, DAO or ODBC) in at least a Win32 environment. A package named KADao implements this and is free in Delphi, maybe someone can translate this. If databasing is already implemented, maybe a way for new users to find it???[[User:Micdutoit]]<br />
<br />
A way to interface with Python would be nice. In Delphi a package PythonForDelphi does this. Can someone translate this one? [[User:Micdutoit]]<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=CurrentProjects version]. Original by [[User:VlxAdmin | Tom Lisjac]].</div>Xnohttps://wiki.freepascal.org/index.php?title=Main_Page/it&diff=2882Main Page/it2005-08-26T10:38:09Z<p>Xno: /* Benvenuti nella Lazarus-CCR Knowledge-Base */ eliminato link alla home page inglese</p>
<hr />
<div>__NOTOC__<br />
{{Main Page}}<br />
=Benvenuti nella Lazarus-CCR Knowledge-Base=<br />
==Approposito di==<br />
<br />
Lo scopo della Lazarus-CCR Knowledgebase è creare una documentazione completa per Lazarus e per il Free Pascal Compiler, usufruibile online e dotata di strumenti di ricerca. Nonostante il compiler sia ben documentato, Lazzarus ha un po' di gap da colmare... per questo motivo questa area è un "documento aperto", un "wiki" dove tutti possono modificare e aggiungere contenuti. Il wiki accellera le cose rendendo possible fare modifiche e aggiunte direttamente con un browser! Per i tutorials, date uno sguardo a [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] oppure allo [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Una [[Sand Box]] è disponibile per le vostre prove.<br />
<br />
Se incontrate dei problemi, per favore notificateli sul sito degli [http://sourceforge.net/users/vlx/ amministratori] oppure postate un bug report nel sito [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Potete anche lasciare delle note o dei suggerimenti nella pagina [[Site Feedback]].<br />
<br />
==Il progetto Documentazione Lazarus==<br />
;[[Lazarus Documentation |Documentazione Lazarus]]<br />
:Tutta la documentazione disponibile e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|i tutorials]] per il Lazarus IDE (inclusi i manuali per Free Pascal Compiler ) possono essere trovati sulla pagina della [[Lazarus Documentation |documentazione Lazarus]]. Molte delle pagine disponibili sono dei "lavori in corso", sentitevi quindi liberi di aggiungere la vostra esperienza a queste sezioni. Se volete potete anche registrarvi e creare una pagina personale con i riferimenti per contatarvi.<br />
<br />
==Downloads==<br />
Tutti i componenti e i pacchetti correntemente disponibili li trovate su [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. Il Free Pascal Compiler e la versione di sviluppo corrente potete reperirli sul sito [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge]. <br />
Documentazione supplementare su questi pacchetti può essere trovata sulla pagina wiki [[Code And Components]], dove le persone che hanno contribuito con i pacchetti hanno creato anche le relative pagine di informazioni. Il compilatore e molti altri contributi in codice possono essere trovati sul mirror [http://www.freepascal.org/sdown.html Free Pascal Compiler] e anche su [http://lazarus.freepascal.org Lazarus IDE website].<br />
L'area di download degli Snapshots Lazarus la trovate [[Lazarus Snapshots Downloads | qui]].<br />
<br />
==Mailing lists==<br />
Utenti nuovi ed esperti sono invitati a unirsi alle mailing list disponibili:<br />
Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce annunci] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general generale].<br />
<br />
Un'altra lista molto utilizzata è quella dedicata a [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus], alla sua interfaccia IDE e allo sviluppo.<br />
<br />
Quelle un po' più tecniche dedicate agli sviluppatori le trovate su [http://www.freepascal.org/maillist.html FreePascal].<br />
<br />
==Chi sta lavorando su cosa?==<br />
Se stai convertendo un componente o una libreria o hai bisogno che qualcosa venga convertito, puoi cortesemente segnalarlo sulla pagina dei [[Current Projects|Progetti Correnti]].<br />
Queste segnalazioni costituiranno una guida per gli sviluppatori che vogliono convertire componenti a dedicarsi a quelli che sono già stati richiesti... e anche a evitare che due persone si sovrappongano dedicandosi alla conversione del medesimo pacchetto, perdendo tempo inutilmente.<br />
<br />
==Riferimenti, Collegamenti e Risorse==<br />
<br />
===Lazarus IDE===<br />
Novità e informazioni sullo stato dell'IDE Lazarus possono essere trovate sul sito [http://lazarus.freepascal.org Lazarus IDE]. Nuovi release di Lazarus e del compilatore FreePascal possono essere scaricate da qui. L'area [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file ] <br />
contiene anche gli ultimi pacchetti del compilatore e dell'IDE disponibili al download.<br />
<br />
====Proggetti Lazarus Attivi====<br />
La lista dei nostri attuali [[Lazarus Projects|Proggetti Lazarus]] con indicati i siti web da cui accedervi e i collegamenti ai file relativi a Lazarus da scaricare.<br />
<br />
====Super Sites and Link Farms====<br />
La nostra collezione corrente di siti relativi a Delphi/Kylix la potete trovare sulla nostra pagina [[Page Of Code Sites]]. Cortesemente se conoscete qualche buon sito, che non fa ancora parte della collezione, provvedere voi ad aggiungerlo.<br />
<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduzioni disponibili=<br />
In ordine alfabetico:<br />
* [[Main Page/es | Español (Spanish)]]<br />
* [[Main Page/de | German (Deutsch)]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
* [[Main Page/ptbr | Portuguese (Brazil)]]<br />
* [[Main Page/sk | Slovak]]<br />
<br />
=Questa pagina=<br />
Questa pagina è stata tradotta dalla [[Main_Page|pagina principale inglese]]<br />
<br />
Tradotta da [[User:Xno]]</div>Xnohttps://wiki.freepascal.org/index.php?title=Main_Page/it&diff=2658Main Page/it2005-08-25T12:36:12Z<p>Xno: /* Questa pagina */</p>
<hr />
<div>__NOTOC__<br />
{{Main Page}}<br />
=Benvenuti nella Lazarus-CCR Knowledge-Base=<br />
==Approposito di==<br />
<br />
Lo scopo della [http:../ Lazarus-CCR] Knowledgebase è creare una documentazione completa per Lazarus e per il Free Pascal Compiler, usufruibile online e dotata di strumenti di ricerca. Nonostante il compiler sia ben documentato, Lazzarus ha un po' di gap da colmare... per questo motivo questa area è un "documento aperto", un "wiki" dove tutti possono modificare e aggiungere contenuti. Il wiki accellera le cose rendendo possible fare modifiche e aggiunte direttamente con un browser! Per i tutorials, date uno sguardo a [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] oppure allo [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Una [[Sand Box]] è disponibile per le vostre prove.<br />
<br />
Se incontrate dei problemi, per favore notificateli sul sito degli [http://sourceforge.net/users/vlx/ amministratori] oppure postate un bug report nel sito [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Potete anche lasciare delle note o dei suggerimenti nella pagina [[Site Feedback]].<br />
<br />
==Il progetto Documentazione Lazarus==<br />
;[[Lazarus Documentation |Documentazione Lazarus]]<br />
:Tutta la documentazione disponibile e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|i tutorials]] per il Lazarus IDE (inclusi i manuali per Free Pascal Compiler ) possono essere trovati sulla pagina della [[Lazarus Documentation |documentazione Lazarus]]. Molte delle pagine disponibili sono dei "lavori in corso", sentitevi quindi liberi di aggiungere la vostra esperienza a queste sezioni. Se volete potete anche registrarvi e creare una pagina personale con i riferimenti per contatarvi.<br />
<br />
==Downloads==<br />
Tutti i componenti e i pacchetti correntemente disponibili li trovate su [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. Il Free Pascal Compiler e la versione di sviluppo corrente potete reperirli sul sito [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge]. <br />
Documentazione supplementare su questi pacchetti può essere trovata sulla pagina wiki [[Code And Components]], dove le persone che hanno contribuito con i pacchetti hanno creato anche le relative pagine di informazioni. Il compilatore e molti altri contributi in codice possono essere trovati sul mirror [http://www.freepascal.org/sdown.html Free Pascal Compiler] e anche su [http://lazarus.freepascal.org Lazarus IDE website].<br />
L'area di download degli Snapshots Lazarus la trovate [[Lazarus Snapshots Downloads | qui]].<br />
<br />
==Mailing lists==<br />
Utenti nuovi ed esperti sono invitati a unirsi alle mailing list disponibili:<br />
Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce annunci] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general generale].<br />
<br />
Un'altra lista molto utilizzata è quella dedicata a [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus], alla sua interfaccia IDE e allo sviluppo.<br />
<br />
Quelle un po' più tecniche dedicate agli sviluppatori le trovate su [http://www.freepascal.org/maillist.html FreePascal].<br />
<br />
==Chi sta lavorando su cosa?==<br />
Se stai convertendo un componente o una libreria o hai bisogno che qualcosa venga convertito, puoi cortesemente segnalarlo sulla pagina dei [[Current Projects|Progetti Correnti]].<br />
Queste segnalazioni costituiranno una guida per gli sviluppatori che vogliono convertire componenti a dedicarsi a quelli che sono già stati richiesti... e anche a evitare che due persone si sovrappongano dedicandosi alla conversione del medesimo pacchetto, perdendo tempo inutilmente.<br />
<br />
==Riferimenti, Collegamenti e Risorse==<br />
<br />
===Lazarus IDE===<br />
Novità e informazioni sullo stato dell'IDE Lazarus possono essere trovate sul sito [http://lazarus.freepascal.org Lazarus IDE]. Nuovi release di Lazarus e del compilatore FreePascal possono essere scaricate da qui. L'area [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file ] <br />
contiene anche gli ultimi pacchetti del compilatore e dell'IDE disponibili al download.<br />
<br />
====Proggetti Lazarus Attivi====<br />
La lista dei nostri attuali [[Lazarus Projects|Proggetti Lazarus]] con indicati i siti web da cui accedervi e i collegamenti ai file relativi a Lazarus da scaricare.<br />
<br />
====Super Sites and Link Farms====<br />
La nostra collezione corrente di siti relativi a Delphi/Kylix la potete trovare sulla nostra pagina [[Page Of Code Sites]]. Cortesemente se conoscete qualche buon sito, che non fa ancora parte della collezione, provvedere voi ad aggiungerlo.<br />
<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduzioni disponibili=<br />
In ordine alfabetico:<br />
* [[Main Page/es | Español (Spanish)]]<br />
* [[Main Page/de | German (Deutsch)]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
* [[Main Page/ptbr | Portuguese (Brazil)]]<br />
* [[Main Page/sk | Slovak]]<br />
<br />
=Questa pagina=<br />
Questa pagina è stata tradotta dalla [[Main_Page|pagina principale inglese]]<br />
<br />
Tradotta da [[User:Xno]]</div>Xnohttps://wiki.freepascal.org/index.php?title=Main_Page/it&diff=2624Main Page/it2005-08-25T12:36:01Z<p>Xno: /* Questa pagina */</p>
<hr />
<div>__NOTOC__<br />
{{Main Page}}<br />
=Benvenuti nella Lazarus-CCR Knowledge-Base=<br />
==Approposito di==<br />
<br />
Lo scopo della [http:../ Lazarus-CCR] Knowledgebase è creare una documentazione completa per Lazarus e per il Free Pascal Compiler, usufruibile online e dotata di strumenti di ricerca. Nonostante il compiler sia ben documentato, Lazzarus ha un po' di gap da colmare... per questo motivo questa area è un "documento aperto", un "wiki" dove tutti possono modificare e aggiungere contenuti. Il wiki accellera le cose rendendo possible fare modifiche e aggiunte direttamente con un browser! Per i tutorials, date uno sguardo a [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] oppure allo [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Una [[Sand Box]] è disponibile per le vostre prove.<br />
<br />
Se incontrate dei problemi, per favore notificateli sul sito degli [http://sourceforge.net/users/vlx/ amministratori] oppure postate un bug report nel sito [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Potete anche lasciare delle note o dei suggerimenti nella pagina [[Site Feedback]].<br />
<br />
==Il progetto Documentazione Lazarus==<br />
;[[Lazarus Documentation |Documentazione Lazarus]]<br />
:Tutta la documentazione disponibile e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|i tutorials]] per il Lazarus IDE (inclusi i manuali per Free Pascal Compiler ) possono essere trovati sulla pagina della [[Lazarus Documentation |documentazione Lazarus]]. Molte delle pagine disponibili sono dei "lavori in corso", sentitevi quindi liberi di aggiungere la vostra esperienza a queste sezioni. Se volete potete anche registrarvi e creare una pagina personale con i riferimenti per contatarvi.<br />
<br />
==Downloads==<br />
Tutti i componenti e i pacchetti correntemente disponibili li trovate su [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. Il Free Pascal Compiler e la versione di sviluppo corrente potete reperirli sul sito [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge]. <br />
Documentazione supplementare su questi pacchetti può essere trovata sulla pagina wiki [[Code And Components]], dove le persone che hanno contribuito con i pacchetti hanno creato anche le relative pagine di informazioni. Il compilatore e molti altri contributi in codice possono essere trovati sul mirror [http://www.freepascal.org/sdown.html Free Pascal Compiler] e anche su [http://lazarus.freepascal.org Lazarus IDE website].<br />
L'area di download degli Snapshots Lazarus la trovate [[Lazarus Snapshots Downloads | qui]].<br />
<br />
==Mailing lists==<br />
Utenti nuovi ed esperti sono invitati a unirsi alle mailing list disponibili:<br />
Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce annunci] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general generale].<br />
<br />
Un'altra lista molto utilizzata è quella dedicata a [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus], alla sua interfaccia IDE e allo sviluppo.<br />
<br />
Quelle un po' più tecniche dedicate agli sviluppatori le trovate su [http://www.freepascal.org/maillist.html FreePascal].<br />
<br />
==Chi sta lavorando su cosa?==<br />
Se stai convertendo un componente o una libreria o hai bisogno che qualcosa venga convertito, puoi cortesemente segnalarlo sulla pagina dei [[Current Projects|Progetti Correnti]].<br />
Queste segnalazioni costituiranno una guida per gli sviluppatori che vogliono convertire componenti a dedicarsi a quelli che sono già stati richiesti... e anche a evitare che due persone si sovrappongano dedicandosi alla conversione del medesimo pacchetto, perdendo tempo inutilmente.<br />
<br />
==Riferimenti, Collegamenti e Risorse==<br />
<br />
===Lazarus IDE===<br />
Novità e informazioni sullo stato dell'IDE Lazarus possono essere trovate sul sito [http://lazarus.freepascal.org Lazarus IDE]. Nuovi release di Lazarus e del compilatore FreePascal possono essere scaricate da qui. L'area [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file ] <br />
contiene anche gli ultimi pacchetti del compilatore e dell'IDE disponibili al download.<br />
<br />
====Proggetti Lazarus Attivi====<br />
La lista dei nostri attuali [[Lazarus Projects|Proggetti Lazarus]] con indicati i siti web da cui accedervi e i collegamenti ai file relativi a Lazarus da scaricare.<br />
<br />
====Super Sites and Link Farms====<br />
La nostra collezione corrente di siti relativi a Delphi/Kylix la potete trovare sulla nostra pagina [[Page Of Code Sites]]. Cortesemente se conoscete qualche buon sito, che non fa ancora parte della collezione, provvedere voi ad aggiungerlo.<br />
<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduzioni disponibili=<br />
In ordine alfabetico:<br />
* [[Main Page/es | Español (Spanish)]]<br />
* [[Main Page/de | German (Deutsch)]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
* [[Main Page/ptbr | Portuguese (Brazil)]]<br />
* [[Main Page/sk | Slovak]]<br />
<br />
=Questa pagina=<br />
Questa pagina è stata tradotta dalla [[Main_Page|pagina principale inglese]]<br />
Tradotta da [[User:Xno]]</div>Xnohttps://wiki.freepascal.org/index.php?title=Main_Page/it&diff=2623Main Page/it2005-08-25T10:15:02Z<p>Xno: /* Super Sites and Link Farms */</p>
<hr />
<div>__NOTOC__<br />
{{Main Page}}<br />
=Benvenuti nella Lazarus-CCR Knowledge-Base=<br />
==Approposito di==<br />
<br />
Lo scopo della [http:../ Lazarus-CCR] Knowledgebase è creare una documentazione completa per Lazarus e per il Free Pascal Compiler, usufruibile online e dotata di strumenti di ricerca. Nonostante il compiler sia ben documentato, Lazzarus ha un po' di gap da colmare... per questo motivo questa area è un "documento aperto", un "wiki" dove tutti possono modificare e aggiungere contenuti. Il wiki accellera le cose rendendo possible fare modifiche e aggiunte direttamente con un browser! Per i tutorials, date uno sguardo a [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] oppure allo [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Una [[Sand Box]] è disponibile per le vostre prove.<br />
<br />
Se incontrate dei problemi, per favore notificateli sul sito degli [http://sourceforge.net/users/vlx/ amministratori] oppure postate un bug report nel sito [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Potete anche lasciare delle note o dei suggerimenti nella pagina [[Site Feedback]].<br />
<br />
==Il progetto Documentazione Lazarus==<br />
;[[Lazarus Documentation |Documentazione Lazarus]]<br />
:Tutta la documentazione disponibile e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|i tutorials]] per il Lazarus IDE (inclusi i manuali per Free Pascal Compiler ) possono essere trovati sulla pagina della [[Lazarus Documentation |documentazione Lazarus]]. Molte delle pagine disponibili sono dei "lavori in corso", sentitevi quindi liberi di aggiungere la vostra esperienza a queste sezioni. Se volete potete anche registrarvi e creare una pagina personale con i riferimenti per contatarvi.<br />
<br />
==Downloads==<br />
Tutti i componenti e i pacchetti correntemente disponibili li trovate su [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. Il Free Pascal Compiler e la versione di sviluppo corrente potete reperirli sul sito [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge]. <br />
Documentazione supplementare su questi pacchetti può essere trovata sulla pagina wiki [[Code And Components]], dove le persone che hanno contribuito con i pacchetti hanno creato anche le relative pagine di informazioni. Il compilatore e molti altri contributi in codice possono essere trovati sul mirror [http://www.freepascal.org/sdown.html Free Pascal Compiler] e anche su [http://lazarus.freepascal.org Lazarus IDE website].<br />
L'area di download degli Snapshots Lazarus la trovate [[Lazarus Snapshots Downloads | qui]].<br />
<br />
==Mailing lists==<br />
Utenti nuovi ed esperti sono invitati a unirsi alle mailing list disponibili:<br />
Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce annunci] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general generale].<br />
<br />
Un'altra lista molto utilizzata è quella dedicata a [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus], alla sua interfaccia IDE e allo sviluppo.<br />
<br />
Quelle un po' più tecniche dedicate agli sviluppatori le trovate su [http://www.freepascal.org/maillist.html FreePascal].<br />
<br />
==Chi sta lavorando su cosa?==<br />
Se stai convertendo un componente o una libreria o hai bisogno che qualcosa venga convertito, puoi cortesemente segnalarlo sulla pagina dei [[Current Projects|Progetti Correnti]].<br />
Queste segnalazioni costituiranno una guida per gli sviluppatori che vogliono convertire componenti a dedicarsi a quelli che sono già stati richiesti... e anche a evitare che due persone si sovrappongano dedicandosi alla conversione del medesimo pacchetto, perdendo tempo inutilmente.<br />
<br />
==Riferimenti, Collegamenti e Risorse==<br />
<br />
===Lazarus IDE===<br />
Novità e informazioni sullo stato dell'IDE Lazarus possono essere trovate sul sito [http://lazarus.freepascal.org Lazarus IDE]. Nuovi release di Lazarus e del compilatore FreePascal possono essere scaricate da qui. L'area [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file ] <br />
contiene anche gli ultimi pacchetti del compilatore e dell'IDE disponibili al download.<br />
<br />
====Proggetti Lazarus Attivi====<br />
La lista dei nostri attuali [[Lazarus Projects|Proggetti Lazarus]] con indicati i siti web da cui accedervi e i collegamenti ai file relativi a Lazarus da scaricare.<br />
<br />
====Super Sites and Link Farms====<br />
La nostra collezione corrente di siti relativi a Delphi/Kylix la potete trovare sulla nostra pagina [[Page Of Code Sites]]. Cortesemente se conoscete qualche buon sito, che non fa ancora parte della collezione, provvedere voi ad aggiungerlo.<br />
<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduzioni disponibili=<br />
In ordine alfabetico:<br />
* [[Main Page/es | Español (Spanish)]]<br />
* [[Main Page/de | German (Deutsch)]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
* [[Main Page/ptbr | Portuguese (Brazil)]]<br />
* [[Main Page/sk | Slovak]]<br />
<br />
=Questa pagina=<br />
Questa pagina è stata tradotta dalla [[Main_Page|pagina principale inglese]]</div>Xnohttps://wiki.freepascal.org/index.php?title=Main_Page/it&diff=2621Main Page/it2005-08-25T10:11:30Z<p>Xno: /* Old wiki */</p>
<hr />
<div>__NOTOC__<br />
{{Main Page}}<br />
=Benvenuti nella Lazarus-CCR Knowledge-Base=<br />
==Approposito di==<br />
<br />
Lo scopo della [http:../ Lazarus-CCR] Knowledgebase è creare una documentazione completa per Lazarus e per il Free Pascal Compiler, usufruibile online e dotata di strumenti di ricerca. Nonostante il compiler sia ben documentato, Lazzarus ha un po' di gap da colmare... per questo motivo questa area è un "documento aperto", un "wiki" dove tutti possono modificare e aggiungere contenuti. Il wiki accellera le cose rendendo possible fare modifiche e aggiunte direttamente con un browser! Per i tutorials, date uno sguardo a [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] oppure allo [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Una [[Sand Box]] è disponibile per le vostre prove.<br />
<br />
Se incontrate dei problemi, per favore notificateli sul sito degli [http://sourceforge.net/users/vlx/ amministratori] oppure postate un bug report nel sito [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Potete anche lasciare delle note o dei suggerimenti nella pagina [[Site Feedback]].<br />
<br />
==Il progetto Documentazione Lazarus==<br />
;[[Lazarus Documentation |Documentazione Lazarus]]<br />
:Tutta la documentazione disponibile e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|i tutorials]] per il Lazarus IDE (inclusi i manuali per Free Pascal Compiler ) possono essere trovati sulla pagina della [[Lazarus Documentation |documentazione Lazarus]]. Molte delle pagine disponibili sono dei "lavori in corso", sentitevi quindi liberi di aggiungere la vostra esperienza a queste sezioni. Se volete potete anche registrarvi e creare una pagina personale con i riferimenti per contatarvi.<br />
<br />
==Downloads==<br />
Tutti i componenti e i pacchetti correntemente disponibili li trovate su [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. Il Free Pascal Compiler e la versione di sviluppo corrente potete reperirli sul sito [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge]. <br />
Documentazione supplementare su questi pacchetti può essere trovata sulla pagina wiki [[Code And Components]], dove le persone che hanno contribuito con i pacchetti hanno creato anche le relative pagine di informazioni. Il compilatore e molti altri contributi in codice possono essere trovati sul mirror [http://www.freepascal.org/sdown.html Free Pascal Compiler] e anche su [http://lazarus.freepascal.org Lazarus IDE website].<br />
L'area di download degli Snapshots Lazarus la trovate [[Lazarus Snapshots Downloads | qui]].<br />
<br />
==Mailing lists==<br />
Utenti nuovi ed esperti sono invitati a unirsi alle mailing list disponibili:<br />
Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce annunci] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general generale].<br />
<br />
Un'altra lista molto utilizzata è quella dedicata a [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus], alla sua interfaccia IDE e allo sviluppo.<br />
<br />
Quelle un po' più tecniche dedicate agli sviluppatori le trovate su [http://www.freepascal.org/maillist.html FreePascal].<br />
<br />
==Chi sta lavorando su cosa?==<br />
Se stai convertendo un componente o una libreria o hai bisogno che qualcosa venga convertito, puoi cortesemente segnalarlo sulla pagina dei [[Current Projects|Progetti Correnti]].<br />
Queste segnalazioni costituiranno una guida per gli sviluppatori che vogliono convertire componenti a dedicarsi a quelli che sono già stati richiesti... e anche a evitare che due persone si sovrappongano dedicandosi alla conversione del medesimo pacchetto, perdendo tempo inutilmente.<br />
<br />
==Riferimenti, Collegamenti e Risorse==<br />
<br />
===Lazarus IDE===<br />
Novità e informazioni sullo stato dell'IDE Lazarus possono essere trovate sul sito [http://lazarus.freepascal.org Lazarus IDE]. Nuovi release di Lazarus e del compilatore FreePascal possono essere scaricate da qui. L'area [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file ] <br />
contiene anche gli ultimi pacchetti del compilatore e dell'IDE disponibili al download.<br />
<br />
====Proggetti Lazarus Attivi====<br />
La lista dei nostri attuali [[Lazarus Projects|Proggetti Lazarus]] con indicati i siti web da cui accedervi e i collegamenti ai file relativi a Lazarus da scaricare.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduzioni disponibili=<br />
In ordine alfabetico:<br />
* [[Main Page/es | Español (Spanish)]]<br />
* [[Main Page/de | German (Deutsch)]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
* [[Main Page/ptbr | Portuguese (Brazil)]]<br />
* [[Main Page/sk | Slovak]]<br />
<br />
=Questa pagina=<br />
Questa pagina è stata tradotta dalla [[Main_Page|pagina principale inglese]]</div>Xnohttps://wiki.freepascal.org/index.php?title=Main_Page/it&diff=2620Main Page/it2005-08-25T10:09:41Z<p>Xno: /* Translations */</p>
<hr />
<div>__NOTOC__<br />
{{Main Page}}<br />
=Benvenuti nella Lazarus-CCR Knowledge-Base=<br />
==Approposito di==<br />
<br />
Lo scopo della [http:../ Lazarus-CCR] Knowledgebase è creare una documentazione completa per Lazarus e per il Free Pascal Compiler, usufruibile online e dotata di strumenti di ricerca. Nonostante il compiler sia ben documentato, Lazzarus ha un po' di gap da colmare... per questo motivo questa area è un "documento aperto", un "wiki" dove tutti possono modificare e aggiungere contenuti. Il wiki accellera le cose rendendo possible fare modifiche e aggiunte direttamente con un browser! Per i tutorials, date uno sguardo a [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] oppure allo [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Una [[Sand Box]] è disponibile per le vostre prove.<br />
<br />
Se incontrate dei problemi, per favore notificateli sul sito degli [http://sourceforge.net/users/vlx/ amministratori] oppure postate un bug report nel sito [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Potete anche lasciare delle note o dei suggerimenti nella pagina [[Site Feedback]].<br />
<br />
==Il progetto Documentazione Lazarus==<br />
;[[Lazarus Documentation |Documentazione Lazarus]]<br />
:Tutta la documentazione disponibile e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|i tutorials]] per il Lazarus IDE (inclusi i manuali per Free Pascal Compiler ) possono essere trovati sulla pagina della [[Lazarus Documentation |documentazione Lazarus]]. Molte delle pagine disponibili sono dei "lavori in corso", sentitevi quindi liberi di aggiungere la vostra esperienza a queste sezioni. Se volete potete anche registrarvi e creare una pagina personale con i riferimenti per contatarvi.<br />
<br />
==Downloads==<br />
Tutti i componenti e i pacchetti correntemente disponibili li trovate su [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. Il Free Pascal Compiler e la versione di sviluppo corrente potete reperirli sul sito [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge]. <br />
Documentazione supplementare su questi pacchetti può essere trovata sulla pagina wiki [[Code And Components]], dove le persone che hanno contribuito con i pacchetti hanno creato anche le relative pagine di informazioni. Il compilatore e molti altri contributi in codice possono essere trovati sul mirror [http://www.freepascal.org/sdown.html Free Pascal Compiler] e anche su [http://lazarus.freepascal.org Lazarus IDE website].<br />
L'area di download degli Snapshots Lazarus la trovate [[Lazarus Snapshots Downloads | qui]].<br />
<br />
==Mailing lists==<br />
Utenti nuovi ed esperti sono invitati a unirsi alle mailing list disponibili:<br />
Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce annunci] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general generale].<br />
<br />
Un'altra lista molto utilizzata è quella dedicata a [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus], alla sua interfaccia IDE e allo sviluppo.<br />
<br />
Quelle un po' più tecniche dedicate agli sviluppatori le trovate su [http://www.freepascal.org/maillist.html FreePascal].<br />
<br />
==Chi sta lavorando su cosa?==<br />
Se stai convertendo un componente o una libreria o hai bisogno che qualcosa venga convertito, puoi cortesemente segnalarlo sulla pagina dei [[Current Projects|Progetti Correnti]].<br />
Queste segnalazioni costituiranno una guida per gli sviluppatori che vogliono convertire componenti a dedicarsi a quelli che sono già stati richiesti... e anche a evitare che due persone si sovrappongano dedicandosi alla conversione del medesimo pacchetto, perdendo tempo inutilmente.<br />
<br />
==Riferimenti, Collegamenti e Risorse==<br />
<br />
===Lazarus IDE===<br />
Novità e informazioni sullo stato dell'IDE Lazarus possono essere trovate sul sito [http://lazarus.freepascal.org Lazarus IDE]. Nuovi release di Lazarus e del compilatore FreePascal possono essere scaricate da qui. L'area [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file ] <br />
contiene anche gli ultimi pacchetti del compilatore e dell'IDE disponibili al download.<br />
<br />
====Proggetti Lazarus Attivi====<br />
La lista dei nostri attuali [[Lazarus Projects|Proggetti Lazarus]] con indicati i siti web da cui accedervi e i collegamenti ai file relativi a Lazarus da scaricare.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduzioni disponibili=<br />
In ordine alfabetico:<br />
* [[Main Page/es | Español (Spanish)]]<br />
* [[Main Page/de | German (Deutsch)]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
* [[Main Page/ptbr | Portuguese (Brazil)]]<br />
* [[Main Page/sk | Slovak]]<br />
<br />
=Old wiki=<br />
These pages are being converted from the old wiki format. The old wiki front page can be found [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage here].<br />
<br />
Original content by [[User:VlxAdmin]].</div>Xnohttps://wiki.freepascal.org/index.php?title=Main_Page/it&diff=2619Main Page/it2005-08-25T10:07:37Z<p>Xno: /* References, Links and Resources */</p>
<hr />
<div>__NOTOC__<br />
{{Main Page}}<br />
=Benvenuti nella Lazarus-CCR Knowledge-Base=<br />
==Approposito di==<br />
<br />
Lo scopo della [http:../ Lazarus-CCR] Knowledgebase è creare una documentazione completa per Lazarus e per il Free Pascal Compiler, usufruibile online e dotata di strumenti di ricerca. Nonostante il compiler sia ben documentato, Lazzarus ha un po' di gap da colmare... per questo motivo questa area è un "documento aperto", un "wiki" dove tutti possono modificare e aggiungere contenuti. Il wiki accellera le cose rendendo possible fare modifiche e aggiunte direttamente con un browser! Per i tutorials, date uno sguardo a [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] oppure allo [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Una [[Sand Box]] è disponibile per le vostre prove.<br />
<br />
Se incontrate dei problemi, per favore notificateli sul sito degli [http://sourceforge.net/users/vlx/ amministratori] oppure postate un bug report nel sito [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Potete anche lasciare delle note o dei suggerimenti nella pagina [[Site Feedback]].<br />
<br />
==Il progetto Documentazione Lazarus==<br />
;[[Lazarus Documentation |Documentazione Lazarus]]<br />
:Tutta la documentazione disponibile e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|i tutorials]] per il Lazarus IDE (inclusi i manuali per Free Pascal Compiler ) possono essere trovati sulla pagina della [[Lazarus Documentation |documentazione Lazarus]]. Molte delle pagine disponibili sono dei "lavori in corso", sentitevi quindi liberi di aggiungere la vostra esperienza a queste sezioni. Se volete potete anche registrarvi e creare una pagina personale con i riferimenti per contatarvi.<br />
<br />
==Downloads==<br />
Tutti i componenti e i pacchetti correntemente disponibili li trovate su [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. Il Free Pascal Compiler e la versione di sviluppo corrente potete reperirli sul sito [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge]. <br />
Documentazione supplementare su questi pacchetti può essere trovata sulla pagina wiki [[Code And Components]], dove le persone che hanno contribuito con i pacchetti hanno creato anche le relative pagine di informazioni. Il compilatore e molti altri contributi in codice possono essere trovati sul mirror [http://www.freepascal.org/sdown.html Free Pascal Compiler] e anche su [http://lazarus.freepascal.org Lazarus IDE website].<br />
L'area di download degli Snapshots Lazarus la trovate [[Lazarus Snapshots Downloads | qui]].<br />
<br />
==Mailing lists==<br />
Utenti nuovi ed esperti sono invitati a unirsi alle mailing list disponibili:<br />
Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce annunci] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general generale].<br />
<br />
Un'altra lista molto utilizzata è quella dedicata a [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus], alla sua interfaccia IDE e allo sviluppo.<br />
<br />
Quelle un po' più tecniche dedicate agli sviluppatori le trovate su [http://www.freepascal.org/maillist.html FreePascal].<br />
<br />
==Chi sta lavorando su cosa?==<br />
Se stai convertendo un componente o una libreria o hai bisogno che qualcosa venga convertito, puoi cortesemente segnalarlo sulla pagina dei [[Current Projects|Progetti Correnti]].<br />
Queste segnalazioni costituiranno una guida per gli sviluppatori che vogliono convertire componenti a dedicarsi a quelli che sono già stati richiesti... e anche a evitare che due persone si sovrappongano dedicandosi alla conversione del medesimo pacchetto, perdendo tempo inutilmente.<br />
<br />
==Riferimenti, Collegamenti e Risorse==<br />
<br />
===Lazarus IDE===<br />
Novità e informazioni sullo stato dell'IDE Lazarus possono essere trovate sul sito [http://lazarus.freepascal.org Lazarus IDE]. Nuovi release di Lazarus e del compilatore FreePascal possono essere scaricate da qui. L'area [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file ] <br />
contiene anche gli ultimi pacchetti del compilatore e dell'IDE disponibili al download.<br />
<br />
====Proggetti Lazarus Attivi====<br />
La lista dei nostri attuali [[Lazarus Projects|Proggetti Lazarus]] con indicati i siti web da cui accedervi e i collegamenti ai file relativi a Lazarus da scaricare.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Translations=<br />
By alphabetic order:<br />
* [[Main Page/de | German (Deutsch)]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
* [[Main Page/ptbr | Portuguese (Brazil)]]<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/es | Español (Spanish)]]<br />
<br />
=Old wiki=<br />
These pages are being converted from the old wiki format. The old wiki front page can be found [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage here].<br />
<br />
Original content by [[User:VlxAdmin]].</div>Xno