https://wiki.freepascal.org/api.php?action=feedcontributions&user=Ejca&feedformat=atomLazarus wiki - User contributions [en]2024-03-29T15:50:27ZUser contributionsMediaWiki 1.35.6https://wiki.freepascal.org/index.php?title=History/fr&diff=19927History/fr2007-06-14T15:25:56Z<p>Ejca: Typo</p>
<hr />
<div>{{History}}<br />
<br />
Le projet Lazarus a ses racines à Megido. A partir des groupes de discussion de Google et d'autres listes de discussion nous pouvons reconstruire que Megido était un projet qui a essayé de faire un clone open source de Delphi, commençant par le code source à Sybil, qui en retour était un clone de Delphi pour l'OS/2, mais son concepteur était plus contraint. Megido a commencé en 1998, mais est mort quelque part en 1999, en raison du manque de focalisation, et un manque d'intérêt pour un clone basé sur Sybil avec ses restrictions.<br />
<br />
Ainsi, Lazarus a démarré au moi de février de l'année 1999. Il a été principalement fondé par trois individus : Cliff Baeseman, Shane Miller, et Michael A. Hess. Des trois fondateurs, seulement Michael A. Hess est encore impliqué dans le projet.<br />
<br />
Chacun des trois avait essayé de s'impliquer dans le projet Megido qui s'est dissous. Dans leur frustration ils ont commencé leurs propres projet, Lazarus.<br />
<br />
Le prochain membre le plus âgé de l'équipe est [[User:Marc|Marc Weustink]]. Il s'est impliqué dans le projet en Aug. 1999. Marc recherchait une solution Delphi sur Linux (car il n'y en avait aucun alors de Borland), et était également intéressé à Linux en général, donc il s'est joint au projet Lazarus. Lorsque Marc s'y est joint, Lazarus n'était pas beaucoup plus qu'une toolbar (barre d'outils) vide et quelques items de menu gtk and some hardcoded gtk menu items. The editor was still being discussed. Marc is still a core contributor, with the debugger interface being his pet subproject. (TODO: more?)<br />
<br />
Following him is [[User:Mattias2|Mattias Gaertner]] who got involved in Sept. 2000. With Mattias on board of the team the project made a huge step forward. Mattias ported synedit, and coded large pieces of the codetools and the designer. With these additions, Lazarus started to get its face. Three years later he added the package system and many other IDE features. <br />
<br />
[[User:Neli|Micha Nelissen]] started contributing in June 2003, mainly sending patches for the win32 interface. He used Borland C++ Builder, but wanted to look into more platforms as well. Due to Borland adding their own proprietary extensions to C++ to support their VCL, the odds of BCB applications to ever going to be portable were slim. A change of language was not really a problem so after some looking around, he thought Lazarus seemed most promising. At that time Lazarus was based on gtk for both win32 and linux. On Linux it worked very well, but on win32 it was buggy. Users of Lazarus asked more and more for a native win32 interface and Micha jumped in to help writing a native win32 interface.<br />
<br />
[[User:Vincent|Vincent Snijders]] was given a link to Lazarus and FPC during the summer of 1999, when he had just bought his linux computer and started his thesis, which involved mathematical simulations written in Delphi. He followed the project and tried mainly to get Lazarus running on Windows. After graduation in 2003 he got more time for Lazarus and started to contribute patches for Lazarus. His main focus is getting Lazarus on Windows as good as on Linux and the [[Lazarus Snapshots Downloads|Lazarus snapshots]].<br />
<br />
[todo: others]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Add_Help_to_Your_Application/fr&diff=19790Add Help to Your Application/fr2007-06-12T17:25:14Z<p>Ejca: Typo</p>
<hr />
<div>{{Add Help to Your Application}}<br />
<br />
La LCL vient avec un système d'aide.<br />
<br />
== Démarrage rapide ==<br />
=== 1er projet ===<br />
Ouvrir l'exemple dans examples/helphtml/.<br />
<br />
Ce projet démontre comment employer les composants d'aide HTML. Déposez-les simplement sur la fiche de votre projet. Configurez les chemins et créez quelques pages en HTML. Donnez alors à chaque commande de votre application un HelpKeyword.<br />
<br />
=== Capture d'écran du 1er projet ===<br />
<br />
=== 2ème projet ===<br />
Ouvrir l'exemple dans examples/htmlhelp_ipro/.<br />
<br />
Ce projet démontre comment employer les composants d'aide HTML. Déposez-les simplement sur la fiche de votre projet. Configurez les chemins et créez quelques pages en HTML. Donnez alors à chaque commande de votre application un HelpKeyword.<br />
<br />
=== Capture d'écran du 2ème projet ===<br />
<br />
<center>[[Image:Système d'aide.jpg]]</center><br />
<br />
== Essentiel de l'Aide ==<br />
<br />
L'aide de la LCL se compose principalement de deux parties : Bases de données d'aide et visionneuses d'aide. Une base de données d'aide contient l'ensemble des mots clefs (ID, node, message, pascal...) de la page d'aide (ou n'importe quoi).<br />
La visionneuse d'aide est appelée par la base de données d'aide pour montrer l'aide à l'utilisateur.</div>Ejcahttps://wiki.freepascal.org/index.php?title=Char/fr&diff=19789Char/fr2007-06-12T17:14:40Z<p>Ejca: Typo</p>
<hr />
<div>{{Char}}<br />
<br />
Un '''char''' est un simple caractère. Un [[Byte|octet]] et un char sont la même chose, excepté qu'un char peut être employé comme caractère, ou en tant qu'élément de type [[String|chaîne de caractères]], et ne peut pas être employé dans une expression arithmétique, tandis qu'un octet peut seulement se reporter comme un type numérique.<br />
<br />
Par exemple :<br />
<tt><br />
: var ch: char;<br />
: {{Tab4}}c: byte; <br />
:<br />
: begin<br />
: {{Tab4}} ch := 'A'; c := 64; { ont la même action, et sont légaux }<br />
: {{Tab4}} ch := 64; c := 'A'; { bien qu'ils aient la même action , c'est illégal }<br />
: end.<br />
</tt><br />
<br />
L'utilisation de char ou de byte comme type de données fournit une meilleure documentation quant au but d'utiliser une variable particulière. <br />
Le type char peut être [[coersion|contraint]] vers le type byte en employant la fonction [[ord]]. <br />
Les valeurs de type byte peuvent être contrainte vers le type char en employant la fonction [[chr]].<br />
<br />
Les fonctions manipulant les caractères, suivent la norme [[ASCII]].<br />
<br />
Le programme ci-dessus, corrigé pour une utilisation légale :<br />
<br />
<tt><br />
: var ch: char;<br />
: {{Tab4}}c: byte; <br />
:<br />
: begin<br />
: {{Tab4}} ch := 'A'; c := 64; { ont la même action, et sont légaux }<br />
: {{Tab4}} ch := chr(64); c := ord('A'); { maintenant légal }<br />
: end.<br />
</tt><br />
<br />
{{Data types}}<br />
<br />
[[category:Pascal]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Free_Pascal/fr&diff=19788Free Pascal/fr2007-06-12T17:06:15Z<p>Ejca: /* Lazarus et le compilateur Free Pascal */</p>
<hr />
<div>{{Free Pascal}}<br />
<br />
== Lazarus et le compilateur Free Pascal ==<br />
La version recommandée du compilateur Free Pascal pour l'IDE Lazarus est 2.0.4 ; il y a des versions plus récentes (2.0.5 et 2.1.1), mais des instabilités intermittentes sont encore en train d'être trouvées. Les réalisations les plus récentes peuvent être trouvées sur le site [http://sourceforge.net/project/showfiles.php?group_id=2174 sourceforge de Free Pascal], bien que la version recommandée allant de paire avec Lazarus peut être trouvée dans la zone de téléchargement du site [http://sourceforge.net/project/showfiles.php?group_id=89339 sourceforge de Lazarus]. Divers paquets et fichiers binaires sont disponibles depuis ces sites de téléchargement .<br />
<br />
La version recommandée du compilateur Free Pascal pour l'IDE Lazarus est 2.0.4. La dernière version peut être trouvée dans [http://sourceforge.net/project/showfiles.php?group_id=2174 la section fichiers] du site de Lazarus-CCR comme un paquet appelé "FPC - updated version". <br />
<br />
L'information sur où peut être téléchargé fpc 2.0, ou comment se connecter au dépôt SVN, peut être trouvée à l'adresse http://www.freepascal.org/develop.html .<br />
<br />
== Depuis le site web du compilateur Free Pascal: ==<br />
=== Vue d'ensemble ===<br />
Free Pascal (aka FPK Pascal) est un compilateur pascal 32 bit. Il est disponible pour différents processeurs (Intel 80386 et compatibles et Motorola 680x0) et logiciels d'exploitation(Linux, FreeBSD, NetBSD, DOS, Win32, OS/2, BeOS, SunOS (Solaris), QNX et Classic Amiga).<br />
<br />
=== Fonctionnalités ===<br />
La syntaxe de langage est sémantiquement compatible avec TP 7.0 aussi bien que pour la plupart des versions Delphi (classes, rtti, exceptions, ansistrings). En outre Free Pascal supporte la surcharge de fonctions, la surcharge d'opérateurs et d'autres fonctionnalités de ce type.<br />
<br />
=== Exigences ===<br />
Pour la version Intel 80x86 au moins un processeur 386 est exigé , mais un 486 est recommandé . Pour la version motorola 680x0 , un 68020 ou un processeur plus récent est recommandé. Dans tous les cas , 8 méga-octets au minimum de RAM est recommandé , mais le compilateur est sencé travailler avec 2 méga-octets de RAM .<br />
<br />
=== Licence ===<br />
Les paquets et la bibliothèque d'exécution relèvent d'une librairie modifiée à licence publique GNU pour permettre l'utilisation des bibliothèques statiques en créant des applications . Les sources du compilateur lui-même relève de la licence publique générale GNU . Les sources du compilateur et de la bibliothèque dexécution sont disponibles ; le compilateur complet est écrit en Pascal .<br />
<br />
=== Documentation ===<br />
La documentation du compilateur Free Pascal est disponible sur [http://lazarus-ccr.sourceforge.net/fpcdoc/ ce site] ou il peut trouver en ligne et dans une variété de formats téléchargeable sur le principal [http://www.freepascal.org/docs.html site du compilateur Free Pascal].<br />
* [[fpc:Main Page | Wiki FPC]]<br />
* [http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html Guide de l'utilisateur]<br />
* [http://lazarus-ccr.sourceforge.net/fpcdoc/prog/prog.html Guide du programmeur]<br />
* [http://lazarus-ccr.sourceforge.net/fpcdoc/ref/ref.html Guide de référence de l'unité system , et les constructions Pascal supportées]<br />
* [http://lazarus-ccr.sourceforge.net/fpcdoc/units/units.html Manuel de référence des unités standard]<br />
* [http://lazarus-ccr.sourceforge.net/docs/rtl/index.html Manuel de référence des bibliothèques d'exécution]<br />
* [http://lazarus-ccr.sourceforge.net/fpcdoc/fcl/index.html Manuel de référence de la FCL(Free componant Library)]<br />
* [http://lazarus-ccr.sourceforge.net/fpcdoc/fpdoc/fpdoc.html Manuel de l'outil de documentation de Free Pascal]<br />
<br />
=== Page d'accueil du compilateur Free Pascal ===<br />
http://www.freepascal.org/ - Site principal <br><br />
http://sourceforge.net/projects/freepascal/ - site de téléchargement Sourceforge<br />
<br />
== Contributions originales et changements ==<br />
Cette page a été convertie depuis l'epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=FreePascal version].<br />
* Page créée, contenu initial - [[User:Tom | VlxAdmin]] 9/22/2003<br />
* Lien supplémentaire pour les téléchargements de fpc 1.1 - [[User:Vincent|Vincent]] 9/28/2003<br />
* Ajout de la documentation de FPC et liens - [[User:Tom | VlxAdmin]] 10/20/2003<br />
* mise à jour vers la version 2.0.4</div>Ejcahttps://wiki.freepascal.org/index.php?title=Dialog_Examples/fr&diff=19584Dialog Examples/fr2007-06-11T16:10:26Z<p>Ejca: </p>
<hr />
<div>{{Exemples de boîte de dialogue}}<br />
<br />
= Quelques boîtes de dialogue pratiques=<br />
Ci-dessous quelques boîtes de dialogue pratiques non incluses dans la palette de composant :<br />
<br />
* procedure ShowMessage (const Msg: string);<br />
* function MessageBox (Text, Caption : PChar; Flags: Word): Integer;<br />
* function MessageDlg (const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: LongInt): Word;<br />
* function InputBox (const ACaption, APrompt, ADefault: string); string;<br />
* function InputQuery (const ACaption, APrompt: string; var Value: string): Boolean;<br />
* function PasswordBox(const ACaption, APrompt : String) : String;<br />
<br />
Chacun de ces composants affiche une petite fenêtre contenant quelques informations et demandent une réponse à l'utilisateur : d'appuyer sur un bouton, d'entrer un texte ou les deux. Le développeur n'a que peu de contrôle sur le format, la taille ou la position de ces boîtes de dialogue, mais peut influer sur leur contenu textuel.<br><br />
La raison pour laquelle il y a tant d'alternatives différentes , et de permettre différentes méthodes d'appel de composant et de recevoir des informations en retour depuis une procédure ou une fonction.<br />
<br />
==Message Dialogs==<br />
Message dialogs affiche un message et attend qu'une touche soit appuyée ou un double-clic de la souris.<br />
===ShowMessage===<br />
Procedure ShowMessage (const Msg: string);<br />
<br />
{ Déclarée dans Dialogs.pp }<br />
<br />
La boîte de dialogue renvoyant un message la plus simple : elle prend une simple chaîne de caractères en paramètre, l'affiche dans une fenêtre stéréotypée, et attend un clic de souris ou une touche appuyée avec de continuer le programme.<br><br />
C'est un appel de procédure modal, tant que le bouton OK n'est pas cliqué ou validé par entrée la fenêtre reste en avant plan et garde le focus, interdisant tout autre manipulation dans le programme.<br />
<br />
Exemple :<br />
<br />
Program LazMessage;<br />
Uses Dialogs;<br />
begin<br />
ShowMessage ('C''est un message de Lazarus.')<br />
end.<br />
<br />
===MessageBox===<br />
Function Application.MessageBox (Text, Caption: PChar; Flags: longint) : Integer;<br />
<br />
{ Defined in Forms.pp as part of TApplication; hence must be called as Application.Messagebox () or using the 'with Application do ...' construct }<br />
<br />
Paramètres :<br />
<br />
* Text : la chaîne de caractères qui est affichée dans la boîte de dialogue ;<br />
* Caption : la chaîne de caractère affiché dans la barre de titre de la boîte de dialogue ;<br />
* Flags : longint – une constante qui peut définir le contenu et le comportement de la boîte de dialogue, par exemple MB_ABORTRETRYIGNORE + MR_ICONQUESTION fera en sorte que le programme affichera l'icône d'un point d'interrogation dans la boîte de dialogue (?) accompagné de trois boutons : ABORT RETRY IGNORE.<br />
<br />
La fonction renvoie un entier correspondant au bouton appuyé ; cette valeur peut être déterminé par en faisant référence aux constantes [IDOK..IDHELP]<br />
<br />
Cette fonction peut être appelée en tant que procédure (ie comme 'MessageBox()' au lieu de 'Variable := MessageBox()' comme on le ferait normalement pour une appel de fonction – voir exemple ci-dessous)<br />
<br />
Exemple :<br />
<br />
Uses Forms, Dialogs, LCLType;<br />
<br />
Procedure DisplayMessageBox;<br />
var reply, boxstyle: integer;<br />
begin<br />
with application do<br />
begin<br />
boxstyle := MB_ICONQUESTION + MB_YESNO;<br />
reply := MessageBox ('Appuyez sur un bouton', 'MessageBoxDemo', boxstyle);<br />
if reply = IDYES then MessageBox ('Oui', 'Répondre',MB_ICONINFORMATION)<br />
else MessageBox ('Non', 'Répondre', MB_ICONHAND);<br />
end;<br />
end;<br />
<br />
<center>[[MessageBoxDemo.png]]</center> <br />
<center>[[ReplyYes.png]]</center><br />
<br />
===MessageDLG===<br />
function MessageDlg(const aMsg: string; DlgType: TMsgDlgType; <br />
Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;<br />
function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; <br />
Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;<br />
<br />
Il existe deux versions de cette fonction, si vous omettez de renseigner 'Caption', ce sera la première fonction qui sera appelée et 'Caption' sera vide dans la boîte de dialogue.<br />
<br />
C'est la plus complète et la plus abouti des fonctions d'appel de boîte de dialogue, elle autorise au programmeur un contrôle maximal sur l'apparence de la boîte.<br />
Les paramètres définicent le type de boîte et son icône via une constante entière, et les boutons peuvent être spécifié via [mbRetry, mbIgnore, mbAbort, mbCancel].<br />
Le paramètre HelpCtx n'est pas encore implémenté et doit être initialisé à zéro.<br />
La valeur de retour de cette fonction et la valeur correspondante au bouton appuyé, exprimé par un entier (voir les définitions plus bas, [mrNone..mrAll]).<br />
<br />
Exemple :<br />
<br />
Uses forms, dialogs, lcltype, controls;<br />
<br />
procedure TryMessageDlg;<br />
begin<br />
if MessageDlg ('Question', 'Souhaitez-vous l'exécuter ?', mtConfirmation, <br />
[mbYes, mbNo, mbIgnore],0) = mrYes<br />
then { Exécuter la suite du programme};<br />
end;<br />
<br />
<center>[[Question.png]]</center><br />
<br />
==Boîtes de dialogue de texte==<br />
===InputBox===<br />
Boîte de dialogue de texte : affiche un message et attend que l'utilisateur entre une information sous forme de texte.<br />
<br />
Function InputBox(const ACaption, APrompt, ADefault : String) : String;<br />
<br />
Displays a box with defined title and prompt, and expects user input in a text box. Une chaîne de caractère réponse, peut être rentré optionnellement. The user-entered or default string is returned as the function result.<br />
<br />
Exemple :<br />
<br />
Uses forms, lcltype, dialogs, controls;<br />
<br />
procedure TryInputBox;<br />
var userstring: string;<br />
begin<br />
userstring := InputBox ('Get some text input', <br />
'Please type in some information', 'Some sample text');<br />
ShowMessage (userstring)<br />
end;<br />
<br />
===InputQuery===<br />
Function InputQuery(const ACaption, APrompt : String;<br />
MaskInput : Boolean; var Value : String) : Boolean;<br />
Function InputQuery(const ACaption, APrompt : String;<br />
var Value : String) : Boolean;<br />
<br />
Two versions of this function which displays a prompt and expects user input of textual data; the first includes a MaskInput boolean parameter which determines whether the user input is masked out by asterisks in the text-input box (like during entry of a password), while the second omits this property. The text entered by the user is returned in the variable parameter 'Value'; the function result is a boolean which returns TRUE if the OK button was pressed, or FALSE if the box was closed by any other mechanism (such as clicking the 'Close' icon on the top title bar). Omitting the MaskInput parameter is equivalent to setting it FALSE.<br />
<br />
Exemple :<br />
<br />
Uses forms, lcltype, dialogs, controls;<br />
<br />
procedure TryInputQuery;<br />
var QueryResult: boolean;<br />
userstring: string;<br />
begin<br />
if InputQuery ('Question', 'Type in some data', TRUE, userstring)<br />
then ShowMessage (userstring)<br />
else <br />
begin<br />
InputQuery ('Don''t be silly', 'Please try again', userstring);<br />
ShowMessage (userstring)<br />
end<br />
end;<br />
<br />
<center>[[MessageDlgQuestion.png]] </center><br />
<br />
<center>[[DontBeSillly.png]]</center><br />
<br />
===PasswordBox===<br />
Function PasswordBox(const ACaption, APrompt : String) : String;<br />
<br />
Behaves very similarly to the InputQuery function with MaskInput = TRUE; the difference is that the password that was typed in is returned as the result of the function (like InputBox).<br />
<br />
==Constants and Types used in message dialogs==<br />
<br />
Several constants and types relevant for use with the dialog boxes are pre-defined in the LCL library:<br />
<br />
const { Déclaré dans LCLType.pp }<br />
<br />
integer constants for defining the types of buttons<br />
and the icon for display in MessageBox<br />
<br />
MB_OK = $00000000;<br />
MB_OKCANCEL = $00000001;<br />
MB_ABORTRETRYIGNORE = $00000002;<br />
MB_YESNOCANCEL = $00000003;<br />
MB_YESNO = $00000004;<br />
MB_RETRYCANCEL = $00000005;<br />
<br />
<br />
MB_ICONHAND = $00000010;<br />
MB_ICONQUESTION = $00000020;<br />
MB_ICONEXCLAMATION = $00000030;<br />
MB_ICONASTERICK = $00000040;<br />
MB_ICONWARNING = MB_ICONEXCLAMATION;<br />
MB_ICONERROR = MB_ICONHAND;<br />
MB_ICONINFORMATION = MB_ICONASTERICK;<br />
<br />
integer constants defining the return value from MessageBox according to which button was pressed<br />
<br />
IDOK = 1; ID_OK = IDOK;<br />
IDCANCEL = 2; ID_CANCEL = IDCANCEL;<br />
IDABORT = 3; ID_ABORT = IDABORT;<br />
IDRETRY = 4; ID_RETRY = IDRETRY;<br />
IDIGNORE = 5; ID_IGNORE = IDIGNORE;<br />
IDYES = 6; ID_YES = IDYES;<br />
IDNO = 7; ID_NO = IDNO;<br />
IDCLOSE = 8; ID_CLOSE = IDCLOSE;<br />
IDHELP = 9; ID_HELP = IDHELP;<br />
<br />
define whether first, second or third button is default<br />
<br />
MB_DEFBUTTON1 = $00000000;<br />
MB_DEFBUTTON2 = $00000100;<br />
MB_DEFBUTTON3 = $00000200;<br />
MB_DEFBUTTON4 = $00000300;<br />
<br />
The Flags parameter of MessageBox is constructed by adding a button constant [MB_OK..MB_RETRYCANCEL],<br />
an optional icon constant [MB_ICONHAND..MB_ICONINFORMATION]<br />
and an optional default button constant [MB_DEFBUTTON1..MB_DEFBUTTON3]<br />
<br />
Types for use in MessageDlg, which needs parameters<br />
AType of TMsgDlgType and AButtons of TMSgDlgButtons<br />
<br />
<br />
{ Déclaré dans Dialogs.pp }<br />
type<br />
TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation,<br />
mtCustom);<br />
TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore,<br />
mbAll, mbNoToAll, mbYesToAll, mbHelp, mbClose);<br />
TMsgDlgButtons = set of TMsgDlgBtn;<br />
<br />
<br />
const<br />
mbYesNoCancel = [mbYes, mbNo, mbCancel];<br />
mbOKCancel = [mbOK, mbCancel];<br />
mbAbortRetryIgnore = [mbAbort, mbRetry, mbIgnore];<br />
<br />
<br />
MsgDlgBtnToBitBtnKind: array[TMsgDlgBtn] of TBitBtnKind = (<br />
bkYes, bkNo, bkOK, bkCancel, bkAbort, bkRetry, bkIgnore,<br />
bkAll, bkNoToAll, bkYesToAll, bkHelp, bkClose<br />
);<br />
<br />
<br />
BitBtnKindToMsgDlgBtn: array[TBitBtnKind] of TMsgDlgBtn = (<br />
mbOk, mbOK, mbCancel, mbHelp, mbYes, mbNo,<br />
mbClose, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToALl, mbYesToAll<br />
);<br />
<br />
<br />
{ Déclaré dans Controls.pp }<br />
const<br />
mrNone = 0;<br />
mrOK = mrNone + 1;<br />
mrCancel = mrNone + 2;<br />
mrAbort = mrNone + 3;<br />
mrRetry = mrNone + 4;<br />
mrIgnore = mrNone + 5;<br />
mrYes = mrNone + 6;<br />
mrNo = mrNone + 7;<br />
mrAll = mrNone + 8;<br />
mrNoToAll = mrNone + 9;<br />
mrYesToAll = mrNone + 10;<br />
mrLast = mrYesToAll;<br />
<br />
----<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples version].</div>Ejcahttps://wiki.freepascal.org/index.php?title=Code_Examples/fr&diff=19583Code Examples/fr2007-06-11T15:53:36Z<p>Ejca: Lien français</p>
<hr />
<div>{{Code Examples}}<br />
<br />
Cette page est prévue pour conserver des liens sur des exemples de code Lazarus fonctionnant, ou bien sur ce wiki ou ailleurs sur le Web <br />
<br />
[[Dialog Examples/fr|Exemples de boite de dialogues]] - dialogues utiles non trouvés dans la palette de composants <br />
<br />
[[Howto Use TOpenDialog|Comment utiliser TOpenDialog]] - comment employer la boite de dialogue de FileOpen <br />
<br />
Beaucoup plus :<br />
[[Components and Code examples|Exemples de code et de composants]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Dialog_Examples/fr&diff=19582Dialog Examples/fr2007-06-11T15:51:30Z<p>Ejca: New page: {{Exemples de boîte de dialogue}} = Quelques boîtes de dialogue pratiques= Ci-dessous quelques boîtes de dialogue pratiques non incluses dans la palette de composant : * procedure Sho...</p>
<hr />
<div>{{Exemples de boîte de dialogue}}<br />
<br />
= Quelques boîtes de dialogue pratiques=<br />
Ci-dessous quelques boîtes de dialogue pratiques non incluses dans la palette de composant :<br />
<br />
* procedure ShowMessage (const Msg: string);<br />
* function MessageBox (Text, Caption : PChar; Flags: Word): Integer;<br />
* function MessageDlg (const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: LongInt): Word;<br />
* function InputBox (const ACaption, APrompt, ADefault: string); string;<br />
* function InputQuery (const ACaption, APrompt: string; var Value: string): Boolean;<br />
* function PasswordBox(const ACaption, APrompt : String) : String;<br />
<br />
Chacun de ces composants affiche une petite fenêtre contenant quelques informations et demandent une réponse à l'utilisateur : d'appuyer sur un bouton, d'entrer un texte ou les deux. Le développeur n'a que peu de contrôle sur le format, la taille ou la position de ces boîtes de dialogue, mais peut influer sur leur contenu textuel.<br><br />
La raison pour laquelle il y a tant d'alternatives différentes , et de permettre différentes méthodes d'appel de composant et de recevoir des informations en retour depuis une procédure ou une fonction.<br />
<br />
==Message Dialogs==<br />
Message dialogs affiche un message et attend qu'une touche soit appuyée ou un double-clic de la souris.<br />
===ShowMessage===<br />
Procedure ShowMessage (const Msg: string);<br />
<br />
{ Déclarée dans Dialogs.pp }<br />
<br />
La boîte de dialogue renvoyant un message la plus simple : elle prend une simple chaîne de caractères en paramètre, l'affiche dans une fenêtre stéréotypée, et attend un clic de souris ou une touche appuyée avec de continuer le programme.<br><br />
C'est un appel de procédure modal, tant que le bouton OK n'est pas cliqué ou validé par entrée la fenêtre reste en avant plan et garde le focus, interdisant tout autre manipulation dans le programme.<br />
<br />
Exemple :<br />
<br />
Program LazMessage;<br />
Uses Dialogs;<br />
begin<br />
ShowMessage ('C''est un message de Lazarus.')<br />
end.<br />
<br />
===MessageBox===<br />
Function Application.MessageBox (Text, Caption: PChar; Flags: longint) : Integer;<br />
<br />
{ Defined in Forms.pp as part of TApplication; hence must be called as Application.Messagebox () or using the 'with Application do ...' construct }<br />
<br />
Paramètres :<br />
<br />
* Text : la chaîne de caractères qui est affichée dans la boîte de dialogue ;<br />
* Caption : la chaîne de caractère affiché dans la barre de titre de la boîte de dialogue ;<br />
* Flags : longint – une constante qui peut définir le contenu et le comportement de la boîte de dialogue, par exemple MB_ABORTRETRYIGNORE + MR_ICONQUESTION fera en sorte que le programme affichera l'icône d'un point d'interrogation dans la boîte de dialogue (?) accompagné de trois boutons : ABORT RETRY IGNORE.<br />
<br />
La fonction renvoie un entier correspondant au bouton appuyé ; cette valeur peut être déterminé par en faisant référence aux constantes [IDOK..IDHELP]<br />
<br />
Cette fonction peut être appelée en tant que procédure (ie comme 'MessageBox()' au lieu de 'Variable := MessageBox()' comme on le ferait normalement pour une appel de fonction – voir exemple ci-dessous)<br />
<br />
Exemple :<br />
<br />
Uses Forms, Dialogs, LCLType;<br />
<br />
Procedure DisplayMessageBox;<br />
var reply, boxstyle: integer;<br />
begin<br />
with application do<br />
begin<br />
boxstyle := MB_ICONQUESTION + MB_YESNO;<br />
reply := MessageBox ('Appuyez sur un bouton', 'MessageBoxDemo', boxstyle);<br />
if reply = IDYES then MessageBox ('Oui', 'Répondre',MB_ICONINFORMATION)<br />
else MessageBox ('Non', 'Répondre', MB_ICONHAND);<br />
end;<br />
end;<br />
<br />
<center> http://lazarus-ccr.sourceforge.net/kbdata/MessageBoxDemo.png http://lazarus-ccr.sourceforge.net/kbdata/ReplyYes.png<br />
</center><br />
<br />
===MessageDLG===<br />
function MessageDlg(const aMsg: string; DlgType: TMsgDlgType; <br />
Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;<br />
function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; <br />
Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;<br />
<br />
Il existe deux versions de cette fonction, si vous omettez de renseigner 'Caption', ce sera la première fonction qui sera appelée et 'Caption' sera vide dans la boîte de dialogue.<br />
<br />
C'est la plus complète et la plus abouti des fonctions d'appel de boîte de dialogue, elle autorise au programmeur un contrôle maximal sur l'apparence de la boîte.<br />
Les paramètres définicent le type de boîte et son icône via une constante entière, et les boutons peuvent être spécifié via [mbRetry, mbIgnore, mbAbort, mbCancel].<br />
Le paramètre HelpCtx n'est pas encore implémenté et doit être initialisé à zéro.<br />
La valeur de retour de cette fonction et la valeure correspondante au bouton appuyé, exprimé par un entier (voir les définitions plus bas, [mrNone..mrAll]).<br />
<br />
Exemple :<br />
<br />
Uses forms, dialogs, lcltype, controls;<br />
<br />
procedure TryMessageDlg;<br />
begin<br />
if MessageDlg ('Question', 'Souhaitez-vous l'exécuter ?', mtConfirmation, <br />
[mbYes, mbNo, mbIgnore],0) = mrYes<br />
then { Exécuter la suite du programme};<br />
end;<br />
<br />
<br />
<center> http://lazarus-ccr.sourceforge.net/kbdata/Question.png <br />
</center><br />
<br />
==Boîtes de dialogue de texte==<br />
===InputBox===<br />
Boîte de dialogue de texte : affiche un message et attend que l'utilisateur entre une information sous forme de texte.<br />
<br />
Function InputBox(const ACaption, APrompt, ADefault : String) : String;<br />
<br />
Displays a box with defined title and prompt, and expects user input in a text box. Une chaîne de caractère réponse, peut être rentré optionnellement. The user-entered or default string is returned as the function result.<br />
<br />
Exemple :<br />
<br />
Uses forms, lcltype, dialogs, controls;<br />
<br />
procedure TryInputBox;<br />
var userstring: string;<br />
begin<br />
userstring := InputBox ('Get some text input', <br />
'Please type in some information', 'Some sample text');<br />
ShowMessage (userstring)<br />
end;<br />
<br />
===InputQuery===<br />
Function InputQuery(const ACaption, APrompt : String;<br />
MaskInput : Boolean; var Value : String) : Boolean;<br />
Function InputQuery(const ACaption, APrompt : String;<br />
var Value : String) : Boolean;<br />
<br />
Two versions of this function which displays a prompt and expects user input of textual data; the first includes a MaskInput boolean parameter which determines whether the user input is masked out by asterisks in the text-input box (like during entry of a password), while the second omits this property. The text entered by the user is returned in the variable parameter 'Value'; the function result is a boolean which returns TRUE if the OK button was pressed, or FALSE if the box was closed by any other mechanism (such as clicking the 'Close' icon on the top title bar). Omitting the MaskInput parameter is equivalent to setting it FALSE.<br />
<br />
Exemple :<br />
<br />
Uses forms, lcltype, dialogs, controls;<br />
<br />
procedure TryInputQuery;<br />
var QueryResult: boolean;<br />
userstring: string;<br />
begin<br />
if InputQuery ('Question', 'Type in some data', TRUE, userstring)<br />
then ShowMessage (userstring)<br />
else <br />
begin<br />
InputQuery ('Don''t be silly', 'Please try again', userstring);<br />
ShowMessage (userstring)<br />
end<br />
end;<br />
<br />
<center> http://lazarus-ccr.sourceforge.net/kbdata/MessageDlgQuestion.png </center><br />
<br />
<center> http://lazarus-ccr.sourceforge.net/kbdata/DontBeSillly.png </center><br />
<br />
===PasswordBox===<br />
Function PasswordBox(const ACaption, APrompt : String) : String;<br />
<br />
Behaves very similarly to the InputQuery function with MaskInput = TRUE; the difference is that the password that was typed in is returned as the result of the function (like InputBox).<br />
<br />
==Constants and Types used in message dialogs==<br />
<br />
Several constants and types relevant for use with the dialog boxes are pre-defined in the LCL library:<br />
<br />
const { Defined in LCLType.pp }<br />
<br />
integer constants for defining the types of buttons<br />
and the icon for display in MessageBox<br />
<br />
MB_OK = $00000000;<br />
MB_OKCANCEL = $00000001;<br />
MB_ABORTRETRYIGNORE = $00000002;<br />
MB_YESNOCANCEL = $00000003;<br />
MB_YESNO = $00000004;<br />
MB_RETRYCANCEL = $00000005;<br />
<br />
<br />
MB_ICONHAND = $00000010;<br />
MB_ICONQUESTION = $00000020;<br />
MB_ICONEXCLAMATION = $00000030;<br />
MB_ICONASTERICK = $00000040;<br />
MB_ICONWARNING = MB_ICONEXCLAMATION;<br />
MB_ICONERROR = MB_ICONHAND;<br />
MB_ICONINFORMATION = MB_ICONASTERICK;<br />
<br />
integer constants defining the return value from MessageBox according to which button was pressed<br />
<br />
IDOK = 1; ID_OK = IDOK;<br />
IDCANCEL = 2; ID_CANCEL = IDCANCEL;<br />
IDABORT = 3; ID_ABORT = IDABORT;<br />
IDRETRY = 4; ID_RETRY = IDRETRY;<br />
IDIGNORE = 5; ID_IGNORE = IDIGNORE;<br />
IDYES = 6; ID_YES = IDYES;<br />
IDNO = 7; ID_NO = IDNO;<br />
IDCLOSE = 8; ID_CLOSE = IDCLOSE;<br />
IDHELP = 9; ID_HELP = IDHELP;<br />
<br />
define whether first, second or third button is default<br />
<br />
MB_DEFBUTTON1 = $00000000;<br />
MB_DEFBUTTON2 = $00000100;<br />
MB_DEFBUTTON3 = $00000200;<br />
MB_DEFBUTTON4 = $00000300;<br />
<br />
The Flags parameter of MessageBox is constructed by adding a button constant [MB_OK..MB_RETRYCANCEL],<br />
an optional icon constant [MB_ICONHAND..MB_ICONINFORMATION]<br />
and an optional default button constant [MB_DEFBUTTON1..MB_DEFBUTTON3]<br />
<br />
Types for use in MessageDlg, which needs parameters<br />
AType of TMsgDlgType and AButtons of TMSgDlgButtons<br />
<br />
<br />
{ Defined in Dialogs.pp }<br />
type<br />
TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation,<br />
mtCustom);<br />
TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore,<br />
mbAll, mbNoToAll, mbYesToAll, mbHelp, mbClose);<br />
TMsgDlgButtons = set of TMsgDlgBtn;<br />
<br />
<br />
const<br />
mbYesNoCancel = [mbYes, mbNo, mbCancel];<br />
mbOKCancel = [mbOK, mbCancel];<br />
mbAbortRetryIgnore = [mbAbort, mbRetry, mbIgnore];<br />
<br />
<br />
MsgDlgBtnToBitBtnKind: array[TMsgDlgBtn] of TBitBtnKind = (<br />
bkYes, bkNo, bkOK, bkCancel, bkAbort, bkRetry, bkIgnore,<br />
bkAll, bkNoToAll, bkYesToAll, bkHelp, bkClose<br />
);<br />
<br />
<br />
BitBtnKindToMsgDlgBtn: array[TBitBtnKind] of TMsgDlgBtn = (<br />
mbOk, mbOK, mbCancel, mbHelp, mbYes, mbNo,<br />
mbClose, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToALl, mbYesToAll<br />
);<br />
<br />
<br />
{ Defined in Controls.pp }<br />
const<br />
mrNone = 0;<br />
mrOK = mrNone + 1;<br />
mrCancel = mrNone + 2;<br />
mrAbort = mrNone + 3;<br />
mrRetry = mrNone + 4;<br />
mrIgnore = mrNone + 5;<br />
mrYes = mrNone + 6;<br />
mrNo = mrNone + 7;<br />
mrAll = mrNone + 8;<br />
mrNoToAll = mrNone + 9;<br />
mrYesToAll = mrNone + 10;<br />
mrLast = mrYesToAll;<br />
<br />
----<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples version].</div>Ejcahttps://wiki.freepascal.org/index.php?title=Template:Dialog_Examples&diff=19580Template:Dialog Examples2007-06-11T15:50:10Z<p>Ejca: + Français</p>
<hr />
<div><small><br />
[[Dialog Examples/de|'''Deutsch (de)''']] <br />
[[Dialog Examples | English (en)]]<br />
[[Dialog Examples/es|'''Español (es)''']]<br />
[[Dialog Examples/fr|'''Français (fr)''']]<br />
[[Dialog Examples/ja|'''Japanese (ja)''']]<br />
</small></div>Ejcahttps://wiki.freepascal.org/index.php?title=Template:Streaming_components&diff=19522Template:Streaming components2007-06-10T11:02:00Z<p>Ejca: Ordre alphabétique (en) -> (fr) -> (ja)</p>
<hr />
<div><small><br />
[[Streaming components/de|'''Deutsch (de)''']] <br />
[[Streaming components | English (en)]]<br />
[[Streaming components/fr|'''Français (fr)''']]<br />
[[Streaming components/ja|'''Japanese (ja)''']]<br />
</small></div>Ejcahttps://wiki.freepascal.org/index.php?title=Developing_with_Graphics/fr&diff=19519Developing with Graphics/fr2007-06-10T10:52:36Z<p>Ejca: Typo et traduction</p>
<hr />
<div>{{Developing with Graphics}}<br />
<br />
Cette page sera un lancement de tutoriels concernant la manipulation d'images et autres graphiques. Car je ne suis pas un programmeur en graphisme, j'invite tous ceux qui sont prêt à partager leur compétence ! Ajouter juste un lien à la prochaine section, ajouter une page et créer votre propre article WiKi .<br />
<br />
Sur cette page quelques informations générales seront fournies.<br />
<br />
__TOC__<br />
<br />
==D'autres articles sur le graphisme == <br />
* [[GLScene]] - un portage de la librairie graphique visual OpenGL [http://www.glscene.org GLScene]<br />
* [[TAChart]] - composant de diagrammes pour Lazarus<br />
* [[PascalMagick]] - une API facile à utiliser pour s'interfacer avec [http://www.imagemagick.org ImageMagick], une suite libre de logiciel multiplateforme pour créer, éditer, et composer des images bitmap.<br />
* [[PlotPanel]] - un composant de traçage et de traçage de diagrammes pour des graphes animés<br />
* [[LazRGBGraphics]] - un paquet pour de rapides manipulations de pixels et de traitement d'image en mémoire (comme le balayage de ligne).<br />
* [[Perlin Noise|bruit de Perlin]] - un article concernant l'emploi de bruit de Perlin avec les applications LCL (Lazarus Component Library).<br />
<br />
==Travailler avec TBitmap ==<br />
La première chose à se rappeler est que Lazarus est censé être indépendant de la plateforme, ainsi toutes méthodes utilisant la fonctionnalité de l'API Windows sont inadmissibles. Ainsi une méthode comme ScanLine n'est pas supportée par Lazarus parce qu'il est destiné à être indépendant du dispositif de bitmap et utilise des fonctions de la bibliothèque GDI32.dll.<br />
<br />
Considérer que si vous n'indiquez pas la taille et la largeur du votre [[doc:lcl/graphics/tbitmap.html|TBitmap]] il aura le standard, lequel est tout à fait petit.<br />
<br />
===Un exemple de fading===<br />
Supposez que vous voulez faire disparaître(fading) une image. Dans Delphi vous pourriez faire quelque chose comme :<br />
<code><br />
type<br />
PRGBTripleArray = ^TRGBTripleArray;<br />
TRGBTripleArray = array[0..32767] of TRGBTriple;<br />
<br />
procedure TForm1.FadeIn(aBitMap: TBitMap);<br />
var<br />
Bitmap, BaseBitmap: TBitmap;<br />
Row, BaseRow: PRGBTripleArray;<br />
x, y, step: integer;<br />
begin<br />
Bitmap := TBitmap.Create;<br />
try<br />
Bitmap.PixelFormat := pf32bit; // or pf24bit<br />
Bitmap.Assign(aBitMap);<br />
BaseBitmap := TBitmap.Create;<br />
try<br />
BaseBitmap.PixelFormat := pf32bit;<br />
BaseBitmap.Assign(Bitmap);<br />
for step := 0 to 32 do begin<br />
for y := 0 to (Bitmap.Height - 1) do begin<br />
BaseRow := BaseBitmap.Scanline[y];<br />
Row := Bitmap.Scanline[y];<br />
for x := 0 to (Bitmap.Width - 1) do begin<br />
Row[x].rgbtRed := (step * BaseRow[x].rgbtRed) shr 5;<br />
Row[x].rgbtGreen := (step * BaseRow[x].rgbtGreen) shr 5; // Fading<br />
Row[x].rgbtBlue := (step * BaseRow[x].rgbtBlue) shr 5;<br />
end;<br />
end;<br />
Form1.Canvas.Draw(0, 0, Bitmap);<br />
InvalidateRect(Form1.Handle, nil, False);<br />
RedrawWindow(Form1.Handle, nil, 0, RDW_UPDATENOW);<br />
end;<br />
finally<br />
BaseBitmap.Free;<br />
end;<br />
finally<br />
Bitmap.Free;<br />
end;<br />
end;<br />
</code><br />
Cette fonction dans Lazarus pourrait être implémentée comme:<br />
<code><br />
procedure TForm1.FadeIn(ABitMap: TBitMap);<br />
var<br />
SrcIntfImg, TempIntfImg: TLazIntfImage;<br />
ImgHandle,ImgMaskHandle: HBitmap;<br />
FadeStep: Integer;<br />
px, py: Integer;<br />
CurColor: TFPColor;<br />
TempBitmap: TBitmap;<br />
begin<br />
SrcIntfImg:=TLazIntfImage.Create(0,0);<br />
SrcIntfImg.LoadFromBitmap(ABitmap.Handle,ABitmap.MaskHandle);<br />
TempIntfImg:=TLazIntfImage.Create(0,0);<br />
TempIntfImg.LoadFromBitmap(ABitmap.Handle,ABitmap.MaskHandle);<br />
TempBitmap:=TBitmap.Create;<br />
for FadeStep:=1 to 32 do begin<br />
for py:=0 to SrcIntfImg.Height-1 do begin<br />
for px:=0 to SrcIntfImg.Width-1 do begin<br />
CurColor:=SrcIntfImg.Colors[px,py];<br />
CurColor.Red:=(CurColor.Red*FadeStep) shr 5;<br />
CurColor.Green:=(CurColor.Green*FadeStep) shr 5;<br />
CurColor.Blue:=(CurColor.Blue*FadeStep) shr 5;<br />
TempIntfImg.Colors[px,py]:=CurColor;<br />
end;<br />
end;<br />
TempIntfImg.CreateBitmap(ImgHandle,ImgMaskHandle,false);<br />
TempBitmap.Handle:=ImgHandle;<br />
TempBitmap.MaskHandle:=ImgMaskHandle;<br />
Canvas.Draw(0,0,TempBitmap);<br />
end;<br />
SrcIntfImg.Free;<br />
TempIntfImg.Free;<br />
TempBitmap.Free;<br />
end;<br />
</code><br />
Le code Lazarus sur cette page a été pris du projet $LazarusPath/examples/lazintfimage/fadein1.lpi. Ainsi si vous voulez une initiation avec la programmation de graphiques jetez un coup d'oeil plus étroit sur cet exemple .<br />
<br />
===Tracer des bitmaps en couleurs transparentes===<br />
<br />
Un nouveau dispositif, implémenté avec Lazarus 0.9.11, sont les bitmap en couleur transparentes. les fichiers Bitmap (*.BMP)ne peuvent stocker aucune information sur la transparence, mais ils peuvent fonctionner comme s'ils en avaient si vous choisissez une couleur sur eux pour représenter le secteur transparent. C'est un tour courant utilisé dans les applications Win32.<br />
<br />
L'exemple suivant charge un Bitmap à partir d'une ressource Windows, choisit une couleur pour être transparente (clFuchsia) et le dessine ensuite sur le canvas.<br />
<br />
<pre><br />
procedure MyForm.MyButtonOnClick(Sender: TObject);<br />
var<br />
buffer: THandle;<br />
bmp: TBitmap;<br />
memstream: TMemoryStream;<br />
begin<br />
bmp := TBitmap.Create;<br />
<br />
buffer := Windows.LoadBitmap(hInstance, MAKEINTRESOURCE(ResourceID));<br />
<br />
if (buffer = 0) then exit; // Error loading the bitmap<br />
<br />
bmp.Handle := buffer;<br />
memstream := TMemoryStream.create;<br />
try<br />
bmp.SaveToStream(memstream);<br />
memstream.position := 0;<br />
bmp.LoadFromStream(memstream);<br />
finally<br />
memstream.free;<br />
end;<br />
<br />
bmp.Transparent := True;<br />
bmp.TransparentColor := clFuchsia;<br />
<br />
MyCanvas.Draw(0, 0, bmp);<br />
<br />
bmp.Free; // Release allocated resource<br />
end;<br />
</pre><br />
<br />
Noter les opérations de mémoire effectuées avec [[doc:rtl/classes/tmemorystream.html|TMemoryStream]]. Elles sont nécessaires pour assurer le chargement correct de l'image .<br />
<br />
===Faire une capture d'image de l'écran ===<br />
<br />
Depuis Lazarus 0.9.16 vous pouvez employer LCL pour faire des captures d'images de l'écran de manière multi-plateforme. Le code d'exemple suivant le fait (fonctionne avec gtk2 et win32, mais non gtk1 actuellement) :<br />
<br />
<pre><br />
uses LCLIntf, LCLType;<br />
<br />
...<br />
<br />
var<br />
MyBitmap: TBitmap<br />
ScreenDC: HDC;<br />
begin<br />
MyBitmap := TBitmap.Create;<br />
ScreenDC := GetDC(0);<br />
MyBitmap.LoadFromDevice(ScreenDC);<br />
ReleaseDC(ScreenDC);<br />
<br />
...<br />
</pre><br />
<br />
==graphiques en mouvement - Comment éviter le clignotement ==<br />
Beaucoup de programmes dessinent leur sortie sur le GUI sous forme de graphiques 2D. Si ces graphiques ont besoin de changer rapidement vous ferez face bientôt à un problème : les graphiques changeant rapidement clignotent souvent sur l'écran. Ceci se produit quand les utilisateurs voient parfois des images entières et parfois seulement quand c'est dessiné partiellement. Cela se produit parce que le procédé d'affichage a besoin de temps.<br />
<br />
Mais comment puis je éviter le clignotement et obtenir la meilleure vitesse de dessin ? Naturellement vous pourriez travailler avec l'accélération matérielle en utilisant OpenGL, mais cette approche est tout à fait lourde pour de petits programmes ou de vieux ordinateurs. Ce tutoriel se concentrera sur la façon de dessiner sur un TCanvas. Si vous avez besoin d'aide avec OpenGL, jeter un coup d'oeil sur l'exemple qui vient avec Lazarus. Vous pouvez également employer le gamepack d'A.J. Venter, qui fourni un canvas à double-tampon et un composant de sprite.<br />
<br />
Maintenant nous examinerons les options que nous avons pour dessiner un canvas :<br />
* [[#Draw to a TImage|Dessiner sur un Timage]]<br />
* [[#Draw on the OnPaint event|Dessiner sur l'evènement OnPaint de la fiche, un contrôle TPaintBox ou un autre]]<br />
* [[#Create a custom control which draws itself|Créer un contrôle à soi qui se dessine lui-même ]]<br />
* [[#Using A.J. Venter's gamepack|Employer le gamepack d'A.J. Venter]]<br />
<br />
===Dessiner sur un Timage===<br />
<br />
Un TImage se compose en 2 parts : un TGraphic, habituellement un TBitmap, contenant l'image persistante et l'aire visuelle, laquelle est peinte à chaque OnPaint. Redimensionner le TImage '''ne''' redimensionne pas le bitmap.<br />
Le graphique (ou bitmap) est accessible par l'intermédiaire de Image1.Picture.Graphic (ou Image1.Picture.Bitmap). La canvas est Image1.Picture.Bitmap.Canvas. <br />
Le canvas de l'aire visuelle d'une TImage est seulement accessible pendant Image1.OnPaint via Image1.Canvas.<br />
<br />
'''Important''' : Ne jamais employer le OnPaint de l'évênement Image1 pour dessiner le graphique/bitmap d'une TImage. Le graphique d'une TImage est en mémoire tampon aussi tout que vous devez faire est de dessiner vers elle de n'importe où et le changement est là pour toujours. Cependant, si vous redessinez constamment, l'image clignotera. Dans ce cas-ci vous pouvez essayer les autres options. Dessin sur une TImage est considéré comme étant plus lent que les autres approches.<br />
<br />
====Redimensionner le bitmap d'une TImage====<br />
<br />
Note : Ne pas employer ceci pendant OnPaint.<br />
<br />
with Image1.Picture.Bitmap do begin<br />
Width:=100;<br />
Height:=120;<br />
end;<br />
<br />
====Peindre sur le bitmap d'une TImage ====<br />
<br />
Note: Ne pas employer ceci pendant OnPaint.<br />
<br />
with Image1.Picture.Bitmap.Canvas do begin<br />
// fill the entire bitmap with red<br />
Brush.Color:=clRed;<br />
FillRect(0,0,Width,Height);<br />
end;<br />
<br />
Note : À l'intérieur de Image1.OnPaint l'Image1.Canvas pointe vers l'aire visible volatile. En dehors de Image1.OnPaint l'Image1.Canvas pointe vers Image1.Picture.Bitmap.Canvas.<br />
<br />
Un autre exemple :<br />
<br />
<code><br />
procedure TForm1.BitBtn1Click(Sender: TObject);<br />
var<br />
x, y: Integer;<br />
begin<br />
// Draws the backgroung<br />
MyImage.Canvas.Pen.Color := clWhite;<br />
MyImage.Canvas.Rectangle(0, 0, Image.Width, Image.Height);<br />
<br />
// Draws squares<br />
MyImage.Canvas.Pen.Color := clBlack;<br />
for x := 1 to 8 do<br />
for y := 1 to 8 do<br />
MyImage.Canvas.Rectangle(Round((x - 1) * Image.Width / 8), Round((y - 1) * Image.Height / 8),<br />
Round(x * Image.Width / 8), Round(y * Image.Height / 8));<br />
end;<br />
</code><br />
<br />
==== Peindre sur l'aire visuelle volatile de TImage====<br />
<br />
Vous pouvez seulement peindre sur ce secteur pendant OnPaint. OnPaint est éventuellement appellé automatiquement par la LCL quand le secteur a été infirmé. Vous pouvez infirmer manuellement le secteur avec Image1.Invalidate. Ceci n'appellera pas immédiatement OnPaint et vous pouvez appeler Invalidate autant de fois que vous le voulez.<br />
<br />
procedure TForm.Image1Paint(Sender: TObject);<br />
begin<br />
with Image1.Canvas do begin<br />
// paint a line<br />
Pen.Color:=clRed;<br />
Line(0,0,Width,Height);<br />
end;<br />
end;<br />
<br />
===Dessiner sur l'évênement OnPaint===<br />
Dans ce cas tout le dessin doit être fait sur l'évênement OnPaint de la fiche. Il ne reste pas sur le tampon, comme sur la TImage.<br />
<br />
===Créer un contrôle à soi qui se dessine lui-même===<br />
Créer une comtôle à soi à l'avantage de structurer votre code et vous pouvez réutiliser le contrôle. Cette approche est très rapide,mais elle peut toujours produire du clignotement si vous ne dessinez pas sur un TBitmap en premier et dessiner ensuite sur le canvas. Dans ce cas il n'est pas besoin d'employer l'évênement OnPaint du contrôle.<br />
<br />
Voici ici un exemple de contrôle personnalisé...<br />
<br />
<code><br />
uses<br />
Classes, SysUtils, Controls, Graphics, LCLType;<br />
<br />
type<br />
TMyDrawingControl = class(TCustomControl)<br />
public<br />
procedure EraseBackground(DC: HDC); override;<br />
procedure Paint; override;<br />
end;<br />
<br />
implementation<br />
<br />
procedure TMyDrawingControl.EraseBackground(DC: HDC);<br />
begin<br />
// Uncomment this to enable default background erasing<br />
//inherited EraseBackground(DC);<br />
end; <br />
<br />
procedure TMyDrawingControl.Paint;<br />
var<br />
x, y: Integer;<br />
Bitmap: TBitmap;<br />
begin<br />
Bitmap := TBitmap.Create;<br />
try<br />
// Initializes the Bitmap Size<br />
Bitmap.Height := Height;<br />
Bitmap.Width := Width;<br />
<br />
// Draws the background<br />
Bitmap.Canvas.Pen.Color := clWhite;<br />
Bitmap.Canvas.Rectangle(0, 0, Width, Height);<br />
<br />
// Draws squares<br />
Bitmap.Canvas.Pen.Color := clBlack;<br />
for x := 1 to 8 do<br />
for y := 1 to 8 do<br />
Bitmap.Canvas.Rectangle(Round((x - 1) * Width / 8), Round((y - 1) * Height / 8),<br />
Round(x * Width / 8), Round(y * Height / 8));<br />
<br />
Canvas.Draw(0, 0, Bitmap);<br />
finally<br />
Bitmap.Free;<br />
end;<br />
<br />
inherited Paint;<br />
end;<br />
</code><br />
...et la manière de le créer dans la fiche.<br />
<code><br />
procedure TMyForm.FormCreate(Sender: TObject);<br />
begin<br />
MyDrawingControl:= TMyDrawingControl.Create(Self);<br />
MyDrawingControl.Height := 400;<br />
MyDrawingControl.Width := 500;<br />
MyDrawingControl.Top := 0;<br />
MyDrawingControl.Left := 0;<br />
MyDrawingControl.Parent := Self;<br />
MyDrawingControl.DoubleBuffered := True;<br />
end;<br />
</code><br />
N'oubliez pas de le détruire :<br />
<code><br />
procedure TMyForm.FormDestroy(Sender: TObject);<br />
begin<br />
MyDrawingControl.Free;<br />
end;<br />
</code><br />
<br />
Paramétrer le Top et le Left à zéro n'est pas nécessaire, puisque c'est la position standard, mais est fait ainsi pour renforcer l'endroi où la commande sera mise.<br />
<br />
"MyDrawingControl.Parent := Self;" est très important et vous ne verrez pas votre contrôle si vous ne faites pas ainsi.<br />
<br />
"MyDrawingControl.DoubleBuffered := True;" est nécessaire pour éviter le clignotement sur Windows. Il n'a aucun effet sur gtk.<br />
<br />
===Employer le gamepack d'A.J. Venter===<br />
<br />
L'approche par gamepack est de dessiner tout sur un canvas à double-tampon, lequel se met seulement mis à jour vers le canvas visible quand vous êtes prêt. Ceci demande beaucoup de code, mais il a l'avantage de pouvoir faire de grandes scènes changeant rapidement avec des sprites multiples sur elles. Si vous souhaitez employer cette approche, vous pouvez être intéressés par le gamepack d'A.J. Venter, un ensemble de composants pour le développement de jeu dans Lazarus, ce qui fournit un composant avec une zone de visualisation avec double-tampon aussi bien qu'un composant de sprite, conçu pour bien s'intégrer entre eux. Vous pouvez obtenir le gamepack via subversion:<br /><br />
<code><br />
svn co svn://silentcoder.co.za/lazarus/gamepack<br />
</code></div>Ejcahttps://wiki.freepascal.org/index.php?title=Developing_with_Graphics/fr&diff=19518Developing with Graphics/fr2007-06-10T10:45:29Z<p>Ejca: /* D'autres articles sur le graphisme */ Typo</p>
<hr />
<div>{{Developing with Graphics}}<br />
<br />
Cette page sera un lancement de tutoriels concernant la manipulation d'images et autres graphiques. Car je ne suis pas un programmeur en graphisme , j'invite tous ceux qui sont prêt à partager leur compétence! Ajouter juste un lien à la prochaine section , ajouter une page et créer votre propre article WiKi .<br />
<br />
Sur cette page quelques informations générales seront fournies .<br />
<br />
__TOC__<br />
<br />
==D'autres articles sur le graphisme == <br />
* [[GLScene]] - un portage de la librairie graphique visual OpenGL [http://www.glscene.org GLScene]<br />
* [[TAChart]] - composant de diagrammes pour Lazarus<br />
* [[PascalMagick]] - une API facile à utiliser pour s'interfacer avec [http://www.imagemagick.org ImageMagick], une suite libre de logiciel multiplateforme pour créer, éditer, et composer des images bitmap.<br />
* [[PlotPanel]] - un composant de traçage et de traçage de diagrammes pour des graphes animés<br />
* [[LazRGBGraphics]] - un paquet pour de rapides manipulations de pixels et de traitement d'image en mémoire (comme le balayage de ligne).<br />
* [[Perlin Noise|bruit de Perlin]] - un article concernant l'emploi de bruit de Perlin avec les applications LCL (Lazarus Component Library).<br />
<br />
==Travailler avec TBitmap ==<br />
La première chose à se rappeler est que Lazarus est censé être indépendant de la plateforme, ainsi toutes méthodes utilisant la fonctionnalité de l'API Windows sont inadmissibles. Ainsi une méthode comme ScanLine n'est pas supportée par Lazarus parce qu'il est destiné à être indépendant du dispositif de bitmap et utilise des fonctions de la bibliothèque GDI32.dll.<br />
<br />
Considérer que si vous n'indiquez pas la taille et la largeur du votre [[doc:lcl/graphics/tbitmap.html|TBitmap]] il aura le standard , lequel est tout à fait petit .<br />
<br />
===Un exemple de fading===<br />
Supposez que vous voulez faire disparaître(fading) une image . Dans Delphi vous pourriez faire quelque chose comme :<br />
<code><br />
type<br />
PRGBTripleArray = ^TRGBTripleArray;<br />
TRGBTripleArray = array[0..32767] of TRGBTriple;<br />
<br />
procedure TForm1.FadeIn(aBitMap: TBitMap);<br />
var<br />
Bitmap, BaseBitmap: TBitmap;<br />
Row, BaseRow: PRGBTripleArray;<br />
x, y, step: integer;<br />
begin<br />
Bitmap := TBitmap.Create;<br />
try<br />
Bitmap.PixelFormat := pf32bit; // or pf24bit<br />
Bitmap.Assign(aBitMap);<br />
BaseBitmap := TBitmap.Create;<br />
try<br />
BaseBitmap.PixelFormat := pf32bit;<br />
BaseBitmap.Assign(Bitmap);<br />
for step := 0 to 32 do begin<br />
for y := 0 to (Bitmap.Height - 1) do begin<br />
BaseRow := BaseBitmap.Scanline[y];<br />
Row := Bitmap.Scanline[y];<br />
for x := 0 to (Bitmap.Width - 1) do begin<br />
Row[x].rgbtRed := (step * BaseRow[x].rgbtRed) shr 5;<br />
Row[x].rgbtGreen := (step * BaseRow[x].rgbtGreen) shr 5; // Fading<br />
Row[x].rgbtBlue := (step * BaseRow[x].rgbtBlue) shr 5;<br />
end;<br />
end;<br />
Form1.Canvas.Draw(0, 0, Bitmap);<br />
InvalidateRect(Form1.Handle, nil, False);<br />
RedrawWindow(Form1.Handle, nil, 0, RDW_UPDATENOW);<br />
end;<br />
finally<br />
BaseBitmap.Free;<br />
end;<br />
finally<br />
Bitmap.Free;<br />
end;<br />
end;<br />
</code><br />
Cette fonction dans Lazarus pourrait être implémentée comme:<br />
<code><br />
procedure TForm1.FadeIn(ABitMap: TBitMap);<br />
var<br />
SrcIntfImg, TempIntfImg: TLazIntfImage;<br />
ImgHandle,ImgMaskHandle: HBitmap;<br />
FadeStep: Integer;<br />
px, py: Integer;<br />
CurColor: TFPColor;<br />
TempBitmap: TBitmap;<br />
begin<br />
SrcIntfImg:=TLazIntfImage.Create(0,0);<br />
SrcIntfImg.LoadFromBitmap(ABitmap.Handle,ABitmap.MaskHandle);<br />
TempIntfImg:=TLazIntfImage.Create(0,0);<br />
TempIntfImg.LoadFromBitmap(ABitmap.Handle,ABitmap.MaskHandle);<br />
TempBitmap:=TBitmap.Create;<br />
for FadeStep:=1 to 32 do begin<br />
for py:=0 to SrcIntfImg.Height-1 do begin<br />
for px:=0 to SrcIntfImg.Width-1 do begin<br />
CurColor:=SrcIntfImg.Colors[px,py];<br />
CurColor.Red:=(CurColor.Red*FadeStep) shr 5;<br />
CurColor.Green:=(CurColor.Green*FadeStep) shr 5;<br />
CurColor.Blue:=(CurColor.Blue*FadeStep) shr 5;<br />
TempIntfImg.Colors[px,py]:=CurColor;<br />
end;<br />
end;<br />
TempIntfImg.CreateBitmap(ImgHandle,ImgMaskHandle,false);<br />
TempBitmap.Handle:=ImgHandle;<br />
TempBitmap.MaskHandle:=ImgMaskHandle;<br />
Canvas.Draw(0,0,TempBitmap);<br />
end;<br />
SrcIntfImg.Free;<br />
TempIntfImg.Free;<br />
TempBitmap.Free;<br />
end;<br />
</code><br />
Le code Lazarus sur cette page a été pris du projet $LazarusPath/examples/lazintfimage/fadein1.lpi. Ainsi si vous voulez une initiation avec la programmation de graphiques jetez un coup d'oeil plus étroit sur cet exemple .<br />
<br />
===Tracer des bitmaps en couleurs transparentes===<br />
<br />
Un nouveau dispositif , implémenté avec Lazarus 0.9.11, sont les bitmap en couleur transparentes. les fichiers Bitmap (*.BMP)ne peuvent stocker aucune information sur la transparence , mais ils peuvent fonctionner comme s'ils en avaient si vous choisissez une couleur sur eux pour représenter le secteur transparent . C'est un tour courant utilisé dans les applications Win32.<br />
<br />
L'exemple suivant charge un Bitmap à partir d'une ressource Windows, choisit une couleur pour être transparente (clFuchsia) et le dessine ensuite sur le canvas.<br />
<br />
<pre><br />
procedure MyForm.MyButtonOnClick(Sender: TObject);<br />
var<br />
buffer: THandle;<br />
bmp: TBitmap;<br />
memstream: TMemoryStream;<br />
begin<br />
bmp := TBitmap.Create;<br />
<br />
buffer := Windows.LoadBitmap(hInstance, MAKEINTRESOURCE(ResourceID));<br />
<br />
if (buffer = 0) then exit; // Error loading the bitmap<br />
<br />
bmp.Handle := buffer;<br />
memstream := TMemoryStream.create;<br />
try<br />
bmp.SaveToStream(memstream);<br />
memstream.position := 0;<br />
bmp.LoadFromStream(memstream);<br />
finally<br />
memstream.free;<br />
end;<br />
<br />
bmp.Transparent := True;<br />
bmp.TransparentColor := clFuchsia;<br />
<br />
MyCanvas.Draw(0, 0, bmp);<br />
<br />
bmp.Free; // Release allocated resource<br />
end;<br />
</pre><br />
<br />
Noter les opérations de mémoire effectuées avec [[doc:rtl/classes/tmemorystream.html|TMemoryStream]]. Elles sont nécessaires pour assurer le chargement correct de l'image .<br />
<br />
===Faire une capture d'image de l'écran ===<br />
<br />
Depuis Lazarus 0.9.16 vous pouvez employer LCL pour faire des captures d'images de l'écran de manière multi-plateforme. Le code d'exemple suivant le fait (fonctionne avec gtk2 et win32, mais non gtk1 actuellement ):<br />
<br />
<pre><br />
uses LCLIntf, LCLType;<br />
<br />
...<br />
<br />
var<br />
MyBitmap: TBitmap<br />
ScreenDC: HDC;<br />
begin<br />
MyBitmap := TBitmap.Create;<br />
ScreenDC := GetDC(0);<br />
MyBitmap.LoadFromDevice(ScreenDC);<br />
ReleaseDC(ScreenDC);<br />
<br />
...<br />
</pre><br />
<br />
==graphiques en mouvement - Comment éviter le clignotement ==<br />
Beaucoup de programmes dessinent leur sortie sur le GUI sous forme de graphiques 2D. Si ces graphiques ont besoin de changer rapidement vous ferez face bientôt à un problème : les graphiques changeant rapidement clignotent souvent sur l'écran . Ceci se produit quand les utilisateurs voient parfois des images entières et parfois seulement quand c'est dessiné partiellement. Cela se produit parce que le procédé d'affichage a besoin de temps .<br />
<br />
Mais comment puis je éviter le clignotement et obtenir la meilleure vitesse de dessin ? Naturellement vous pourriez travailler avec l'accélération matérielle en utilisant OpenGL , mais cette approche est tout à fait lourde pour de petits programmes ou de vieux ordinateurs . Ce tutoriel se concentrera sur la façon de dessiner sur un TCanvas. Si vous avez besoin d'aide avec OpenGL, jeter un coup d'oeil sur l'exemple qui vient avec Lazarus. Vous pouvez également employer le gamepack d'A.J. Venter, qui fourni un canvas à double-tampon et un composant de sprite .<br />
<br />
Maintenant nous examinerons les options que nous avons pour dessiner un canvas :<br />
* [[#Draw to a TImage|Dessiner sur un Timage]]<br />
* [[#Draw on the OnPaint event|Dessiner sur l'evènement OnPaint de la fiche, un contrôle TPaintBox ou un autre]]<br />
* [[#Create a custom control which draws itself|Créer un contrôle à soi qui se dessine lui-même ]]<br />
* [[#Using A.J. Venter's gamepack|Employer le gamepack d'A.J. Venter]]<br />
<br />
===Dessiner sur un Timage===<br />
<br />
Un TImage se compose en 2 parts : un TGraphic, habituellement un TBitmap, contenant l'image persistante et l'aire visuelle , laquelle est peinte à chaque OnPaint. Redimensionner le TImage '''ne''' redimensionne pas le bitmap.<br />
Le graphique (ou bitmap) est accessible par l'intermédiaire de Image1.Picture.Graphic (ou Image1.Picture.Bitmap). La canvas est Image1.Picture.Bitmap.Canvas. <br />
Le canvas de l'aire visuelle d'une TImage est seulement accessible pendant Image1.OnPaint via Image1.Canvas.<br />
<br />
'''Important''': Ne jamais employer le OnPaint de l'évênement Image1 pour dessiner le graphique/bitmap d'une TImage. Le graphique d'une TImage est en mémoire tampon aussi tout que vous devez faire est de dessiner vers elle de n'importe où et le changement est là pour toujours . Cependant, si vous redessinez constamment , l'image clignotera . Dans ce cas-ci vous pouvez essayer les autres options . Dessin sur une TImage est considéré comme étant plus lent que les autres approches .<br />
<br />
====Redimensionner le bitmap d'une TImage====<br />
<br />
Note : Ne pas employer ceci pendant OnPaint.<br />
<br />
with Image1.Picture.Bitmap do begin<br />
Width:=100;<br />
Height:=120;<br />
end;<br />
<br />
====Peindre sur le bitmap d'une TImage ====<br />
<br />
Note: Ne pas employer ceci pendant OnPaint.<br />
<br />
with Image1.Picture.Bitmap.Canvas do begin<br />
// fill the entire bitmap with red<br />
Brush.Color:=clRed;<br />
FillRect(0,0,Width,Height);<br />
end;<br />
<br />
Note: À l'intérieur de Image1.OnPaint l' Image1.Canvas pointe vers l'aire visible volatile. En dehors de Image1.OnPaint l' Image1.Canvas pointe vers Image1.Picture.Bitmap.Canvas.<br />
<br />
Un autre exemple :<br />
<br />
<code><br />
procedure TForm1.BitBtn1Click(Sender: TObject);<br />
var<br />
x, y: Integer;<br />
begin<br />
// Draws the backgroung<br />
MyImage.Canvas.Pen.Color := clWhite;<br />
MyImage.Canvas.Rectangle(0, 0, Image.Width, Image.Height);<br />
<br />
// Draws squares<br />
MyImage.Canvas.Pen.Color := clBlack;<br />
for x := 1 to 8 do<br />
for y := 1 to 8 do<br />
MyImage.Canvas.Rectangle(Round((x - 1) * Image.Width / 8), Round((y - 1) * Image.Height / 8),<br />
Round(x * Image.Width / 8), Round(y * Image.Height / 8));<br />
end;<br />
</code><br />
<br />
==== Peindre sur l'aire visuelle volatile de TImage====<br />
<br />
Vous pouvez seulement peindre sur ce secteur pendant OnPaint. OnPaint est éventuellement appellé automatiquement par la LCL quand le secteur a été infirmé . Vous pouvez infirmer manuellement le secteur avec Image1.Invalidate. Ceci n'appellera pas immédiatement OnPaint et vous pouvez appeler Invalidate autant de fois que vous le voulez .<br />
<br />
procedure TForm.Image1Paint(Sender: TObject);<br />
begin<br />
with Image1.Canvas do begin<br />
// paint a line<br />
Pen.Color:=clRed;<br />
Line(0,0,Width,Height);<br />
end;<br />
end;<br />
<br />
===Dessiner sur l'évênement OnPaint===<br />
Dans ce cas tout le dessin doit être fait sur l'évênement OnPaint de la fiche. Il ne reste pas sur le tampon, comme sur la TImage.<br />
<br />
===Créer un contrôle à soi qui se dessine lui-même===<br />
Créer une comtôle à soi à l'avantage de structurer votre code et vous pouvez réutiliser le contrôle . Cette approche est très rapide,mais elle peut toujours produire du clignotement si vous ne dessinez pas sur un TBitmap en premier et dessiner ensuite sur le canvas. Dans ce cas il n'est pas besoin d'employer l'évênement OnPaint du contrôle.<br />
<br />
Voici ici un exemple de contrôle à soi:<br />
<br />
<code><br />
uses<br />
Classes, SysUtils, Controls, Graphics, LCLType;<br />
<br />
type<br />
TMyDrawingControl = class(TCustomControl)<br />
public<br />
procedure EraseBackground(DC: HDC); override;<br />
procedure Paint; override;<br />
end;<br />
<br />
implementation<br />
<br />
procedure TMyDrawingControl.EraseBackground(DC: HDC);<br />
begin<br />
// Uncomment this to enable default background erasing<br />
//inherited EraseBackground(DC);<br />
end; <br />
<br />
procedure TMyDrawingControl.Paint;<br />
var<br />
x, y: Integer;<br />
Bitmap: TBitmap;<br />
begin<br />
Bitmap := TBitmap.Create;<br />
try<br />
// Initializes the Bitmap Size<br />
Bitmap.Height := Height;<br />
Bitmap.Width := Width;<br />
<br />
// Draws the background<br />
Bitmap.Canvas.Pen.Color := clWhite;<br />
Bitmap.Canvas.Rectangle(0, 0, Width, Height);<br />
<br />
// Draws squares<br />
Bitmap.Canvas.Pen.Color := clBlack;<br />
for x := 1 to 8 do<br />
for y := 1 to 8 do<br />
Bitmap.Canvas.Rectangle(Round((x - 1) * Width / 8), Round((y - 1) * Height / 8),<br />
Round(x * Width / 8), Round(y * Height / 8));<br />
<br />
Canvas.Draw(0, 0, Bitmap);<br />
finally<br />
Bitmap.Free;<br />
end;<br />
<br />
inherited Paint;<br />
end;<br />
</code><br />
and how we create it on the form:<br />
<code><br />
procedure TMyForm.FormCreate(Sender: TObject);<br />
begin<br />
MyDrawingControl:= TMyDrawingControl.Create(Self);<br />
MyDrawingControl.Height := 400;<br />
MyDrawingControl.Width := 500;<br />
MyDrawingControl.Top := 0;<br />
MyDrawingControl.Left := 0;<br />
MyDrawingControl.Parent := Self;<br />
MyDrawingControl.DoubleBuffered := True;<br />
end;<br />
</code><br />
just don´t forget to destroy it:<br />
<code><br />
procedure TMyForm.FormDestroy(Sender: TObject);<br />
begin<br />
MyDrawingControl.Free;<br />
end;<br />
</code><br />
<br />
Paramétrer le Top et le Left à zéro n'est pas nécessaire , puisque c'est la position standard, mais est fait ainsi pour renforcer l'endroi où la commande sera mise .<br />
<br />
"MyDrawingControl.Parent := Self;" est très important et vous ne verrez pas votre contrôle si vous ne faites pas ainsi .<br />
<br />
"MyDrawingControl.DoubleBuffered := True;" est nécessaire pour éviter le clignotement sur Windows . Il n'a aucun effet sur gtk.<br />
<br />
===Employer le gamepack d'A.J. Venter===<br />
<br />
L'approche par gamepack est de dessiner tout sur un canvas à double-tampon, lequel se met seulement mis à jour vers le canvas visible quand vous êtes prêt . Ceci demande beaucoup de code, mais il a l'avantage de pouvoir faire de grandes scènes changeant rapidement avec des sprites multiples sur elles . Si vous souhaitez employer cette approche , vous pouvez être intéressés par le gamepack d'A.J. Venter, un ensemble de composants pour le développement de jeu dans Lazarus, ce qui fournit un composant avec une zone de visualisation avec double-tampon aussi bien qu'un composant de sprite, conçu pour bien s'intégrer entre eux . Vous pouvez obtenir le gamepack via subversion:<br /><br />
<code><br />
svn co svn://silentcoder.co.za/lazarus/gamepack<br />
</code></div>Ejcahttps://wiki.freepascal.org/index.php?title=Developing_with_Graphics/fr&diff=19517Developing with Graphics/fr2007-06-10T10:43:22Z<p>Ejca: /* D'autres articles sur le graphisme */ Typo</p>
<hr />
<div>{{Developing with Graphics}}<br />
<br />
Cette page sera un lancement de tutoriels concernant la manipulation d'images et autres graphiques. Car je ne suis pas un programmeur en graphisme , j'invite tous ceux qui sont prêt à partager leur compétence! Ajouter juste un lien à la prochaine section , ajouter une page et créer votre propre article WiKi .<br />
<br />
Sur cette page quelques informations générales seront fournies .<br />
<br />
__TOC__<br />
<br />
==D'autres articles sur le graphisme == <br />
* [[GLScene]] - un portage de la librairie graphique visual OpenGL [http://www.glscene.org GLScene]<br />
* [[TAChart]] - composant de diagrammes pour Lazarus<br />
* [[PascalMagick]] - une API facile à utiliser pour s'interfacer avec [http://www.imagemagick.org ImageMagick], une suite libre de logiciel multiplateforme pour créer, éditer, et composer des images bitmap.<br />
* [[PlotPanel]] - un composant de traçage et de traçage de diagrammes pour des graphes animés<br />
* [[LazRGBGraphics]] - un paquet pour de rapides manipulations de pixels et de traitement d'image en mémoire (comme le balayage de ligne).<br />
* [[Perlin Noise|bruit de Perlin]] - un article concernant l'emploi de bruit de Perlin avec les applications LCL( Lazarus Component Library).<br />
<br />
==Travailler avec TBitmap ==<br />
La première chose à se rappeler est que Lazarus est censé être indépendant de la plateforme, ainsi toutes méthodes utilisant la fonctionnalité de l'API Windows sont inadmissibles. Ainsi une méthode comme ScanLine n'est pas supportée par Lazarus parce qu'il est destiné à être indépendant du dispositif de bitmap et utilise des fonctions de la bibliothèque GDI32.dll.<br />
<br />
Considérer que si vous n'indiquez pas la taille et la largeur du votre [[doc:lcl/graphics/tbitmap.html|TBitmap]] il aura le standard , lequel est tout à fait petit .<br />
<br />
===Un exemple de fading===<br />
Supposez que vous voulez faire disparaître(fading) une image . Dans Delphi vous pourriez faire quelque chose comme :<br />
<code><br />
type<br />
PRGBTripleArray = ^TRGBTripleArray;<br />
TRGBTripleArray = array[0..32767] of TRGBTriple;<br />
<br />
procedure TForm1.FadeIn(aBitMap: TBitMap);<br />
var<br />
Bitmap, BaseBitmap: TBitmap;<br />
Row, BaseRow: PRGBTripleArray;<br />
x, y, step: integer;<br />
begin<br />
Bitmap := TBitmap.Create;<br />
try<br />
Bitmap.PixelFormat := pf32bit; // or pf24bit<br />
Bitmap.Assign(aBitMap);<br />
BaseBitmap := TBitmap.Create;<br />
try<br />
BaseBitmap.PixelFormat := pf32bit;<br />
BaseBitmap.Assign(Bitmap);<br />
for step := 0 to 32 do begin<br />
for y := 0 to (Bitmap.Height - 1) do begin<br />
BaseRow := BaseBitmap.Scanline[y];<br />
Row := Bitmap.Scanline[y];<br />
for x := 0 to (Bitmap.Width - 1) do begin<br />
Row[x].rgbtRed := (step * BaseRow[x].rgbtRed) shr 5;<br />
Row[x].rgbtGreen := (step * BaseRow[x].rgbtGreen) shr 5; // Fading<br />
Row[x].rgbtBlue := (step * BaseRow[x].rgbtBlue) shr 5;<br />
end;<br />
end;<br />
Form1.Canvas.Draw(0, 0, Bitmap);<br />
InvalidateRect(Form1.Handle, nil, False);<br />
RedrawWindow(Form1.Handle, nil, 0, RDW_UPDATENOW);<br />
end;<br />
finally<br />
BaseBitmap.Free;<br />
end;<br />
finally<br />
Bitmap.Free;<br />
end;<br />
end;<br />
</code><br />
Cette fonction dans Lazarus pourrait être implémentée comme:<br />
<code><br />
procedure TForm1.FadeIn(ABitMap: TBitMap);<br />
var<br />
SrcIntfImg, TempIntfImg: TLazIntfImage;<br />
ImgHandle,ImgMaskHandle: HBitmap;<br />
FadeStep: Integer;<br />
px, py: Integer;<br />
CurColor: TFPColor;<br />
TempBitmap: TBitmap;<br />
begin<br />
SrcIntfImg:=TLazIntfImage.Create(0,0);<br />
SrcIntfImg.LoadFromBitmap(ABitmap.Handle,ABitmap.MaskHandle);<br />
TempIntfImg:=TLazIntfImage.Create(0,0);<br />
TempIntfImg.LoadFromBitmap(ABitmap.Handle,ABitmap.MaskHandle);<br />
TempBitmap:=TBitmap.Create;<br />
for FadeStep:=1 to 32 do begin<br />
for py:=0 to SrcIntfImg.Height-1 do begin<br />
for px:=0 to SrcIntfImg.Width-1 do begin<br />
CurColor:=SrcIntfImg.Colors[px,py];<br />
CurColor.Red:=(CurColor.Red*FadeStep) shr 5;<br />
CurColor.Green:=(CurColor.Green*FadeStep) shr 5;<br />
CurColor.Blue:=(CurColor.Blue*FadeStep) shr 5;<br />
TempIntfImg.Colors[px,py]:=CurColor;<br />
end;<br />
end;<br />
TempIntfImg.CreateBitmap(ImgHandle,ImgMaskHandle,false);<br />
TempBitmap.Handle:=ImgHandle;<br />
TempBitmap.MaskHandle:=ImgMaskHandle;<br />
Canvas.Draw(0,0,TempBitmap);<br />
end;<br />
SrcIntfImg.Free;<br />
TempIntfImg.Free;<br />
TempBitmap.Free;<br />
end;<br />
</code><br />
Le code Lazarus sur cette page a été pris du projet $LazarusPath/examples/lazintfimage/fadein1.lpi. Ainsi si vous voulez une initiation avec la programmation de graphiques jetez un coup d'oeil plus étroit sur cet exemple .<br />
<br />
===Tracer des bitmaps en couleurs transparentes===<br />
<br />
Un nouveau dispositif , implémenté avec Lazarus 0.9.11, sont les bitmap en couleur transparentes. les fichiers Bitmap (*.BMP)ne peuvent stocker aucune information sur la transparence , mais ils peuvent fonctionner comme s'ils en avaient si vous choisissez une couleur sur eux pour représenter le secteur transparent . C'est un tour courant utilisé dans les applications Win32.<br />
<br />
L'exemple suivant charge un Bitmap à partir d'une ressource Windows, choisit une couleur pour être transparente (clFuchsia) et le dessine ensuite sur le canvas.<br />
<br />
<pre><br />
procedure MyForm.MyButtonOnClick(Sender: TObject);<br />
var<br />
buffer: THandle;<br />
bmp: TBitmap;<br />
memstream: TMemoryStream;<br />
begin<br />
bmp := TBitmap.Create;<br />
<br />
buffer := Windows.LoadBitmap(hInstance, MAKEINTRESOURCE(ResourceID));<br />
<br />
if (buffer = 0) then exit; // Error loading the bitmap<br />
<br />
bmp.Handle := buffer;<br />
memstream := TMemoryStream.create;<br />
try<br />
bmp.SaveToStream(memstream);<br />
memstream.position := 0;<br />
bmp.LoadFromStream(memstream);<br />
finally<br />
memstream.free;<br />
end;<br />
<br />
bmp.Transparent := True;<br />
bmp.TransparentColor := clFuchsia;<br />
<br />
MyCanvas.Draw(0, 0, bmp);<br />
<br />
bmp.Free; // Release allocated resource<br />
end;<br />
</pre><br />
<br />
Noter les opérations de mémoire effectuées avec [[doc:rtl/classes/tmemorystream.html|TMemoryStream]]. Elles sont nécessaires pour assurer le chargement correct de l'image .<br />
<br />
===Faire une capture d'image de l'écran ===<br />
<br />
Depuis Lazarus 0.9.16 vous pouvez employer LCL pour faire des captures d'images de l'écran de manière multi-plateforme. Le code d'exemple suivant le fait (fonctionne avec gtk2 et win32, mais non gtk1 actuellement ):<br />
<br />
<pre><br />
uses LCLIntf, LCLType;<br />
<br />
...<br />
<br />
var<br />
MyBitmap: TBitmap<br />
ScreenDC: HDC;<br />
begin<br />
MyBitmap := TBitmap.Create;<br />
ScreenDC := GetDC(0);<br />
MyBitmap.LoadFromDevice(ScreenDC);<br />
ReleaseDC(ScreenDC);<br />
<br />
...<br />
</pre><br />
<br />
==graphiques en mouvement - Comment éviter le clignotement ==<br />
Beaucoup de programmes dessinent leur sortie sur le GUI sous forme de graphiques 2D. Si ces graphiques ont besoin de changer rapidement vous ferez face bientôt à un problème : les graphiques changeant rapidement clignotent souvent sur l'écran . Ceci se produit quand les utilisateurs voient parfois des images entières et parfois seulement quand c'est dessiné partiellement. Cela se produit parce que le procédé d'affichage a besoin de temps .<br />
<br />
Mais comment puis je éviter le clignotement et obtenir la meilleure vitesse de dessin ? Naturellement vous pourriez travailler avec l'accélération matérielle en utilisant OpenGL , mais cette approche est tout à fait lourde pour de petits programmes ou de vieux ordinateurs . Ce tutoriel se concentrera sur la façon de dessiner sur un TCanvas. Si vous avez besoin d'aide avec OpenGL, jeter un coup d'oeil sur l'exemple qui vient avec Lazarus. Vous pouvez également employer le gamepack d'A.J. Venter, qui fourni un canvas à double-tampon et un composant de sprite .<br />
<br />
Maintenant nous examinerons les options que nous avons pour dessiner un canvas :<br />
* [[#Draw to a TImage|Dessiner sur un Timage]]<br />
* [[#Draw on the OnPaint event|Dessiner sur l'evènement OnPaint de la fiche, un contrôle TPaintBox ou un autre]]<br />
* [[#Create a custom control which draws itself|Créer un contrôle à soi qui se dessine lui-même ]]<br />
* [[#Using A.J. Venter's gamepack|Employer le gamepack d'A.J. Venter]]<br />
<br />
===Dessiner sur un Timage===<br />
<br />
Un TImage se compose en 2 parts : un TGraphic, habituellement un TBitmap, contenant l'image persistante et l'aire visuelle , laquelle est peinte à chaque OnPaint. Redimensionner le TImage '''ne''' redimensionne pas le bitmap.<br />
Le graphique (ou bitmap) est accessible par l'intermédiaire de Image1.Picture.Graphic (ou Image1.Picture.Bitmap). La canvas est Image1.Picture.Bitmap.Canvas. <br />
Le canvas de l'aire visuelle d'une TImage est seulement accessible pendant Image1.OnPaint via Image1.Canvas.<br />
<br />
'''Important''': Ne jamais employer le OnPaint de l'évênement Image1 pour dessiner le graphique/bitmap d'une TImage. Le graphique d'une TImage est en mémoire tampon aussi tout que vous devez faire est de dessiner vers elle de n'importe où et le changement est là pour toujours . Cependant, si vous redessinez constamment , l'image clignotera . Dans ce cas-ci vous pouvez essayer les autres options . Dessin sur une TImage est considéré comme étant plus lent que les autres approches .<br />
<br />
====Redimensionner le bitmap d'une TImage====<br />
<br />
Note : Ne pas employer ceci pendant OnPaint.<br />
<br />
with Image1.Picture.Bitmap do begin<br />
Width:=100;<br />
Height:=120;<br />
end;<br />
<br />
====Peindre sur le bitmap d'une TImage ====<br />
<br />
Note: Ne pas employer ceci pendant OnPaint.<br />
<br />
with Image1.Picture.Bitmap.Canvas do begin<br />
// fill the entire bitmap with red<br />
Brush.Color:=clRed;<br />
FillRect(0,0,Width,Height);<br />
end;<br />
<br />
Note: À l'intérieur de Image1.OnPaint l' Image1.Canvas pointe vers l'aire visible volatile. En dehors de Image1.OnPaint l' Image1.Canvas pointe vers Image1.Picture.Bitmap.Canvas.<br />
<br />
Un autre exemple :<br />
<br />
<code><br />
procedure TForm1.BitBtn1Click(Sender: TObject);<br />
var<br />
x, y: Integer;<br />
begin<br />
// Draws the backgroung<br />
MyImage.Canvas.Pen.Color := clWhite;<br />
MyImage.Canvas.Rectangle(0, 0, Image.Width, Image.Height);<br />
<br />
// Draws squares<br />
MyImage.Canvas.Pen.Color := clBlack;<br />
for x := 1 to 8 do<br />
for y := 1 to 8 do<br />
MyImage.Canvas.Rectangle(Round((x - 1) * Image.Width / 8), Round((y - 1) * Image.Height / 8),<br />
Round(x * Image.Width / 8), Round(y * Image.Height / 8));<br />
end;<br />
</code><br />
<br />
==== Peindre sur l'aire visuelle volatile de TImage====<br />
<br />
Vous pouvez seulement peindre sur ce secteur pendant OnPaint. OnPaint est éventuellement appellé automatiquement par la LCL quand le secteur a été infirmé . Vous pouvez infirmer manuellement le secteur avec Image1.Invalidate. Ceci n'appellera pas immédiatement OnPaint et vous pouvez appeler Invalidate autant de fois que vous le voulez .<br />
<br />
procedure TForm.Image1Paint(Sender: TObject);<br />
begin<br />
with Image1.Canvas do begin<br />
// paint a line<br />
Pen.Color:=clRed;<br />
Line(0,0,Width,Height);<br />
end;<br />
end;<br />
<br />
===Dessiner sur l'évênement OnPaint===<br />
Dans ce cas tout le dessin doit être fait sur l'évênement OnPaint de la fiche. Il ne reste pas sur le tampon, comme sur la TImage.<br />
<br />
===Créer un contrôle à soi qui se dessine lui-même===<br />
Créer une comtôle à soi à l'avantage de structurer votre code et vous pouvez réutiliser le contrôle . Cette approche est très rapide,mais elle peut toujours produire du clignotement si vous ne dessinez pas sur un TBitmap en premier et dessiner ensuite sur le canvas. Dans ce cas il n'est pas besoin d'employer l'évênement OnPaint du contrôle.<br />
<br />
Voici ici un exemple de contrôle à soi:<br />
<br />
<code><br />
uses<br />
Classes, SysUtils, Controls, Graphics, LCLType;<br />
<br />
type<br />
TMyDrawingControl = class(TCustomControl)<br />
public<br />
procedure EraseBackground(DC: HDC); override;<br />
procedure Paint; override;<br />
end;<br />
<br />
implementation<br />
<br />
procedure TMyDrawingControl.EraseBackground(DC: HDC);<br />
begin<br />
// Uncomment this to enable default background erasing<br />
//inherited EraseBackground(DC);<br />
end; <br />
<br />
procedure TMyDrawingControl.Paint;<br />
var<br />
x, y: Integer;<br />
Bitmap: TBitmap;<br />
begin<br />
Bitmap := TBitmap.Create;<br />
try<br />
// Initializes the Bitmap Size<br />
Bitmap.Height := Height;<br />
Bitmap.Width := Width;<br />
<br />
// Draws the background<br />
Bitmap.Canvas.Pen.Color := clWhite;<br />
Bitmap.Canvas.Rectangle(0, 0, Width, Height);<br />
<br />
// Draws squares<br />
Bitmap.Canvas.Pen.Color := clBlack;<br />
for x := 1 to 8 do<br />
for y := 1 to 8 do<br />
Bitmap.Canvas.Rectangle(Round((x - 1) * Width / 8), Round((y - 1) * Height / 8),<br />
Round(x * Width / 8), Round(y * Height / 8));<br />
<br />
Canvas.Draw(0, 0, Bitmap);<br />
finally<br />
Bitmap.Free;<br />
end;<br />
<br />
inherited Paint;<br />
end;<br />
</code><br />
and how we create it on the form:<br />
<code><br />
procedure TMyForm.FormCreate(Sender: TObject);<br />
begin<br />
MyDrawingControl:= TMyDrawingControl.Create(Self);<br />
MyDrawingControl.Height := 400;<br />
MyDrawingControl.Width := 500;<br />
MyDrawingControl.Top := 0;<br />
MyDrawingControl.Left := 0;<br />
MyDrawingControl.Parent := Self;<br />
MyDrawingControl.DoubleBuffered := True;<br />
end;<br />
</code><br />
just don´t forget to destroy it:<br />
<code><br />
procedure TMyForm.FormDestroy(Sender: TObject);<br />
begin<br />
MyDrawingControl.Free;<br />
end;<br />
</code><br />
<br />
Paramétrer le Top et le Left à zéro n'est pas nécessaire , puisque c'est la position standard, mais est fait ainsi pour renforcer l'endroi où la commande sera mise .<br />
<br />
"MyDrawingControl.Parent := Self;" est très important et vous ne verrez pas votre contrôle si vous ne faites pas ainsi .<br />
<br />
"MyDrawingControl.DoubleBuffered := True;" est nécessaire pour éviter le clignotement sur Windows . Il n'a aucun effet sur gtk.<br />
<br />
===Employer le gamepack d'A.J. Venter===<br />
<br />
L'approche par gamepack est de dessiner tout sur un canvas à double-tampon, lequel se met seulement mis à jour vers le canvas visible quand vous êtes prêt . Ceci demande beaucoup de code, mais il a l'avantage de pouvoir faire de grandes scènes changeant rapidement avec des sprites multiples sur elles . Si vous souhaitez employer cette approche , vous pouvez être intéressés par le gamepack d'A.J. Venter, un ensemble de composants pour le développement de jeu dans Lazarus, ce qui fournit un composant avec une zone de visualisation avec double-tampon aussi bien qu'un composant de sprite, conçu pour bien s'intégrer entre eux . Vous pouvez obtenir le gamepack via subversion:<br /><br />
<code><br />
svn co svn://silentcoder.co.za/lazarus/gamepack<br />
</code></div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation/fr&diff=19427Lazarus Documentation/fr2007-06-08T15:57:55Z<p>Ejca: /* Les guides du développeur Lazarus */</p>
<hr />
<div>{{Lazarus Documentation}}<br />
<br />
==Tutoriels Lazarus et Pascal==<br />
*[[Overview of Free Pascal and Lazarus/fr|Vue d'ensemble de Free Pascal et Lazarus]] - Une brève description du genre de choses que vous pouvez développer avec ces outils d'usage universel.<br />
*[[Lazarus Tutorial/fr|Tutoriel Lazarus]] - Un tutoriel pour les débutants et une description détaillée de l'EDI Lazarus.<br />
*[[Lazarus IDE Tools/fr|Outils de l'EDI Lazarus]] - Un tutoriel de niveau intermédiaire à propos de la complétion de code et d'autres outils de l'EDI.<br />
*[[Lazarus Database Tutorial/fr|Tutoriel Lazarus bases de données]] (En cours de traduction) - Une introduction pour utiliser Lazarus avec des bases de données.<br />
*[[Developing with Graphics|Développer avec des graphismes]] (Anglais) - Quelques exemples basiques de programmation graphique.<br />
*[[Pascal Tutorial|Tutoriel Pascal]] (Anglais) - [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial] (reposted with permission).<br />
*[[Executing External Programs/fr|Exécuter des programmes externes]] - Un court tutoriel montrant comment lancer des programmes externes à l'intérieur de votre programme.<br />
*[[Hardware Access|Accès matériel]] (Anglais) - Comment accéder aux périphériques matériels, tels que cartes ISA, PCI, ports parallèles et séries et périphériques USB.<br />
*[[Networking|Réseaux]] (Anglais) - Tutoriels à propos de XML, du protocole TCP/IP, de la création de programmes sécurisés pour réseaux, WebServices, etc.<br />
*[[Multithreaded Application Tutorial|Tutoriel application Multitâches]] (Anglais) - Comment écrire des applications multitâches en utilisant Free Pascal et Lazarus.<br />
*[[Streaming components|Composants de streaming]] (Anglais) - Comment écrire des composants pour flux et lire/créer des composants à partir de flux<br />
<br />
==Les guides de l'utilisateur de Lazarus==<br />
*[[Installing Lazarus/fr|Installation de Lazarus]] (En cours de traduction) - Un guide d'installation <br />
*[[Lazarus For Delphi Users|Lazarus pour les utilisateurs Delphi]] (Anglais) - Pour les utilisateurs Delphi qui veulent démarrer avec Lazarus.<br />
*[[Lazarus Faq]] (Anglais) - Information générale à propos de Lazarus et spécificités pour utilisateurs Linux et Windows.<br />
*[[Lazarus DB Faq/fr|Lazarus DB Faq]] - Questions les plus fréquemment posées au sujet des bases de données sous Lazarus.<br />
*[[Code Examples|Exemples de code]] (Anglais) - Example working code for Lazarus.<br />
*[[doc:lcl/|LCL documentation]] (Anglais) - Aide en ligne pour LCL (travail en cours).<br />
*[[File size and smartlinking|Taille des fichiers et liaisons]] (Anglais) - Comment relier facilement des applications et créer des petits exécutables.<br />
*[[Feature_Ideas|Wishlist/Wanted Features]] (Anglais) - Spécificités que vous voudriez voir dans Lazarus<br />
<br />
==Les guides du développeur Lazarus==<br />
*[[How To Help Developing Lazarus|Comment aider à développer Lazarus]] (Anglais) - Un guide pour aider les débutants qui démarrent dans l'amélioration de Lazarus<br />
*[[Version Numbering|Numérotation des versions]] (Anglais) - Explications sur les différents numéros de version de Lazarus <br />
*[[Creating A Patch|Créer un patch]] (Anglais) - un guide pour créer un patch avec les changements faits à Lazarus<br />
*[[Creating a Backtrace with GDB]] (Anglais) - Un guide pour générer des traces pour vous aider à déboguer un programme<br />
*[[DesignGuidelines|Design Guide Lines]] (Anglais) - Un guide sur la façon de procéder quand le code source Lazarus est changé.<br />
*[[GUI design]] (Anglais) - Notes sur les lignes de conduite à propos du design du GUI lazarus<br />
*[[Road To 1.0]] (Anglais) - Ce qu'il reste à faire pour Lazarus 1.0<br />
*[[Nomenclature]] (Anglais) - Guide pour choisir un nom pour une nouvelle méthode ou propriété<br />
*[[Main Loop Hooks/fr|Main Loop Hooks]] (En cours de traduction) - Comment manipuler de multiples sources d'évènements<br />
*[[Asynchronous Calls|Appels asynchrones]] (Anglais) - Comment stocker des méthodes pour une exécution ultérieure<br />
*[[Accessing the Interfaces directly|Accéder directement aux interfaces]] (Anglais) - Exemple comment accéder aux widgetssets LCL<br />
*[[Deploying Your Application|Déployer votre application]] (Anglais) - Comment créer un installateur pour votre application<br />
*[[The Power of Proper Planning and Practices]] (Anglais) - common-sense programming best practices for the Free Pascal and Lazarus developer<br />
===Bibliothèque de composants Lazarus===<br />
*[[LCL Messages]] (Anglais) - Guide relatif aux messages de la LCL<br />
*[[LCL Internals]] (Anglais) - Quelques informations à propos du fonctionnement interne de la LCL<br />
*[[LCL Key Handling]] (Anglais) - Au secours ! Une touche pressée, et maintenant ?<br />
*[[LCL Documentation Roadmap]] (Anglais) - Quelles unités ont été documentées<br />
===Outils de Lazarus===<br />
*[[Lazarus Documentation Editor|Editeur de documentation Lazarus]] (Anglais) - Utiliser "lazde" pour créer de la documentation<br />
*[[LazDoc]] (Anglais) - Un éditeur intégré pour fichiers de documentation<br />
<br />
===Interfaces===<br />
*[[Carbon Interface]] (Anglais) - L'interface Carbon<br />
*[[Qt Interface]] (Anglais) - L'interface Qt 4<br />
*[[Windows CE Interface]] (Anglais) - Pour Pocket PC<br />
===Traductions===<br />
* [[Getting translation strings right]] (Anglais) - Quelques notes pour les programmeurs sur comment créer et utiliser des chaînes à traduire dans votre application. Rapide discussion généralités à propos de la création de chaînes, avec quelques astuces sur les méthodes d'implémentation et les points à considérer particulièrement quand on utilise l'anglais en langage de base.<br />
* '''Notes de localisation :'''<br />
:* [[German localization notes|German]] (Allemand) - Notes and guidelines for translating the Lazarus IDE to German, including a small dictionary to look up often used translations.<br />
:* [[Portuguese-Brazilian Localization Notes|Portuguese-Brazilian]] (Portugais/Brésilien) - Small dictionary containing common translations of terms used in the Lazarus IDE for the Portuguese-Brazilian translation.<br />
<!-- *[[TO-DO]] Remaining Tasks --><br />
* [[Help:Add language bar/fr|Ajouter une barre de langue]] - Explique comment vous pouvez ajouter une liste de traductions en haut de page du wiki.<br />
<br />
==Guides de Conversion de Code==<br />
<br />
* [[Code Conversion Guide]] (Anglais) - Comment convertir du code existant et des composants de Delphi et Kylix.<br />
* [[Multiplatform Programming Guide]] (Anglais) - Comment porter des applications d'une plateforme à une autre.<br />
<br />
==Documentation IDE==<br />
*[[Getting Lazarus/fr|Obtenir Lazarus]] (En cours de traduction) - Instructions pour télécharger une version normale ou SVN de Lazarus.<br />
*[[Lazarus Packages]] (Anglais) - Un guide pour créer un paquetage sous Lazarus.<br />
*[[Install Packages]] (Anglais) - Un petit guide pour installer des paquetages.<br />
*[[Cross compiling]] (Anglais) - Créer des exécutables d'une plateforme à une autre.<br />
*[[Remote Debugging]] (Anglais) - Comment déboguer votre application Lazarus sur une autre machine.<br />
*[[Extending the IDE]] (Anglais) - Comment ajouter des fonctionnalités à l'IDE Lazarus.<br />
*[[Lazarus IDE ToDo List]] (Anglais) - Tâches à réaliser pour l'IDE.<br />
*[[Anchor Sides]] (Anglais) - Description of Anchor Sides Feature.<br />
<br />
==Documentation des composants additionnels ==<br />
*[[Pascal Script]] et [[Pascal Script Examples]] (Anglais) - Comment utiliser les composants script pascal dans Lazarus.<br />
*[[OpenGL]] (Anglais) - Comment utiliser OpenGL dans Lazarus.<br />
<br />
==Documentation Free Pascal Compiler==<br />
En plus de [http://lazarus-ccr.sourceforge.net/fpcdoc/ ce site], la dernière version de la documentation peut aussi être trouvée en ligne dans plusieurs formats sur la page principale du [http://www.freepascal.org/docs.html Free Pascal Compiler site].<br />
Il y a maintenant un site WiKi pour FreePascal [http://www.freepascal.org/wiki/index.php/Main_Page] très similaire dans son style à celui-ci, qui autorise les développeurs à soumettre de la documentation en plus de la documentation FPC officielle.<br />
<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html Guide de l'utilisateur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/prog/prog.html Guide du programmeur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/ref/ref.html Guide de réference pour les unités système, et constructions Pascal supportées]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/rtl/index.html Manuel de référence de la librairie Run-Time]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fcl/index.html Manuel de référence de la librairie Free Component]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fpdoc/fpdoc.html Manuel des outils Free Pascal documentation]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation/fr&diff=19410Lazarus Documentation/fr2007-06-08T11:03:56Z<p>Ejca: /* Traductions */</p>
<hr />
<div>{{Lazarus Documentation}}<br />
<br />
==Tutoriels Lazarus et Pascal==<br />
*[[Overview of Free Pascal and Lazarus/fr|Vue d'ensemble de Free Pascal et Lazarus]] - Une brève description du genre de choses que vous pouvez développer avec ces outils d'usage universel.<br />
*[[Lazarus Tutorial/fr|Tutoriel Lazarus]] - Un tutoriel pour les débutants et une description détaillée de l'EDI Lazarus.<br />
*[[Lazarus IDE Tools/fr|Outils de l'EDI Lazarus]] - Un tutoriel de niveau intermédiaire à propos de la complétion de code et d'autres outils de l'EDI.<br />
*[[Lazarus Database Tutorial/fr|Tutoriel Lazarus bases de données]] (En cours de traduction) - Une introduction pour utiliser Lazarus avec des bases de données.<br />
*[[Developing with Graphics|Développer avec des graphismes]] (Anglais) - Quelques exemples basiques de programmation graphique.<br />
*[[Pascal Tutorial|Tutoriel Pascal]] (Anglais) - [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial] (reposted with permission).<br />
*[[Executing External Programs/fr|Exécuter des programmes externes]] - Un court tutoriel montrant comment lancer des programmes externes à l'intérieur de votre programme.<br />
*[[Hardware Access|Accès matériel]] (Anglais) - Comment accéder aux périphériques matériels, tels que cartes ISA, PCI, ports parallèles et séries et périphériques USB.<br />
*[[Networking|Réseaux]] (Anglais) - Tutoriels à propos de XML, du protocole TCP/IP, de la création de programmes sécurisés pour réseaux, WebServices, etc.<br />
*[[Multithreaded Application Tutorial|Tutoriel application Multitâches]] (Anglais) - Comment écrire des applications multitâches en utilisant Free Pascal et Lazarus.<br />
*[[Streaming components|Composants de streaming]] (Anglais) - Comment écrire des composants pour flux et lire/créer des composants à partir de flux<br />
<br />
==Les guides de l'utilisateur de Lazarus==<br />
*[[Installing Lazarus/fr|Installation de Lazarus]] (En cours de traduction) - Un guide d'installation <br />
*[[Lazarus For Delphi Users|Lazarus pour les utilisateurs Delphi]] (Anglais) - Pour les utilisateurs Delphi qui veulent démarrer avec Lazarus.<br />
*[[Lazarus Faq]] (Anglais) - Information générale à propos de Lazarus et spécificités pour utilisateurs Linux et Windows.<br />
*[[Lazarus DB Faq/fr|Lazarus DB Faq]] - Questions les plus fréquemment posées au sujet des bases de données sous Lazarus.<br />
*[[Code Examples|Exemples de code]] (Anglais) - Example working code for Lazarus.<br />
*[[doc:lcl/|LCL documentation]] (Anglais) - Aide en ligne pour LCL (travail en cours).<br />
*[[File size and smartlinking|Taille des fichiers et liaisons]] (Anglais) - Comment relier facilement des applications et créer des petits exécutables.<br />
*[[Feature_Ideas|Wishlist/Wanted Features]] (Anglais) - Spécificités que vous voudriez voir dans Lazarus<br />
<br />
==Les guides du développeur Lazarus==<br />
*[[How To Help Developing Lazarus|Comment aider à développer Lazarus]] (Anglais) - Un guide pour aider les débutants qui démarrent dans l'amélioration de Lazarus<br />
*[[Version Numbering|Numérotation des versions]] (Anglais) - Explications sur les différents numéros de version de Lazarus <br />
*[[Creating A Patch|Créer un patch]] (Anglais) - un guide pour créer un patch avec les changements faits à Lazarus<br />
*[[Creating a Backtrace with GDB]] (Anglais) - Un guide pour générer des traces pour vous aider à déboguer un programme<br />
*[[DesignGuidelines|Design Guide Lines]] (Anglais) - Un guide sur la façon de procéder quand le code source Lazarus est changé.<br />
*[[GUI design]] (Anglais) - Notes sur les lignes de conduite à propos du design du GUI lazarus<br />
*[[Road To 1.0]] (Anglais) - Ce qu'il reste à faire pour Lazarus 1.0<br />
*[[Nomenclature]] (Anglais) - Guide pour choisir un nom pour une nouvelle méthode ou propriété<br />
*[[Main Loop Hooks]] (Anglais) - Comment manipuler de multiples sources d'évènements<br />
*[[Asynchronous Calls|Appels asynchrones]] (Anglais) - Comment stocker des méthodes pour une exécution ultérieure<br />
*[[Accessing the Interfaces directly|Accéder directement aux interfaces]] (Anglais) - Exemple comment accéder aux widgetssets LCL<br />
*[[Deploying Your Application|Déployer votre application]] (Anglais) - Comment créer un installateur pour votre application<br />
*[[The Power of Proper Planning and Practices]] (Anglais) - common-sense programming best practices for the Free Pascal and Lazarus developer<br />
===Bibliothèque de composants Lazarus===<br />
*[[LCL Messages]] (Anglais) - Guide relatif aux messages de la LCL<br />
*[[LCL Internals]] (Anglais) - Quelques informations à propos du fonctionnement interne de la LCL<br />
*[[LCL Key Handling]] (Anglais) - Au secours ! Une touche pressée, et maintenant ?<br />
*[[LCL Documentation Roadmap]] (Anglais) - Quelles unités ont été documentées<br />
===Outils de Lazarus===<br />
*[[Lazarus Documentation Editor|Editeur de documentation Lazarus]] (Anglais) - Utiliser "lazde" pour créer de la documentation<br />
*[[LazDoc]] (Anglais) - Un éditeur intégré pour fichiers de documentation<br />
<br />
===Interfaces===<br />
*[[Carbon Interface]] (Anglais) - L'interface Carbon<br />
*[[Qt Interface]] (Anglais) - L'interface Qt 4<br />
*[[Windows CE Interface]] (Anglais) - Pour Pocket PC<br />
===Traductions===<br />
* [[Getting translation strings right]] (Anglais) - Quelques notes pour les programmeurs sur comment créer et utiliser des chaînes à traduire dans votre application. Rapide discussion généralités à propos de la création de chaînes, avec quelques astuces sur les méthodes d'implémentation et les points à considérer particulièrement quand on utilise l'anglais en langage de base.<br />
* '''Notes de localisation :'''<br />
:* [[German localization notes|German]] (Allemand) - Notes and guidelines for translating the Lazarus IDE to German, including a small dictionary to look up often used translations.<br />
:* [[Portuguese-Brazilian Localization Notes|Portuguese-Brazilian]] (Portugais/Brésilien) - Small dictionary containing common translations of terms used in the Lazarus IDE for the Portuguese-Brazilian translation.<br />
<!-- *[[TO-DO]] Remaining Tasks --><br />
* [[Help:Add language bar/fr|Ajouter une barre de langue]] - Explique comment vous pouvez ajouter une liste de traductions en haut de page du wiki.<br />
<br />
==Guides de Conversion de Code==<br />
<br />
* [[Code Conversion Guide]] (Anglais) - Comment convertir du code existant et des composants de Delphi et Kylix.<br />
* [[Multiplatform Programming Guide]] (Anglais) - Comment porter des applications d'une plateforme à une autre.<br />
<br />
==Documentation IDE==<br />
*[[Getting Lazarus/fr|Obtenir Lazarus]] (En cours de traduction) - Instructions pour télécharger une version normale ou SVN de Lazarus.<br />
*[[Lazarus Packages]] (Anglais) - Un guide pour créer un paquetage sous Lazarus.<br />
*[[Install Packages]] (Anglais) - Un petit guide pour installer des paquetages.<br />
*[[Cross compiling]] (Anglais) - Créer des exécutables d'une plateforme à une autre.<br />
*[[Remote Debugging]] (Anglais) - Comment déboguer votre application Lazarus sur une autre machine.<br />
*[[Extending the IDE]] (Anglais) - Comment ajouter des fonctionnalités à l'IDE Lazarus.<br />
*[[Lazarus IDE ToDo List]] (Anglais) - Tâches à réaliser pour l'IDE.<br />
*[[Anchor Sides]] (Anglais) - Description of Anchor Sides Feature.<br />
<br />
==Documentation des composants additionnels ==<br />
*[[Pascal Script]] et [[Pascal Script Examples]] (Anglais) - Comment utiliser les composants script pascal dans Lazarus.<br />
*[[OpenGL]] (Anglais) - Comment utiliser OpenGL dans Lazarus.<br />
<br />
==Documentation Free Pascal Compiler==<br />
En plus de [http://lazarus-ccr.sourceforge.net/fpcdoc/ ce site], la dernière version de la documentation peut aussi être trouvée en ligne dans plusieurs formats sur la page principale du [http://www.freepascal.org/docs.html Free Pascal Compiler site].<br />
Il y a maintenant un site WiKi pour FreePascal [http://www.freepascal.org/wiki/index.php/Main_Page] très similaire dans son style à celui-ci, qui autorise les développeurs à soumettre de la documentation en plus de la documentation FPC officielle.<br />
<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html Guide de l'utilisateur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/prog/prog.html Guide du programmeur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/ref/ref.html Guide de réference pour les unités système, et constructions Pascal supportées]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/rtl/index.html Manuel de référence de la librairie Run-Time]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fcl/index.html Manuel de référence de la librairie Free Component]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fpdoc/fpdoc.html Manuel des outils Free Pascal documentation]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation/fr&diff=19409Lazarus Documentation/fr2007-06-08T11:00:30Z<p>Ejca: /* Les guides de l'utilisateur de Lazarus */</p>
<hr />
<div>{{Lazarus Documentation}}<br />
<br />
==Tutoriels Lazarus et Pascal==<br />
*[[Overview of Free Pascal and Lazarus/fr|Vue d'ensemble de Free Pascal et Lazarus]] - Une brève description du genre de choses que vous pouvez développer avec ces outils d'usage universel.<br />
*[[Lazarus Tutorial/fr|Tutoriel Lazarus]] - Un tutoriel pour les débutants et une description détaillée de l'EDI Lazarus.<br />
*[[Lazarus IDE Tools/fr|Outils de l'EDI Lazarus]] - Un tutoriel de niveau intermédiaire à propos de la complétion de code et d'autres outils de l'EDI.<br />
*[[Lazarus Database Tutorial/fr|Tutoriel Lazarus bases de données]] (En cours de traduction) - Une introduction pour utiliser Lazarus avec des bases de données.<br />
*[[Developing with Graphics|Développer avec des graphismes]] (Anglais) - Quelques exemples basiques de programmation graphique.<br />
*[[Pascal Tutorial|Tutoriel Pascal]] (Anglais) - [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial] (reposted with permission).<br />
*[[Executing External Programs/fr|Exécuter des programmes externes]] - Un court tutoriel montrant comment lancer des programmes externes à l'intérieur de votre programme.<br />
*[[Hardware Access|Accès matériel]] (Anglais) - Comment accéder aux périphériques matériels, tels que cartes ISA, PCI, ports parallèles et séries et périphériques USB.<br />
*[[Networking|Réseaux]] (Anglais) - Tutoriels à propos de XML, du protocole TCP/IP, de la création de programmes sécurisés pour réseaux, WebServices, etc.<br />
*[[Multithreaded Application Tutorial|Tutoriel application Multitâches]] (Anglais) - Comment écrire des applications multitâches en utilisant Free Pascal et Lazarus.<br />
*[[Streaming components|Composants de streaming]] (Anglais) - Comment écrire des composants pour flux et lire/créer des composants à partir de flux<br />
<br />
==Les guides de l'utilisateur de Lazarus==<br />
*[[Installing Lazarus/fr|Installation de Lazarus]] (En cours de traduction) - Un guide d'installation <br />
*[[Lazarus For Delphi Users|Lazarus pour les utilisateurs Delphi]] (Anglais) - Pour les utilisateurs Delphi qui veulent démarrer avec Lazarus.<br />
*[[Lazarus Faq]] (Anglais) - Information générale à propos de Lazarus et spécificités pour utilisateurs Linux et Windows.<br />
*[[Lazarus DB Faq/fr|Lazarus DB Faq]] - Questions les plus fréquemment posées au sujet des bases de données sous Lazarus.<br />
*[[Code Examples|Exemples de code]] (Anglais) - Example working code for Lazarus.<br />
*[[doc:lcl/|LCL documentation]] (Anglais) - Aide en ligne pour LCL (travail en cours).<br />
*[[File size and smartlinking|Taille des fichiers et liaisons]] (Anglais) - Comment relier facilement des applications et créer des petits exécutables.<br />
*[[Feature_Ideas|Wishlist/Wanted Features]] (Anglais) - Spécificités que vous voudriez voir dans Lazarus<br />
<br />
==Les guides du développeur Lazarus==<br />
*[[How To Help Developing Lazarus|Comment aider à développer Lazarus]] (Anglais) - Un guide pour aider les débutants qui démarrent dans l'amélioration de Lazarus<br />
*[[Version Numbering|Numérotation des versions]] (Anglais) - Explications sur les différents numéros de version de Lazarus <br />
*[[Creating A Patch|Créer un patch]] (Anglais) - un guide pour créer un patch avec les changements faits à Lazarus<br />
*[[Creating a Backtrace with GDB]] (Anglais) - Un guide pour générer des traces pour vous aider à déboguer un programme<br />
*[[DesignGuidelines|Design Guide Lines]] (Anglais) - Un guide sur la façon de procéder quand le code source Lazarus est changé.<br />
*[[GUI design]] (Anglais) - Notes sur les lignes de conduite à propos du design du GUI lazarus<br />
*[[Road To 1.0]] (Anglais) - Ce qu'il reste à faire pour Lazarus 1.0<br />
*[[Nomenclature]] (Anglais) - Guide pour choisir un nom pour une nouvelle méthode ou propriété<br />
*[[Main Loop Hooks]] (Anglais) - Comment manipuler de multiples sources d'évènements<br />
*[[Asynchronous Calls|Appels asynchrones]] (Anglais) - Comment stocker des méthodes pour une exécution ultérieure<br />
*[[Accessing the Interfaces directly|Accéder directement aux interfaces]] (Anglais) - Exemple comment accéder aux widgetssets LCL<br />
*[[Deploying Your Application|Déployer votre application]] (Anglais) - Comment créer un installateur pour votre application<br />
*[[The Power of Proper Planning and Practices]] (Anglais) - common-sense programming best practices for the Free Pascal and Lazarus developer<br />
===Bibliothèque de composants Lazarus===<br />
*[[LCL Messages]] (Anglais) - Guide relatif aux messages de la LCL<br />
*[[LCL Internals]] (Anglais) - Quelques informations à propos du fonctionnement interne de la LCL<br />
*[[LCL Key Handling]] (Anglais) - Au secours ! Une touche pressée, et maintenant ?<br />
*[[LCL Documentation Roadmap]] (Anglais) - Quelles unités ont été documentées<br />
===Outils de Lazarus===<br />
*[[Lazarus Documentation Editor|Editeur de documentation Lazarus]] (Anglais) - Utiliser "lazde" pour créer de la documentation<br />
*[[LazDoc]] (Anglais) - Un éditeur intégré pour fichiers de documentation<br />
<br />
===Interfaces===<br />
*[[Carbon Interface]] (Anglais) - L'interface Carbon<br />
*[[Qt Interface]] (Anglais) - L'interface Qt 4<br />
*[[Windows CE Interface]] (Anglais) - Pour Pocket PC<br />
===Traductions===<br />
* [[Getting translation strings right]] (Anglais) Quelques notes pour les programmeurs sur comment créer et utiliser des chaînes à traduire dans votre application. Rapide discussion généralités à propos de la création de chaînes, avec quelques astuces sur les méthodes d'implémentation et les points à considérer particulièrement quand on utilise l'anglais en langage de base.<br />
* '''Notes de localisation :'''<br />
:* [[German localization notes|German]] (Allemand) - Notes and guidelines for translating the Lazarus IDE to German, including a small dictionary to look up often used translations.<br />
:* [[Portuguese-Brazilian Localization Notes|Portuguese-Brazilian]] (Portugais/Brésilien) - Small dictionary containing common translations of terms used in the Lazarus IDE for the Portuguese-Brazilian translation.<br />
<!-- *[[TO-DO]] Remaining Tasks --><br />
* [[Help:Add language bar | Add language bar]] (Anglais) explique comment vous pouvez ajouter une liste de traductions en haut de page du wiki.<br />
<br />
==Guides de Conversion de Code==<br />
<br />
* [[Code Conversion Guide]] (Anglais) - Comment convertir du code existant et des composants de Delphi et Kylix.<br />
* [[Multiplatform Programming Guide]] (Anglais) - Comment porter des applications d'une plateforme à une autre.<br />
<br />
==Documentation IDE==<br />
*[[Getting Lazarus/fr|Obtenir Lazarus]] (En cours de traduction) - Instructions pour télécharger une version normale ou SVN de Lazarus.<br />
*[[Lazarus Packages]] (Anglais) - Un guide pour créer un paquetage sous Lazarus.<br />
*[[Install Packages]] (Anglais) - Un petit guide pour installer des paquetages.<br />
*[[Cross compiling]] (Anglais) - Créer des exécutables d'une plateforme à une autre.<br />
*[[Remote Debugging]] (Anglais) - Comment déboguer votre application Lazarus sur une autre machine.<br />
*[[Extending the IDE]] (Anglais) - Comment ajouter des fonctionnalités à l'IDE Lazarus.<br />
*[[Lazarus IDE ToDo List]] (Anglais) - Tâches à réaliser pour l'IDE.<br />
*[[Anchor Sides]] (Anglais) - Description of Anchor Sides Feature.<br />
<br />
==Documentation des composants additionnels ==<br />
*[[Pascal Script]] et [[Pascal Script Examples]] (Anglais) - Comment utiliser les composants script pascal dans Lazarus.<br />
*[[OpenGL]] (Anglais) - Comment utiliser OpenGL dans Lazarus.<br />
<br />
==Documentation Free Pascal Compiler==<br />
En plus de [http://lazarus-ccr.sourceforge.net/fpcdoc/ ce site], la dernière version de la documentation peut aussi être trouvée en ligne dans plusieurs formats sur la page principale du [http://www.freepascal.org/docs.html Free Pascal Compiler site].<br />
Il y a maintenant un site WiKi pour FreePascal [http://www.freepascal.org/wiki/index.php/Main_Page] très similaire dans son style à celui-ci, qui autorise les développeurs à soumettre de la documentation en plus de la documentation FPC officielle.<br />
<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html Guide de l'utilisateur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/prog/prog.html Guide du programmeur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/ref/ref.html Guide de réference pour les unités système, et constructions Pascal supportées]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/rtl/index.html Manuel de référence de la librairie Run-Time]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fcl/index.html Manuel de référence de la librairie Free Component]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fpdoc/fpdoc.html Manuel des outils Free Pascal documentation]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_DB_Faq/fr&diff=19408Lazarus DB Faq/fr2007-06-08T10:57:37Z<p>Ejca: /* Y a t'il d'autres composants ? */ Correction lien</p>
<hr />
<div>{{Lazarus DB Faq}}<br />
<br />
== General ==<br />
<br />
Cette FAQ porte son attention sur la programmation de bases de données avec Lazarus.<br />
<br />
=== Où puis-je trouver plus de FAQ? ===<br />
<br />
Voir le site officiel www.lazarus.freepascal.org. Il y a une autre FAQ aussi. [[Lazarus Faq|Ici]] vous trouverz une page qui à été au moins au début une copie de la FAQ de www.lazarus.freepascal.org .<br />
<br />
=== Où puis-je trouver des composant de base de données ? ===<br />
<br />
Pour le moment les composants SQLdb font partie components de la suite Lazarus, vous devez seulement les installer. Si vous cherchez dans le répertoire [$LazarusDir]/components vous vers un sous répertoire SQLdb. Installez le paquet sqldblaz.lpk et vous serez capable de vous connecter aux serveurs MySQL, Interbase / Firebird et Postgres.<br />
Regardez [[Install Packages|Ici]] pour l'aide sur l'installation des paquets.<br />
<br />
=== Y a t'il d'autres composants ? ===<br />
<br />
Oui. Les [http://zeoslib.sourceforge.net/index.php composants ZEOS] ont aussi traduits vers Lazarus.<br />
<br>Vous devez télécharger ZEOSDBO_Rework à partir du [http://sourceforge.net/cvs/?group_id=35994 cvs ZEOS].<br />
<br>Voir aussi ce tutoriel pour [[Zeos_tutorial|Zeos]].<br />
<br>[http://pdo.sourceforge.net Pascal Data Objects] marche également avec Delphi et FPC 2.0 (MySQL et Firebird)<br />
<br />
== IB / FB ==<br />
<br />
=== Comment se connecter à partir de Linux vers un serveur Windows ===<br />
<br />
Donner le chemin correct vers une base de donnée sur un serveur Windows server depuis un client Linux n'est pas très clair. <br />
<br />
Supposons que nous ayons installé firebird dans le répertoire F:\Program Files\firebird\. La base de donnée en exemple employee.fdb sera alors installée dans le répertoire F:\Program Files\firebird\examples\ . L'adresse IP de votre ordinateur est 192.168.2.100.<br />
<br />
Alors entrer le nom de base de donnée suivant <br />
192.168.2.100:F:\Program Files\firebird\examples\employee.fdb<br />
dans notre IBConnection nous connectera à la base de donnée requise.<br />
<br />
Noter que vous n'avez pas à entrer une valeur pour la propriété hostname!<br />
<br />
== MySQL ==<br />
<br />
=== Quelle version de mySQL est supportée ? ===<br />
<br />
Actuellement MySQL 4.0, MySQL 4.1 et MySQL 5.0 sont supportés par les composants SQLdb. Soyez sur que vous êtes en train d'utiliser le bon raccordement de composant pour votre version de librairie cliente. Ainsi si vous avez les librairies clientes installées pour MySQL 4.1 alors vous devez utiliser le composant TMySQL41Connection, même si le serveur execute les version 4.0 ou 5.0.<br />
<br />
==== Pascal Data Objects ====<br />
Il y a maintenant une alternative. Les fonctions introduites avec MySQL 4.1 et 5.0 tel que les instructions préparées , les procédures de liaison et de stockage sont supportées par une database API appelée Pascal Data Objects, qui s'inspire des PHP Data Objects. Tout le code et la documentation nécessaire pour utiliser cette nouvelle API est disponible sur sourceforge:<br />
<br />
http://pdo.sourceforge.net<br />
<br />
Jan 30, 2007: PDO a ajouté les drivers pour Firebird 1.5 et 2.0<br />
<br />
== PostgreSQL ==<br />
<br />
Vous pouvez vous connecter à la db PostgreSQL par l'intermédiaire du composant TPQConnection. Ce composant utilise la connection à la librairie libpq de PostgreSQL [http://www.postgresql.org/docs/8.0/interactive/libpq.html], aussi vous pouvez aisément connecter la plupart des db PostgreSQL, mais le composant ne supporte pas les options de connection suivantes:<br />
* Port<br />
* ClientEncoding<br />
Peut être qu'il y a d'autres paramètres de connection non supportés.</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_DB_Faq/fr&diff=19406Lazarus DB Faq/fr2007-06-08T10:56:34Z<p>Ejca: /* Où puis-je trouver des composant de base de données ? */ Correction lien</p>
<hr />
<div>{{Lazarus DB Faq}}<br />
<br />
== General ==<br />
<br />
Cette FAQ porte son attention sur la programmation de bases de données avec Lazarus.<br />
<br />
=== Où puis-je trouver plus de FAQ? ===<br />
<br />
Voir le site officiel www.lazarus.freepascal.org. Il y a une autre FAQ aussi. [[Lazarus Faq|Ici]] vous trouverz une page qui à été au moins au début une copie de la FAQ de www.lazarus.freepascal.org .<br />
<br />
=== Où puis-je trouver des composant de base de données ? ===<br />
<br />
Pour le moment les composants SQLdb font partie components de la suite Lazarus, vous devez seulement les installer. Si vous cherchez dans le répertoire [$LazarusDir]/components vous vers un sous répertoire SQLdb. Installez le paquet sqldblaz.lpk et vous serez capable de vous connecter aux serveurs MySQL, Interbase / Firebird et Postgres.<br />
Regardez [[Install Packages|Ici]] pour l'aide sur l'installation des paquets.<br />
<br />
=== Y a t'il d'autres composants ? ===<br />
<br />
Oui. Les [http://zeoslib.sourceforge.net/index.php composants ZEOS] ont aussi traduits vers Lazarus.<br />
<br>Vous devez télécharger ZEOSDBO_Rework à partir du [http://sourceforge.net/cvs/?group_id=35994 cvs ZEOS].<br />
<br>Voir aussi ce tutoriel pour [[tutoriel Zeos|Zeos]].<br />
<br>[http://pdo.sourceforge.net Pascal Data Objects] marche également avec Delphi et FPC 2.0 (MySQL et Firebird)<br />
<br />
== IB / FB ==<br />
<br />
=== Comment se connecter à partir de Linux vers un serveur Windows ===<br />
<br />
Donner le chemin correct vers une base de donnée sur un serveur Windows server depuis un client Linux n'est pas très clair. <br />
<br />
Supposons que nous ayons installé firebird dans le répertoire F:\Program Files\firebird\. La base de donnée en exemple employee.fdb sera alors installée dans le répertoire F:\Program Files\firebird\examples\ . L'adresse IP de votre ordinateur est 192.168.2.100.<br />
<br />
Alors entrer le nom de base de donnée suivant <br />
192.168.2.100:F:\Program Files\firebird\examples\employee.fdb<br />
dans notre IBConnection nous connectera à la base de donnée requise.<br />
<br />
Noter que vous n'avez pas à entrer une valeur pour la propriété hostname!<br />
<br />
== MySQL ==<br />
<br />
=== Quelle version de mySQL est supportée ? ===<br />
<br />
Actuellement MySQL 4.0, MySQL 4.1 et MySQL 5.0 sont supportés par les composants SQLdb. Soyez sur que vous êtes en train d'utiliser le bon raccordement de composant pour votre version de librairie cliente. Ainsi si vous avez les librairies clientes installées pour MySQL 4.1 alors vous devez utiliser le composant TMySQL41Connection, même si le serveur execute les version 4.0 ou 5.0.<br />
<br />
==== Pascal Data Objects ====<br />
Il y a maintenant une alternative. Les fonctions introduites avec MySQL 4.1 et 5.0 tel que les instructions préparées , les procédures de liaison et de stockage sont supportées par une database API appelée Pascal Data Objects, qui s'inspire des PHP Data Objects. Tout le code et la documentation nécessaire pour utiliser cette nouvelle API est disponible sur sourceforge:<br />
<br />
http://pdo.sourceforge.net<br />
<br />
Jan 30, 2007: PDO a ajouté les drivers pour Firebird 1.5 et 2.0<br />
<br />
== PostgreSQL ==<br />
<br />
Vous pouvez vous connecter à la db PostgreSQL par l'intermédiaire du composant TPQConnection. Ce composant utilise la connection à la librairie libpq de PostgreSQL [http://www.postgresql.org/docs/8.0/interactive/libpq.html], aussi vous pouvez aisément connecter la plupart des db PostgreSQL, mais le composant ne supporte pas les options de connection suivantes:<br />
* Port<br />
* ClientEncoding<br />
Peut être qu'il y a d'autres paramètres de connection non supportés.</div>Ejcahttps://wiki.freepascal.org/index.php?title=Template:Lazarus_DB_Faq&diff=19404Template:Lazarus DB Faq2007-06-08T10:53:47Z<p>Ejca: Ordre alphabétique (en) -> (fr) -> (ja)</p>
<hr />
<div><small><br />
[[Lazarus DB Faq/de|'''Deutsch (de)''']]<br />
[[Lazarus DB Faq | English (en)]]<br />
[[Lazarus DB Faq/fr|'''Français (fr)''']]<br />
[[Lazarus DB Faq/ja|'''Japanese (ja)''']]<br />
[[Lazarus DB Faq/pt|'''Portuguese (pt)''']]<br />
[[Lazarus DB Faq/ru|'''Русский (ru)''']]<br />
[[Lazarus DB Faq/sk|'''Slovensky (sk)''']]<br />
</small></div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation/fr&diff=19403Lazarus Documentation/fr2007-06-08T10:51:41Z<p>Ejca: /* Tutoriels Lazarus et Pascal */</p>
<hr />
<div>{{Lazarus Documentation}}<br />
<br />
==Tutoriels Lazarus et Pascal==<br />
*[[Overview of Free Pascal and Lazarus/fr|Vue d'ensemble de Free Pascal et Lazarus]] - Une brève description du genre de choses que vous pouvez développer avec ces outils d'usage universel.<br />
*[[Lazarus Tutorial/fr|Tutoriel Lazarus]] - Un tutoriel pour les débutants et une description détaillée de l'EDI Lazarus.<br />
*[[Lazarus IDE Tools/fr|Outils de l'EDI Lazarus]] - Un tutoriel de niveau intermédiaire à propos de la complétion de code et d'autres outils de l'EDI.<br />
*[[Lazarus Database Tutorial/fr|Tutoriel Lazarus bases de données]] (En cours de traduction) - Une introduction pour utiliser Lazarus avec des bases de données.<br />
*[[Developing with Graphics|Développer avec des graphismes]] (Anglais) - Quelques exemples basiques de programmation graphique.<br />
*[[Pascal Tutorial|Tutoriel Pascal]] (Anglais) - [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial] (reposted with permission).<br />
*[[Executing External Programs/fr|Exécuter des programmes externes]] - Un court tutoriel montrant comment lancer des programmes externes à l'intérieur de votre programme.<br />
*[[Hardware Access|Accès matériel]] (Anglais) - Comment accéder aux périphériques matériels, tels que cartes ISA, PCI, ports parallèles et séries et périphériques USB.<br />
*[[Networking|Réseaux]] (Anglais) - Tutoriels à propos de XML, du protocole TCP/IP, de la création de programmes sécurisés pour réseaux, WebServices, etc.<br />
*[[Multithreaded Application Tutorial|Tutoriel application Multitâches]] (Anglais) - Comment écrire des applications multitâches en utilisant Free Pascal et Lazarus.<br />
*[[Streaming components|Composants de streaming]] (Anglais) - Comment écrire des composants pour flux et lire/créer des composants à partir de flux<br />
<br />
==Les guides de l'utilisateur de Lazarus==<br />
*[[Installing Lazarus/fr|Installation de Lazarus]] (En cours de traduction) - Un guide d'installation <br />
*[[Lazarus For Delphi Users|Lazarus pour les utilisateurs Delphi]] (Anglais) - Pour les utilisateurs Delphi qui veulent démarrer avec Lazarus.<br />
*[[Lazarus Faq]] (Anglais) - Information générale à propos de Lazarus et spécificités pour utilisateurs Linux et Windows.<br />
*[[Lazarus DB Faq]] (Anglais) - FAQ on database issues in Lazarus.<br />
*[[Code Examples|Exemples de code]] (Anglais) - Example working code for Lazarus.<br />
*[[doc:lcl/|LCL documentation]] (Anglais) - Aide en ligne pour LCL (travail en cours).<br />
*[[File size and smartlinking|Taille des fichiers et liaisons]] (Anglais) - Comment relier facilement des applications et créer des petits exécutables.<br />
*[[Feature_Ideas|Wishlist/Wanted Features]] (Anglais) - Spécificités que vous voudriez voir dans Lazarus<br />
<br />
==Les guides du développeur Lazarus==<br />
*[[How To Help Developing Lazarus|Comment aider à développer Lazarus]] (Anglais) - Un guide pour aider les débutants qui démarrent dans l'amélioration de Lazarus<br />
*[[Version Numbering|Numérotation des versions]] (Anglais) - Explications sur les différents numéros de version de Lazarus <br />
*[[Creating A Patch|Créer un patch]] (Anglais) - un guide pour créer un patch avec les changements faits à Lazarus<br />
*[[Creating a Backtrace with GDB]] (Anglais) - Un guide pour générer des traces pour vous aider à déboguer un programme<br />
*[[DesignGuidelines|Design Guide Lines]] (Anglais) - Un guide sur la façon de procéder quand le code source Lazarus est changé.<br />
*[[GUI design]] (Anglais) - Notes sur les lignes de conduite à propos du design du GUI lazarus<br />
*[[Road To 1.0]] (Anglais) - Ce qu'il reste à faire pour Lazarus 1.0<br />
*[[Nomenclature]] (Anglais) - Guide pour choisir un nom pour une nouvelle méthode ou propriété<br />
*[[Main Loop Hooks]] (Anglais) - Comment manipuler de multiples sources d'évènements<br />
*[[Asynchronous Calls|Appels asynchrones]] (Anglais) - Comment stocker des méthodes pour une exécution ultérieure<br />
*[[Accessing the Interfaces directly|Accéder directement aux interfaces]] (Anglais) - Exemple comment accéder aux widgetssets LCL<br />
*[[Deploying Your Application|Déployer votre application]] (Anglais) - Comment créer un installateur pour votre application<br />
*[[The Power of Proper Planning and Practices]] (Anglais) - common-sense programming best practices for the Free Pascal and Lazarus developer<br />
===Bibliothèque de composants Lazarus===<br />
*[[LCL Messages]] (Anglais) - Guide relatif aux messages de la LCL<br />
*[[LCL Internals]] (Anglais) - Quelques informations à propos du fonctionnement interne de la LCL<br />
*[[LCL Key Handling]] (Anglais) - Au secours ! Une touche pressée, et maintenant ?<br />
*[[LCL Documentation Roadmap]] (Anglais) - Quelles unités ont été documentées<br />
===Outils de Lazarus===<br />
*[[Lazarus Documentation Editor|Editeur de documentation Lazarus]] (Anglais) - Utiliser "lazde" pour créer de la documentation<br />
*[[LazDoc]] (Anglais) - Un éditeur intégré pour fichiers de documentation<br />
<br />
===Interfaces===<br />
*[[Carbon Interface]] (Anglais) - L'interface Carbon<br />
*[[Qt Interface]] (Anglais) - L'interface Qt 4<br />
*[[Windows CE Interface]] (Anglais) - Pour Pocket PC<br />
===Traductions===<br />
* [[Getting translation strings right]] (Anglais) Quelques notes pour les programmeurs sur comment créer et utiliser des chaînes à traduire dans votre application. Rapide discussion généralités à propos de la création de chaînes, avec quelques astuces sur les méthodes d'implémentation et les points à considérer particulièrement quand on utilise l'anglais en langage de base.<br />
* '''Notes de localisation :'''<br />
:* [[German localization notes|German]] (Allemand) - Notes and guidelines for translating the Lazarus IDE to German, including a small dictionary to look up often used translations.<br />
:* [[Portuguese-Brazilian Localization Notes|Portuguese-Brazilian]] (Portugais/Brésilien) - Small dictionary containing common translations of terms used in the Lazarus IDE for the Portuguese-Brazilian translation.<br />
<!-- *[[TO-DO]] Remaining Tasks --><br />
* [[Help:Add language bar | Add language bar]] (Anglais) explique comment vous pouvez ajouter une liste de traductions en haut de page du wiki.<br />
<br />
==Guides de Conversion de Code==<br />
<br />
* [[Code Conversion Guide]] (Anglais) - Comment convertir du code existant et des composants de Delphi et Kylix.<br />
* [[Multiplatform Programming Guide]] (Anglais) - Comment porter des applications d'une plateforme à une autre.<br />
<br />
==Documentation IDE==<br />
*[[Getting Lazarus/fr|Obtenir Lazarus]] (En cours de traduction) - Instructions pour télécharger une version normale ou SVN de Lazarus.<br />
*[[Lazarus Packages]] (Anglais) - Un guide pour créer un paquetage sous Lazarus.<br />
*[[Install Packages]] (Anglais) - Un petit guide pour installer des paquetages.<br />
*[[Cross compiling]] (Anglais) - Créer des exécutables d'une plateforme à une autre.<br />
*[[Remote Debugging]] (Anglais) - Comment déboguer votre application Lazarus sur une autre machine.<br />
*[[Extending the IDE]] (Anglais) - Comment ajouter des fonctionnalités à l'IDE Lazarus.<br />
*[[Lazarus IDE ToDo List]] (Anglais) - Tâches à réaliser pour l'IDE.<br />
*[[Anchor Sides]] (Anglais) - Description of Anchor Sides Feature.<br />
<br />
==Documentation des composants additionnels ==<br />
*[[Pascal Script]] et [[Pascal Script Examples]] (Anglais) - Comment utiliser les composants script pascal dans Lazarus.<br />
*[[OpenGL]] (Anglais) - Comment utiliser OpenGL dans Lazarus.<br />
<br />
==Documentation Free Pascal Compiler==<br />
En plus de [http://lazarus-ccr.sourceforge.net/fpcdoc/ ce site], la dernière version de la documentation peut aussi être trouvée en ligne dans plusieurs formats sur la page principale du [http://www.freepascal.org/docs.html Free Pascal Compiler site].<br />
Il y a maintenant un site WiKi pour FreePascal [http://www.freepascal.org/wiki/index.php/Main_Page] très similaire dans son style à celui-ci, qui autorise les développeurs à soumettre de la documentation en plus de la documentation FPC officielle.<br />
<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html Guide de l'utilisateur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/prog/prog.html Guide du programmeur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/ref/ref.html Guide de réference pour les unités système, et constructions Pascal supportées]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/rtl/index.html Manuel de référence de la librairie Run-Time]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fcl/index.html Manuel de référence de la librairie Free Component]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fpdoc/fpdoc.html Manuel des outils Free Pascal documentation]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Template:Lazarus_Database_Tutorial&diff=19402Template:Lazarus Database Tutorial2007-06-08T10:49:04Z<p>Ejca: Ordre alphabétique (es) -> (fr) -> (ja)</p>
<hr />
<div><small><br />
[[Lazarus Database Tutorial/de|'''Deutsch (de)''']]<br />
[[Lazarus Database Tutorial | English (en)]]<br />
[[Lazarus Database Tutorial/es|'''Español (es)''']]<br />
[[Lazarus Database Tutorial/fr|'''Français (fr)''']]<br />
[[Lazarus Database Tutorial/ja|'''Japanese (ja)''']]<br />
[[Lazarus Database Tutorial/nl|'''Nederlands (nl)''']]<br />
[[Lazarus Database Tutorial/pt|'''Português (pt)''']]<br />
</small></div>Ejcahttps://wiki.freepascal.org/index.php?title=Template:Add_language_bar&diff=19401Template:Add language bar2007-06-08T10:47:26Z<p>Ejca: Ordre alphabétique (fi) -> (fr) -> (pt)</p>
<hr />
<div><small><br />
[[Help:Add language bar | English (en)]]<br />
[[Help:Add language bar/fi | Suomi (fi)]]<br />
[[Help:Add language bar/fr|'''Français (fr)''']]<br />
[[Help:Add language bar/pt|'''Português (pt)''']]<br />
</small></div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation/fr&diff=19337Lazarus Documentation/fr2007-06-02T16:11:01Z<p>Ejca: /* Documentation IDE */</p>
<hr />
<div>{{Lazarus Documentation}}<br />
<br />
==Tutoriels Lazarus et Pascal==<br />
*[[Overview of Free Pascal and Lazarus/fr|Vue d'ensemble de Free Pascal et Lazarus]] - Une brève description du genre de choses que vous pouvez développer avec ces outils d'usage universel.<br />
*[[Lazarus Tutorial/fr|Tutoriel Lazarus]] - Un tutoriel pour les débutants et une description détaillée de l'EDI Lazarus.<br />
*[[Lazarus IDE Tools/fr|Outils de l'EDI Lazarus]] - Un tutoriel de niveau intermédiaire à propos de la complétion de code et d'autres outils de l'EDI.<br />
*[[Lazarus Database Tutorial|Tutoriel Lazarus bases de données]] (Anglais) - Une introduction pour utiliser Lazarus avec des bases de données.<br />
*[[Developing with Graphics|Développer avec des graphismes]] (Anglais) - Quelques exemples basiques de programmation graphique.<br />
*[[Pascal Tutorial|Tutoriel Pascal]] (Anglais) - [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial] (reposted with permission).<br />
*[[Executing External Programs/fr|Exécuter des programmes externes]] - Un court tutoriel montrant comment lancer des programmes externes à l'intérieur de votre programme.<br />
*[[Hardware Access|Accès matériel]] (Anglais) - Comment accéder aux périphériques matériels, tels que cartes ISA, PCI, ports parallèles et séries et périphériques USB.<br />
*[[Networking|Réseaux]] (Anglais) - Tutoriels à propos de XML, du protocole TCP/IP, de la création de programmes sécurisés pour réseaux, WebServices, etc.<br />
*[[Multithreaded Application Tutorial|Tutoriel application Multitâches]] (Anglais) - Comment écrire des applications multitâches en utilisant Free Pascal et Lazarus.<br />
*[[Streaming components|Composants de streaming]] (Anglais) - Comment écrire des composants pour flux et lire/créer des composants à partir de flux<br />
<br />
==Les guides de l'utilisateur de Lazarus==<br />
*[[Installing Lazarus/fr|Installation de Lazarus]] (En cours de traduction) - Un guide d'installation <br />
*[[Lazarus For Delphi Users|Lazarus pour les utilisateurs Delphi]] (Anglais) - Pour les utilisateurs Delphi qui veulent démarrer avec Lazarus.<br />
*[[Lazarus Faq]] (Anglais) - Information générale à propos de Lazarus et spécificités pour utilisateurs Linux et Windows.<br />
*[[Lazarus DB Faq]] (Anglais) - FAQ on database issues in Lazarus.<br />
*[[Code Examples|Exemples de code]] (Anglais) - Example working code for Lazarus.<br />
*[[doc:lcl/|LCL documentation]] (Anglais) - Aide en ligne pour LCL (travail en cours).<br />
*[[File size and smartlinking|Taille des fichiers et liaisons]] (Anglais) - Comment relier facilement des applications et créer des petits exécutables.<br />
*[[Feature_Ideas|Wishlist/Wanted Features]] (Anglais) - Spécificités que vous voudriez voir dans Lazarus<br />
<br />
==Les guides du développeur Lazarus==<br />
*[[How To Help Developing Lazarus|Comment aider à développer Lazarus]] (Anglais) - Un guide pour aider les débutants qui démarrent dans l'amélioration de Lazarus<br />
*[[Version Numbering|Numérotation des versions]] (Anglais) - Explications sur les différents numéros de version de Lazarus <br />
*[[Creating A Patch|Créer un patch]] (Anglais) - un guide pour créer un patch avec les changements faits à Lazarus<br />
*[[Creating a Backtrace with GDB]] (Anglais) - Un guide pour générer des traces pour vous aider à déboguer un programme<br />
*[[DesignGuidelines|Design Guide Lines]] (Anglais) - Un guide sur la façon de procéder quand le code source Lazarus est changé.<br />
*[[GUI design]] (Anglais) - Notes sur les lignes de conduite à propos du design du GUI lazarus<br />
*[[Road To 1.0]] (Anglais) - Ce qu'il reste à faire pour Lazarus 1.0<br />
*[[Nomenclature]] (Anglais) - Guide pour choisir un nom pour une nouvelle méthode ou propriété<br />
*[[Main Loop Hooks]] (Anglais) - Comment manipuler de multiples sources d'évènements<br />
*[[Asynchronous Calls|Appels asynchrones]] (Anglais) - Comment stocker des méthodes pour une exécution ultérieure<br />
*[[Accessing the Interfaces directly|Accéder directement aux interfaces]] (Anglais) - Exemple comment accéder aux widgetssets LCL<br />
*[[Deploying Your Application|Déployer votre application]] (Anglais) - Comment créer un installateur pour votre application<br />
*[[The Power of Proper Planning and Practices]] (Anglais) - common-sense programming best practices for the Free Pascal and Lazarus developer<br />
===Bibliothèque de composants Lazarus===<br />
*[[LCL Messages]] (Anglais) - Guide relatif aux messages de la LCL<br />
*[[LCL Internals]] (Anglais) - Quelques informations à propos du fonctionnement interne de la LCL<br />
*[[LCL Key Handling]] (Anglais) - Au secours ! Une touche pressée, et maintenant ?<br />
*[[LCL Documentation Roadmap]] (Anglais) - Quelles unités ont été documentées<br />
===Outils de Lazarus===<br />
*[[Lazarus Documentation Editor|Editeur de documentation Lazarus]] (Anglais) - Utiliser "lazde" pour créer de la documentation<br />
*[[LazDoc]] (Anglais) - Un éditeur intégré pour fichiers de documentation<br />
<br />
===Interfaces===<br />
*[[Carbon Interface]] (Anglais) - L'interface Carbon<br />
*[[Qt Interface]] (Anglais) - L'interface Qt 4<br />
*[[Windows CE Interface]] (Anglais) - Pour Pocket PC<br />
===Traductions===<br />
* [[Getting translation strings right]] (Anglais) Quelques notes pour les programmeurs sur comment créer et utiliser des chaînes à traduire dans votre application. Rapide discussion généralités à propos de la création de chaînes, avec quelques astuces sur les méthodes d'implémentation et les points à considérer particulièrement quand on utilise l'anglais en langage de base.<br />
* '''Notes de localisation :'''<br />
:* [[German localization notes|German]] (Allemand) - Notes and guidelines for translating the Lazarus IDE to German, including a small dictionary to look up often used translations.<br />
:* [[Portuguese-Brazilian Localization Notes|Portuguese-Brazilian]] (Portugais/Brésilien) - Small dictionary containing common translations of terms used in the Lazarus IDE for the Portuguese-Brazilian translation.<br />
<!-- *[[TO-DO]] Remaining Tasks --><br />
* [[Help:Add language bar | Add language bar]] (Anglais) explique comment vous pouvez ajouter une liste de traductions en haut de page du wiki.<br />
<br />
==Guides de Conversion de Code==<br />
<br />
* [[Code Conversion Guide]] (Anglais) - Comment convertir du code existant et des composants de Delphi et Kylix.<br />
* [[Multiplatform Programming Guide]] (Anglais) - Comment porter des applications d'une plateforme à une autre.<br />
<br />
==Documentation IDE==<br />
*[[Getting Lazarus/fr|Obtenir Lazarus]] (En cours de traduction) - Instructions pour télécharger une version normale ou SVN de Lazarus.<br />
*[[Lazarus Packages]] (Anglais) - Un guide pour créer un paquetage sous Lazarus.<br />
*[[Install Packages]] (Anglais) - Un petit guide pour installer des paquetages.<br />
*[[Cross compiling]] (Anglais) - Créer des exécutables d'une plateforme à une autre.<br />
*[[Remote Debugging]] (Anglais) - Comment déboguer votre application Lazarus sur une autre machine.<br />
*[[Extending the IDE]] (Anglais) - Comment ajouter des fonctionnalités à l'IDE Lazarus.<br />
*[[Lazarus IDE ToDo List]] (Anglais) - Tâches à réaliser pour l'IDE.<br />
*[[Anchor Sides]] (Anglais) - Description of Anchor Sides Feature.<br />
<br />
==Documentation des composants additionnels ==<br />
*[[Pascal Script]] et [[Pascal Script Examples]] (Anglais) - Comment utiliser les composants script pascal dans Lazarus.<br />
*[[OpenGL]] (Anglais) - Comment utiliser OpenGL dans Lazarus.<br />
<br />
==Documentation Free Pascal Compiler==<br />
En plus de [http://lazarus-ccr.sourceforge.net/fpcdoc/ ce site], la dernière version de la documentation peut aussi être trouvée en ligne dans plusieurs formats sur la page principale du [http://www.freepascal.org/docs.html Free Pascal Compiler site].<br />
Il y a maintenant un site WiKi pour FreePascal [http://www.freepascal.org/wiki/index.php/Main_Page] très similaire dans son style à celui-ci, qui autorise les développeurs à soumettre de la documentation en plus de la documentation FPC officielle.<br />
<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html Guide de l'utilisateur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/prog/prog.html Guide du programmeur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/ref/ref.html Guide de réference pour les unités système, et constructions Pascal supportées]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/rtl/index.html Manuel de référence de la librairie Run-Time]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fcl/index.html Manuel de référence de la librairie Free Component]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fpdoc/fpdoc.html Manuel des outils Free Pascal documentation]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation/fr&diff=19325Lazarus Documentation/fr2007-06-02T09:18:23Z<p>Ejca: /* Tutoriels Lazarus et Pascal */</p>
<hr />
<div>{{Lazarus Documentation}}<br />
<br />
==Tutoriels Lazarus et Pascal==<br />
*[[Overview of Free Pascal and Lazarus/fr|Vue d'ensemble de Free Pascal et Lazarus]] - Une brève description du genre de choses que vous pouvez développer avec ces outils d'usage universel.<br />
*[[Lazarus Tutorial/fr|Tutoriel Lazarus]] - Un tutoriel pour les débutants et une description détaillée de l'EDI Lazarus.<br />
*[[Lazarus IDE Tools/fr|Outils de l'EDI Lazarus]] - Un tutoriel de niveau intermédiaire à propos de la complétion de code et d'autres outils de l'EDI.<br />
*[[Lazarus Database Tutorial|Tutoriel Lazarus bases de données]] (Anglais) - Une introduction pour utiliser Lazarus avec des bases de données.<br />
*[[Developing with Graphics|Développer avec des graphismes]] (Anglais) - Quelques exemples basiques de programmation graphique.<br />
*[[Pascal Tutorial|Tutoriel Pascal]] (Anglais) - [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial] (reposted with permission).<br />
*[[Executing External Programs/fr|Exécuter des programmes externes]] - Un court tutoriel montrant comment lancer des programmes externes à l'intérieur de votre programme.<br />
*[[Hardware Access|Accès matériel]] (Anglais) - Comment accéder aux périphériques matériels, tels que cartes ISA, PCI, ports parallèles et séries et périphériques USB.<br />
*[[Networking|Réseaux]] (Anglais) - Tutoriels à propos de XML, du protocole TCP/IP, de la création de programmes sécurisés pour réseaux, WebServices, etc.<br />
*[[Multithreaded Application Tutorial|Tutoriel application Multitâches]] (Anglais) - Comment écrire des applications multitâches en utilisant Free Pascal et Lazarus.<br />
*[[Streaming components|Composants de streaming]] (Anglais) - Comment écrire des composants pour flux et lire/créer des composants à partir de flux<br />
<br />
==Les guides de l'utilisateur de Lazarus==<br />
*[[Installing Lazarus/fr|Installation de Lazarus]] (En cours de traduction) - Un guide d'installation <br />
*[[Lazarus For Delphi Users|Lazarus pour les utilisateurs Delphi]] (Anglais) - Pour les utilisateurs Delphi qui veulent démarrer avec Lazarus.<br />
*[[Lazarus Faq]] (Anglais) - Information générale à propos de Lazarus et spécificités pour utilisateurs Linux et Windows.<br />
*[[Lazarus DB Faq]] (Anglais) - FAQ on database issues in Lazarus.<br />
*[[Code Examples|Exemples de code]] (Anglais) - Example working code for Lazarus.<br />
*[[doc:lcl/|LCL documentation]] (Anglais) - Aide en ligne pour LCL (travail en cours).<br />
*[[File size and smartlinking|Taille des fichiers et liaisons]] (Anglais) - Comment relier facilement des applications et créer des petits exécutables.<br />
*[[Feature_Ideas|Wishlist/Wanted Features]] (Anglais) - Spécificités que vous voudriez voir dans Lazarus<br />
<br />
==Les guides du développeur Lazarus==<br />
*[[How To Help Developing Lazarus|Comment aider à développer Lazarus]] (Anglais) - Un guide pour aider les débutants qui démarrent dans l'amélioration de Lazarus<br />
*[[Version Numbering|Numérotation des versions]] (Anglais) - Explications sur les différents numéros de version de Lazarus <br />
*[[Creating A Patch|Créer un patch]] (Anglais) - un guide pour créer un patch avec les changements faits à Lazarus<br />
*[[Creating a Backtrace with GDB]] (Anglais) - Un guide pour générer des traces pour vous aider à déboguer un programme<br />
*[[DesignGuidelines|Design Guide Lines]] (Anglais) - Un guide sur la façon de procéder quand le code source Lazarus est changé.<br />
*[[GUI design]] (Anglais) - Notes sur les lignes de conduite à propos du design du GUI lazarus<br />
*[[Road To 1.0]] (Anglais) - Ce qu'il reste à faire pour Lazarus 1.0<br />
*[[Nomenclature]] (Anglais) - Guide pour choisir un nom pour une nouvelle méthode ou propriété<br />
*[[Main Loop Hooks]] (Anglais) - Comment manipuler de multiples sources d'évènements<br />
*[[Asynchronous Calls|Appels asynchrones]] (Anglais) - Comment stocker des méthodes pour une exécution ultérieure<br />
*[[Accessing the Interfaces directly|Accéder directement aux interfaces]] (Anglais) - Exemple comment accéder aux widgetssets LCL<br />
*[[Deploying Your Application|Déployer votre application]] (Anglais) - Comment créer un installateur pour votre application<br />
*[[The Power of Proper Planning and Practices]] (Anglais) - common-sense programming best practices for the Free Pascal and Lazarus developer<br />
===Bibliothèque de composants Lazarus===<br />
*[[LCL Messages]] (Anglais) - Guide relatif aux messages de la LCL<br />
*[[LCL Internals]] (Anglais) - Quelques informations à propos du fonctionnement interne de la LCL<br />
*[[LCL Key Handling]] (Anglais) - Au secours ! Une touche pressée, et maintenant ?<br />
*[[LCL Documentation Roadmap]] (Anglais) - Quelles unités ont été documentées<br />
===Outils de Lazarus===<br />
*[[Lazarus Documentation Editor|Editeur de documentation Lazarus]] (Anglais) - Utiliser "lazde" pour créer de la documentation<br />
*[[LazDoc]] (Anglais) - Un éditeur intégré pour fichiers de documentation<br />
<br />
===Interfaces===<br />
*[[Carbon Interface]] (Anglais) - L'interface Carbon<br />
*[[Qt Interface]] (Anglais) - L'interface Qt 4<br />
*[[Windows CE Interface]] (Anglais) - Pour Pocket PC<br />
===Traductions===<br />
* [[Getting translation strings right]] (Anglais) Quelques notes pour les programmeurs sur comment créer et utiliser des chaînes à traduire dans votre application. Rapide discussion généralités à propos de la création de chaînes, avec quelques astuces sur les méthodes d'implémentation et les points à considérer particulièrement quand on utilise l'anglais en langage de base.<br />
* '''Notes de localisation :'''<br />
:* [[German localization notes|German]] (Allemand) - Notes and guidelines for translating the Lazarus IDE to German, including a small dictionary to look up often used translations.<br />
:* [[Portuguese-Brazilian Localization Notes|Portuguese-Brazilian]] (Portugais/Brésilien) - Small dictionary containing common translations of terms used in the Lazarus IDE for the Portuguese-Brazilian translation.<br />
<!-- *[[TO-DO]] Remaining Tasks --><br />
* [[Help:Add language bar | Add language bar]] (Anglais) explique comment vous pouvez ajouter une liste de traductions en haut de page du wiki.<br />
<br />
==Guides de Conversion de Code==<br />
<br />
* [[Code Conversion Guide]] (Anglais) - Comment convertir du code existant et des composants de Delphi et Kylix.<br />
* [[Multiplatform Programming Guide]] (Anglais) - Comment porter des applications d'une plateforme à une autre.<br />
<br />
==Documentation IDE==<br />
*[[Getting Lazarus/fr|Obtenir Lazarus]] - Instructions pour télécharger une version normale ou SVN de Lazarus.<br />
*[[Lazarus Packages]] (Anglais) - Un guide pour créer un paquetage sous Lazarus.<br />
*[[Install Packages]] (Anglais) - Un petit guide pour installer des paquetages.<br />
*[[Cross compiling]] (Anglais) - Créer des executables d'une plateforme à une autre.<br />
*[[Remote Debugging]] (Anglais) - Comment déboguer votre application Lazarus sur une autre machine.<br />
*[[Extending the IDE]] (Anglais) - Comment ajouter des fonctionnalités à l'IDE Lazarus.<br />
*[[Lazarus IDE ToDo List]] (Anglais) - Tâches à réaliser pour l'IDE.<br />
*[[Anchor Sides]] (Anglais) - Description of Anchor Sides Feature.<br />
<br />
==Documentation des composants additionnels ==<br />
*[[Pascal Script]] et [[Pascal Script Examples]] (Anglais) - Comment utiliser les composants script pascal dans Lazarus.<br />
*[[OpenGL]] (Anglais) - Comment utiliser OpenGL dans Lazarus.<br />
<br />
==Documentation Free Pascal Compiler==<br />
En plus de [http://lazarus-ccr.sourceforge.net/fpcdoc/ ce site], la dernière version de la documentation peut aussi être trouvée en ligne dans plusieurs formats sur la page principale du [http://www.freepascal.org/docs.html Free Pascal Compiler site].<br />
Il y a maintenant un site WiKi pour FreePascal [http://www.freepascal.org/wiki/index.php/Main_Page] très similaire dans son style à celui-ci, qui autorise les développeurs à soumettre de la documentation en plus de la documentation FPC officielle.<br />
<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html Guide de l'utilisateur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/prog/prog.html Guide du programmeur]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/ref/ref.html Guide de réference pour les unités système, et constructions Pascal supportées]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/rtl/index.html Manuel de référence de la librairie Run-Time]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fcl/index.html Manuel de référence de la librairie Free Component]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fpdoc/fpdoc.html Manuel des outils Free Pascal documentation]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19324Lazarus Tutorial/fr2007-06-02T09:13:12Z<p>Ejca: /* Original contributors and changes */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un débogueur et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, l'éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' [...]. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points [...], une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' [...], pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton [+] à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte [+], chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#Le débogueur|débogueur]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[#Les fichiers de Lazarus|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un, ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimés du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==Le débogueur==<br />
: ''Reste encore à écrire''.<br />
<br />
==Les fichiers de Lazarus==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
Lorsque vous enregistrez vous sauvez deux fichiers : <br />
<br />
xxx.pas et yyy.lpr <br />
(En fait vous enregistrez plus que ça mais ces deux là sont les seuls à qui vous donnez un nom). Le fichier de projet '''.lpr''' et le fichier d'unité '''.pas''' ne doivent pas avoir le même nom car Lazarus renommera automatiquement l'unité (dans le code source) de la même manière que le fichier d'unité et le programme aura le même nom que le fichier de projet (cela est nécessaire au compilateur car il ne sera probablement pas capable de trouver l'unité lorsqu'elle sera référencée dans le fichier de projet). Bien sûr, pour être cohérent, il change toute les occurrences de Unit1 en xxx.<br />
<br />
Par conséquent, si vous enregistrez un fichier appelé '''encore''', essayez d'enregistrer encore.pas et encore.lpr échouera car les noms de l'unité et du programme sont les même ce qui entraînera une erreur.<br />
<br />
Les fichiers sont donc :<br />
<br />
e:/lazarus/kj/lazhello<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 encore.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 encore.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 encore.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 encoreu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 encoreu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 encoreu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 encoreu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note : il y a plus de fichiers que les deux que j'ai enregistré.<br />
<br />
Ci-dessous un bref commentaire sur chacun des fichiers :<br />
<br />
'''encore.exe :'''<br />
L'exécutable du programme. Win32 ajoute l'extension ".exe", mais pas Linux. Le fichier est très gros à cause de l'inclusion des symboles de débogage (il est prévu de résoudre ce problème). Cependant, vous pouvez exécuter l'utilitaire "strip" pour supprimer ces symboles et réduire de façon substantiel la taille de l'exécutable.<br />
<br />
'''encore.lpi :'''<br />
C'est le fichier principal d'un projet Lazarus (Lazarus Project Information) ; l'équivalent Delphi du fichier ".dpr". Il est enregistré au format XML.<br />
<br />
'''encore.lpr :'''<br />
C'est le fichier source principal du programme. En dépit du fait qu'il a une extension spécifique à Lazarus il s'agit en fait d'un fichier source Pascal parfaitement normal. Il possède une clause '''uses''' qui permet au compilateur de trouver toutes les unités nécessaire. Veuillez noter que, hormis l'extension du fichier, le nom du programme est le même.<br />
<br />
'''encoreu.lfm :'''<br />
C'est ici que Lazarus stocke les paramètre de la fiche (position, taille...). Lazarus utilise ce fichier pour générer la ressource incluse dans la section d'initialisation de l'unité encoreu.pas. Les fichier '''.dfm''' de Delphi peuvent être convertis au format '''.lfm''' dans l'EDI de Lazarus en utilisant la commande ''Outils->Convertir un fichier DFM en fichier LFM''.<br />
<br />
'''encore.lrs :'''<br />
C'est le fichier de ressource. Ce n'est pas un fichier de ressource Windows.<br />
<br />
'''encoreu.pas :'''<br />
Ce fichier contiens votre code correspondant à cette fiche.<br />
<br />
'''encore.ppu :'''<br />
L'unité compilé.<br />
<br />
'''ppas.bat :'''<br />
C'est un simple script qui lie (link) le programme pour produire l'exécutable. Si la compilation est un succès, il est effacé par le compilateur.<br />
<br />
==Contributeurs originaux et changements==<br />
Cette page a été importée de [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial epikwiki].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19323Lazarus Tutorial/fr2007-06-02T09:09:17Z<p>Ejca: /* Sous-menu Projet */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un débogueur et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, l'éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' [...]. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points [...], une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' [...], pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton [+] à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte [+], chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#Le débogueur|débogueur]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[#Les fichiers de Lazarus|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un, ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimés du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==Le débogueur==<br />
: ''Reste encore à écrire''.<br />
<br />
==Les fichiers de Lazarus==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
Lorsque vous enregistrez vous sauvez deux fichiers : <br />
<br />
xxx.pas et yyy.lpr <br />
(En fait vous enregistrez plus que ça mais ces deux là sont les seuls à qui vous donnez un nom). Le fichier de projet '''.lpr''' et le fichier d'unité '''.pas''' ne doivent pas avoir le même nom car Lazarus renommera automatiquement l'unité (dans le code source) de la même manière que le fichier d'unité et le programme aura le même nom que le fichier de projet (cela est nécessaire au compilateur car il ne sera probablement pas capable de trouver l'unité lorsqu'elle sera référencée dans le fichier de projet). Bien sûr, pour être cohérent, il change toute les occurrences de Unit1 en xxx.<br />
<br />
Par conséquent, si vous enregistrez un fichier appelé '''encore''', essayez d'enregistrer encore.pas et encore.lpr échouera car les noms de l'unité et du programme sont les même ce qui entraînera une erreur.<br />
<br />
Les fichiers sont donc :<br />
<br />
e:/lazarus/kj/lazhello<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 encore.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 encore.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 encore.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 encoreu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 encoreu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 encoreu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 encoreu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note : il y a plus de fichiers que les deux que j'ai enregistré.<br />
<br />
Ci-dessous un bref commentaire sur chacun des fichiers :<br />
<br />
'''encore.exe :'''<br />
L'exécutable du programme. Win32 ajoute l'extension ".exe", mais pas Linux. Le fichier est très gros à cause de l'inclusion des symboles de débogage (il est prévu de résoudre ce problème). Cependant, vous pouvez exécuter l'utilitaire "strip" pour supprimer ces symboles et réduire de façon substantiel la taille de l'exécutable.<br />
<br />
'''encore.lpi :'''<br />
C'est le fichier principal d'un projet Lazarus (Lazarus Project Information) ; l'équivalent Delphi du fichier ".dpr". Il est enregistré au format XML.<br />
<br />
'''encore.lpr :'''<br />
C'est le fichier source principal du programme. En dépit du fait qu'il a une extension spécifique à Lazarus il s'agit en fait d'un fichier source Pascal parfaitement normal. Il possède une clause '''uses''' qui permet au compilateur de trouver toutes les unités nécessaire. Veuillez noter que, hormis l'extension du fichier, le nom du programme est le même.<br />
<br />
'''encoreu.lfm :'''<br />
C'est ici que Lazarus stocke les paramètre de la fiche (position, taille...). Lazarus utilise ce fichier pour générer la ressource incluse dans la section d'initialisation de l'unité encoreu.pas. Les fichier '''.dfm''' de Delphi peuvent être convertis au format '''.lfm''' dans l'EDI de Lazarus en utilisant la commande ''Outils->Convertir un fichier DFM en fichier LFM''.<br />
<br />
'''encore.lrs :'''<br />
C'est le fichier de ressource. Ce n'est pas un fichier de ressource Windows.<br />
<br />
'''encoreu.pas :'''<br />
Ce fichier contiens votre code correspondant à cette fiche.<br />
<br />
'''encore.ppu :'''<br />
L'unité compilé.<br />
<br />
'''ppas.bat :'''<br />
C'est un simple script qui lie (link) le programme pour produire l'exécutable. Si la compilation est un succès, il est effacé par le compilateur.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19322Lazarus Tutorial/fr2007-06-02T09:06:11Z<p>Ejca: /* Sous-menu Projet */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un débogueur et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, l'éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' [...]. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points [...], une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' [...], pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton [+] à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte [+], chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#Le débogueur|débogueur]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Les fichiers de Lazarus|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimés du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==Le débogueur==<br />
: ''Reste encore à écrire''.<br />
<br />
==Les fichiers de Lazarus==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
Lorsque vous enregistrez vous sauvez deux fichiers : <br />
<br />
xxx.pas et yyy.lpr <br />
(En fait vous enregistrez plus que ça mais ces deux là sont les seuls à qui vous donnez un nom). Le fichier de projet '''.lpr''' et le fichier d'unité '''.pas''' ne doivent pas avoir le même nom car Lazarus renommera automatiquement l'unité (dans le code source) de la même manière que le fichier d'unité et le programme aura le même nom que le fichier de projet (cela est nécessaire au compilateur car il ne sera probablement pas capable de trouver l'unité lorsqu'elle sera référencée dans le fichier de projet). Bien sûr, pour être cohérent, il change toute les occurrences de Unit1 en xxx.<br />
<br />
Par conséquent, si vous enregistrez un fichier appelé '''encore''', essayez d'enregistrer encore.pas et encore.lpr échouera car les noms de l'unité et du programme sont les même ce qui entraînera une erreur.<br />
<br />
Les fichiers sont donc :<br />
<br />
e:/lazarus/kj/lazhello<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 encore.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 encore.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 encore.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 encoreu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 encoreu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 encoreu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 encoreu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note : il y a plus de fichiers que les deux que j'ai enregistré.<br />
<br />
Ci-dessous un bref commentaire sur chacun des fichiers :<br />
<br />
'''encore.exe :'''<br />
L'exécutable du programme. Win32 ajoute l'extension ".exe", mais pas Linux. Le fichier est très gros à cause de l'inclusion des symboles de débogage (il est prévu de résoudre ce problème). Cependant, vous pouvez exécuter l'utilitaire "strip" pour supprimer ces symboles et réduire de façon substantiel la taille de l'exécutable.<br />
<br />
'''encore.lpi :'''<br />
C'est le fichier principal d'un projet Lazarus (Lazarus Project Information) ; l'équivalent Delphi du fichier ".dpr". Il est enregistré au format XML.<br />
<br />
'''encore.lpr :'''<br />
C'est le fichier source principal du programme. En dépit du fait qu'il a une extension spécifique à Lazarus il s'agit en fait d'un fichier source Pascal parfaitement normal. Il possède une clause '''uses''' qui permet au compilateur de trouver toutes les unités nécessaire. Veuillez noter que, hormis l'extension du fichier, le nom du programme est le même.<br />
<br />
'''encoreu.lfm :'''<br />
C'est ici que Lazarus stocke les paramètre de la fiche (position, taille...). Lazarus utilise ce fichier pour générer la ressource incluse dans la section d'initialisation de l'unité encoreu.pas. Les fichier '''.dfm''' de Delphi peuvent être convertis au format '''.lfm''' dans l'EDI de Lazarus en utilisant la commande ''Outils->Convertir un fichier DFM en fichier LFM''.<br />
<br />
'''encore.lrs :'''<br />
C'est le fichier de ressource. Ce n'est pas un fichier de ressource Windows.<br />
<br />
'''encoreu.pas :'''<br />
Ce fichier contiens votre code correspondant à cette fiche.<br />
<br />
'''encore.ppu :'''<br />
L'unité compilé.<br />
<br />
'''ppas.bat :'''<br />
C'est un simple script qui lie (link) le programme pour produire l'exécutable. Si la compilation est un succès, il est effacé par le compilateur.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19321Lazarus Tutorial/fr2007-06-02T09:02:26Z<p>Ejca: /* Sous-menu Voir */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un débogueur et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, l'éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' [...]. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points [...], une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' [...], pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton [+] à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte [+], chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#Le débogueur|débogueur]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==Le débogueur==<br />
: ''Reste encore à écrire''.<br />
<br />
==Les fichiers de Lazarus==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
Lorsque vous enregistrez vous sauvez deux fichiers : <br />
<br />
xxx.pas et yyy.lpr <br />
(En fait vous enregistrez plus que ça mais ces deux là sont les seuls à qui vous donnez un nom). Le fichier de projet '''.lpr''' et le fichier d'unité '''.pas''' ne doivent pas avoir le même nom car Lazarus renommera automatiquement l'unité (dans le code source) de la même manière que le fichier d'unité et le programme aura le même nom que le fichier de projet (cela est nécessaire au compilateur car il ne sera probablement pas capable de trouver l'unité lorsqu'elle sera référencée dans le fichier de projet). Bien sûr, pour être cohérent, il change toute les occurrences de Unit1 en xxx.<br />
<br />
Par conséquent, si vous enregistrez un fichier appelé '''encore''', essayez d'enregistrer encore.pas et encore.lpr échouera car les noms de l'unité et du programme sont les même ce qui entraînera une erreur.<br />
<br />
Les fichiers sont donc :<br />
<br />
e:/lazarus/kj/lazhello<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 encore.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 encore.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 encore.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 encoreu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 encoreu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 encoreu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 encoreu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note : il y a plus de fichiers que les deux que j'ai enregistré.<br />
<br />
Ci-dessous un bref commentaire sur chacun des fichiers :<br />
<br />
'''encore.exe :'''<br />
L'exécutable du programme. Win32 ajoute l'extension ".exe", mais pas Linux. Le fichier est très gros à cause de l'inclusion des symboles de débogage (il est prévu de résoudre ce problème). Cependant, vous pouvez exécuter l'utilitaire "strip" pour supprimer ces symboles et réduire de façon substantiel la taille de l'exécutable.<br />
<br />
'''encore.lpi :'''<br />
C'est le fichier principal d'un projet Lazarus (Lazarus Project Information) ; l'équivalent Delphi du fichier ".dpr". Il est enregistré au format XML.<br />
<br />
'''encore.lpr :'''<br />
C'est le fichier source principal du programme. En dépit du fait qu'il a une extension spécifique à Lazarus il s'agit en fait d'un fichier source Pascal parfaitement normal. Il possède une clause '''uses''' qui permet au compilateur de trouver toutes les unités nécessaire. Veuillez noter que, hormis l'extension du fichier, le nom du programme est le même.<br />
<br />
'''encoreu.lfm :'''<br />
C'est ici que Lazarus stocke les paramètre de la fiche (position, taille...). Lazarus utilise ce fichier pour générer la ressource incluse dans la section d'initialisation de l'unité encoreu.pas. Les fichier '''.dfm''' de Delphi peuvent être convertis au format '''.lfm''' dans l'EDI de Lazarus en utilisant la commande ''Outils->Convertir un fichier DFM en fichier LFM''.<br />
<br />
'''encore.lrs :'''<br />
C'est le fichier de ressource. Ce n'est pas un fichier de ressource Windows.<br />
<br />
'''encoreu.pas :'''<br />
Ce fichier contiens votre code correspondant à cette fiche.<br />
<br />
'''encore.ppu :'''<br />
L'unité compilé.<br />
<br />
'''ppas.bat :'''<br />
C'est un simple script qui lie (link) le programme pour produire l'exécutable. Si la compilation est un succès, il est effacé par le compilateur.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19320Lazarus Tutorial/fr2007-06-02T08:56:00Z<p>Ejca: /* Deuxième session */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un débogueur et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, l'éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' [...]. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points [...], une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' [...], pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==Le débogueur==<br />
: ''Reste encore à écrire''.<br />
<br />
==Les fichiers de Lazarus==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
Lorsque vous enregistrez vous sauvez deux fichiers : <br />
<br />
xxx.pas et yyy.lpr <br />
(En fait vous enregistrez plus que ça mais ces deux là sont les seuls à qui vous donnez un nom). Le fichier de projet '''.lpr''' et le fichier d'unité '''.pas''' ne doivent pas avoir le même nom car Lazarus renommera automatiquement l'unité (dans le code source) de la même manière que le fichier d'unité et le programme aura le même nom que le fichier de projet (cela est nécessaire au compilateur car il ne sera probablement pas capable de trouver l'unité lorsqu'elle sera référencée dans le fichier de projet). Bien sûr, pour être cohérent, il change toute les occurrences de Unit1 en xxx.<br />
<br />
Par conséquent, si vous enregistrez un fichier appelé '''encore''', essayez d'enregistrer encore.pas et encore.lpr échouera car les noms de l'unité et du programme sont les même ce qui entraînera une erreur.<br />
<br />
Les fichiers sont donc :<br />
<br />
e:/lazarus/kj/lazhello<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 encore.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 encore.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 encore.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 encoreu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 encoreu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 encoreu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 encoreu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note : il y a plus de fichiers que les deux que j'ai enregistré.<br />
<br />
Ci-dessous un bref commentaire sur chacun des fichiers :<br />
<br />
'''encore.exe :'''<br />
L'exécutable du programme. Win32 ajoute l'extension ".exe", mais pas Linux. Le fichier est très gros à cause de l'inclusion des symboles de débogage (il est prévu de résoudre ce problème). Cependant, vous pouvez exécuter l'utilitaire "strip" pour supprimer ces symboles et réduire de façon substantiel la taille de l'exécutable.<br />
<br />
'''encore.lpi :'''<br />
C'est le fichier principal d'un projet Lazarus (Lazarus Project Information) ; l'équivalent Delphi du fichier ".dpr". Il est enregistré au format XML.<br />
<br />
'''encore.lpr :'''<br />
C'est le fichier source principal du programme. En dépit du fait qu'il a une extension spécifique à Lazarus il s'agit en fait d'un fichier source Pascal parfaitement normal. Il possède une clause '''uses''' qui permet au compilateur de trouver toutes les unités nécessaire. Veuillez noter que, hormis l'extension du fichier, le nom du programme est le même.<br />
<br />
'''encoreu.lfm :'''<br />
C'est ici que Lazarus stocke les paramètre de la fiche (position, taille...). Lazarus utilise ce fichier pour générer la ressource incluse dans la section d'initialisation de l'unité encoreu.pas. Les fichier '''.dfm''' de Delphi peuvent être convertis au format '''.lfm''' dans l'EDI de Lazarus en utilisant la commande ''Outils->Convertir un fichier DFM en fichier LFM''.<br />
<br />
'''encore.lrs :'''<br />
C'est le fichier de ressource. Ce n'est pas un fichier de ressource Windows.<br />
<br />
'''encoreu.pas :'''<br />
Ce fichier contiens votre code correspondant à cette fiche.<br />
<br />
'''encore.ppu :'''<br />
L'unité compilé.<br />
<br />
'''ppas.bat :'''<br />
C'est un simple script qui lie (link) le programme pour produire l'exécutable. Si la compilation est un succès, il est effacé par le compilateur.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19319Lazarus Tutorial/fr2007-06-02T08:54:41Z<p>Ejca: /* Votre premier programme sous Lazarus ! */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un débogueur et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, l'éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' [...]. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points [...], une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==Le débogueur==<br />
: ''Reste encore à écrire''.<br />
<br />
==Les fichiers de Lazarus==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
Lorsque vous enregistrez vous sauvez deux fichiers : <br />
<br />
xxx.pas et yyy.lpr <br />
(En fait vous enregistrez plus que ça mais ces deux là sont les seuls à qui vous donnez un nom). Le fichier de projet '''.lpr''' et le fichier d'unité '''.pas''' ne doivent pas avoir le même nom car Lazarus renommera automatiquement l'unité (dans le code source) de la même manière que le fichier d'unité et le programme aura le même nom que le fichier de projet (cela est nécessaire au compilateur car il ne sera probablement pas capable de trouver l'unité lorsqu'elle sera référencée dans le fichier de projet). Bien sûr, pour être cohérent, il change toute les occurrences de Unit1 en xxx.<br />
<br />
Par conséquent, si vous enregistrez un fichier appelé '''encore''', essayez d'enregistrer encore.pas et encore.lpr échouera car les noms de l'unité et du programme sont les même ce qui entraînera une erreur.<br />
<br />
Les fichiers sont donc :<br />
<br />
e:/lazarus/kj/lazhello<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 encore.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 encore.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 encore.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 encoreu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 encoreu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 encoreu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 encoreu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note : il y a plus de fichiers que les deux que j'ai enregistré.<br />
<br />
Ci-dessous un bref commentaire sur chacun des fichiers :<br />
<br />
'''encore.exe :'''<br />
L'exécutable du programme. Win32 ajoute l'extension ".exe", mais pas Linux. Le fichier est très gros à cause de l'inclusion des symboles de débogage (il est prévu de résoudre ce problème). Cependant, vous pouvez exécuter l'utilitaire "strip" pour supprimer ces symboles et réduire de façon substantiel la taille de l'exécutable.<br />
<br />
'''encore.lpi :'''<br />
C'est le fichier principal d'un projet Lazarus (Lazarus Project Information) ; l'équivalent Delphi du fichier ".dpr". Il est enregistré au format XML.<br />
<br />
'''encore.lpr :'''<br />
C'est le fichier source principal du programme. En dépit du fait qu'il a une extension spécifique à Lazarus il s'agit en fait d'un fichier source Pascal parfaitement normal. Il possède une clause '''uses''' qui permet au compilateur de trouver toutes les unités nécessaire. Veuillez noter que, hormis l'extension du fichier, le nom du programme est le même.<br />
<br />
'''encoreu.lfm :'''<br />
C'est ici que Lazarus stocke les paramètre de la fiche (position, taille...). Lazarus utilise ce fichier pour générer la ressource incluse dans la section d'initialisation de l'unité encoreu.pas. Les fichier '''.dfm''' de Delphi peuvent être convertis au format '''.lfm''' dans l'EDI de Lazarus en utilisant la commande ''Outils->Convertir un fichier DFM en fichier LFM''.<br />
<br />
'''encore.lrs :'''<br />
C'est le fichier de ressource. Ce n'est pas un fichier de ressource Windows.<br />
<br />
'''encoreu.pas :'''<br />
Ce fichier contiens votre code correspondant à cette fiche.<br />
<br />
'''encore.ppu :'''<br />
L'unité compilé.<br />
<br />
'''ppas.bat :'''<br />
C'est un simple script qui lie (link) le programme pour produire l'exécutable. Si la compilation est un succès, il est effacé par le compilateur.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19318Lazarus Tutorial/fr2007-06-02T08:49:53Z<p>Ejca: /* Vue d'ensemble */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un débogueur et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==Le débogueur==<br />
: ''Reste encore à écrire''.<br />
<br />
==Les fichiers de Lazarus==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
Lorsque vous enregistrez vous sauvez deux fichiers : <br />
<br />
xxx.pas et yyy.lpr <br />
(En fait vous enregistrez plus que ça mais ces deux là sont les seuls à qui vous donnez un nom). Le fichier de projet '''.lpr''' et le fichier d'unité '''.pas''' ne doivent pas avoir le même nom car Lazarus renommera automatiquement l'unité (dans le code source) de la même manière que le fichier d'unité et le programme aura le même nom que le fichier de projet (cela est nécessaire au compilateur car il ne sera probablement pas capable de trouver l'unité lorsqu'elle sera référencée dans le fichier de projet). Bien sûr, pour être cohérent, il change toute les occurrences de Unit1 en xxx.<br />
<br />
Par conséquent, si vous enregistrez un fichier appelé '''encore''', essayez d'enregistrer encore.pas et encore.lpr échouera car les noms de l'unité et du programme sont les même ce qui entraînera une erreur.<br />
<br />
Les fichiers sont donc :<br />
<br />
e:/lazarus/kj/lazhello<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 encore.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 encore.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 encore.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 encoreu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 encoreu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 encoreu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 encoreu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note : il y a plus de fichiers que les deux que j'ai enregistré.<br />
<br />
Ci-dessous un bref commentaire sur chacun des fichiers :<br />
<br />
'''encore.exe :'''<br />
L'exécutable du programme. Win32 ajoute l'extension ".exe", mais pas Linux. Le fichier est très gros à cause de l'inclusion des symboles de débogage (il est prévu de résoudre ce problème). Cependant, vous pouvez exécuter l'utilitaire "strip" pour supprimer ces symboles et réduire de façon substantiel la taille de l'exécutable.<br />
<br />
'''encore.lpi :'''<br />
C'est le fichier principal d'un projet Lazarus (Lazarus Project Information) ; l'équivalent Delphi du fichier ".dpr". Il est enregistré au format XML.<br />
<br />
'''encore.lpr :'''<br />
C'est le fichier source principal du programme. En dépit du fait qu'il a une extension spécifique à Lazarus il s'agit en fait d'un fichier source Pascal parfaitement normal. Il possède une clause '''uses''' qui permet au compilateur de trouver toutes les unités nécessaire. Veuillez noter que, hormis l'extension du fichier, le nom du programme est le même.<br />
<br />
'''encoreu.lfm :'''<br />
C'est ici que Lazarus stocke les paramètre de la fiche (position, taille...). Lazarus utilise ce fichier pour générer la ressource incluse dans la section d'initialisation de l'unité encoreu.pas. Les fichier '''.dfm''' de Delphi peuvent être convertis au format '''.lfm''' dans l'EDI de Lazarus en utilisant la commande ''Outils->Convertir un fichier DFM en fichier LFM''.<br />
<br />
'''encore.lrs :'''<br />
C'est le fichier de ressource. Ce n'est pas un fichier de ressource Windows.<br />
<br />
'''encoreu.pas :'''<br />
Ce fichier contiens votre code correspondant à cette fiche.<br />
<br />
'''encore.ppu :'''<br />
L'unité compilé.<br />
<br />
'''ppas.bat :'''<br />
C'est un simple script qui lie (link) le programme pour produire l'exécutable. Si la compilation est un succès, il est effacé par le compilateur.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19317Lazarus Tutorial/fr2007-06-02T08:46:58Z<p>Ejca: /* Les fichiers de Lazarus */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==Le débogueur==<br />
: ''Reste encore à écrire''.<br />
<br />
==Les fichiers de Lazarus==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
Lorsque vous enregistrez vous sauvez deux fichiers : <br />
<br />
xxx.pas et yyy.lpr <br />
(En fait vous enregistrez plus que ça mais ces deux là sont les seuls à qui vous donnez un nom). Le fichier de projet '''.lpr''' et le fichier d'unité '''.pas''' ne doivent pas avoir le même nom car Lazarus renommera automatiquement l'unité (dans le code source) de la même manière que le fichier d'unité et le programme aura le même nom que le fichier de projet (cela est nécessaire au compilateur car il ne sera probablement pas capable de trouver l'unité lorsqu'elle sera référencée dans le fichier de projet). Bien sûr, pour être cohérent, il change toute les occurrences de Unit1 en xxx.<br />
<br />
Par conséquent, si vous enregistrez un fichier appelé '''encore''', essayez d'enregistrer encore.pas et encore.lpr échouera car les noms de l'unité et du programme sont les même ce qui entraînera une erreur.<br />
<br />
Les fichiers sont donc :<br />
<br />
e:/lazarus/kj/lazhello<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 encore.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 encore.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 encore.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 encoreu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 encoreu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 encoreu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 encoreu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note : il y a plus de fichiers que les deux que j'ai enregistré.<br />
<br />
Ci-dessous un bref commentaire sur chacun des fichiers :<br />
<br />
'''encore.exe :'''<br />
L'exécutable du programme. Win32 ajoute l'extension ".exe", mais pas Linux. Le fichier est très gros à cause de l'inclusion des symboles de débogage (il est prévu de résoudre ce problème). Cependant, vous pouvez exécuter l'utilitaire "strip" pour supprimer ces symboles et réduire de façon substantiel la taille de l'exécutable.<br />
<br />
'''encore.lpi :'''<br />
C'est le fichier principal d'un projet Lazarus (Lazarus Project Information) ; l'équivalent Delphi du fichier ".dpr". Il est enregistré au format XML.<br />
<br />
'''encore.lpr :'''<br />
C'est le fichier source principal du programme. En dépit du fait qu'il a une extension spécifique à Lazarus il s'agit en fait d'un fichier source Pascal parfaitement normal. Il possède une clause '''uses''' qui permet au compilateur de trouver toutes les unités nécessaire. Veuillez noter que, hormis l'extension du fichier, le nom du programme est le même.<br />
<br />
'''encoreu.lfm :'''<br />
C'est ici que Lazarus stocke les paramètre de la fiche (position, taille...). Lazarus utilise ce fichier pour générer la ressource incluse dans la section d'initialisation de l'unité encoreu.pas. Les fichier '''.dfm''' de Delphi peuvent être convertis au format '''.lfm''' dans l'EDI de Lazarus en utilisant la commande ''Outils->Convertir un fichier DFM en fichier LFM''.<br />
<br />
'''encore.lrs :'''<br />
C'est le fichier de ressource. Ce n'est pas un fichier de ressource Windows.<br />
<br />
'''encoreu.pas :'''<br />
Ce fichier contiens votre code correspondant à cette fiche.<br />
<br />
'''encore.ppu :'''<br />
L'unité compilé.<br />
<br />
'''ppas.bat :'''<br />
C'est un simple script qui lie (link) le programme pour produire l'exécutable. Si la compilation est un succès, il est effacé par le compilateur.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19308Lazarus Tutorial/fr2007-06-01T17:44:36Z<p>Ejca: /* Les fichiers de Lazarus */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==Le débogueur==<br />
: ''Reste encore à écrire''.<br />
<br />
==Les fichiers de Lazarus==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
Lorsque vous enregistrez vous sauvez deux fichiers : <br />
<br />
xxx.pas et yyy.lpr <br />
(En fait vous enregistrez plus que ça mais ces deux là sont les seuls à qui vous donnez un nom). Le fichier de projet (lpr) et le fichier d'unité (pas) ne doivent pas avoir le même nom car Lazarus renommera automatiquement l'unité (dans le code source) de la même manière que le fichier d'unité et le programme aura le même nom que le fichier de projet (cela est nécessaire au compilateur car il ne sera probablement pas capable de trouver l'unité lorsqu'elle sera référencée dans le fichier de projet). Bien sûr, pour être cohérent, il change toute les occurrences de Unit1 en xxx.<br />
<br />
Par conséquent, si vous enregistrez un fichier appelé '''encore''', essayez d'enregistrer encore.pas et encore.lpr échouera car les noms de l'unité et du programme sont les même ce qui entraînera une erreur.<br />
<br />
Les fichiers sont donc :<br />
<br />
e:/lazarus/kj/lazhello<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 encore.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 encore.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 encore.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 encoreu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 encoreu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 encoreu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 encoreu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note : il y a plus de fichiers que les deux que j'ai enregistré.<br />
<br />
Ci-dessous un bref commentaire sur chacun des fichiers :<br />
<br />
'''encore.exe :'''<br />
L'exécutable du programme. Win32 ajoute l'extension ".exe", mais pas Linux. Le fichier est très gros à cause de l'inclusion des symboles de débogage (il est prévu de résoudre ce problème). Cependant, vous pouvez exécuter l'utilitaire "strip" pour supprimer ces symboles et réduire de façon substantiel la taille de l'exécutable.<br />
<br />
'''encore.lpi :'''<br />
C'est le fichier principal d'un projet Lazarus (Lazarus Project Information) ; l'équivalent Delphi du fichier ".dpr". Il est enregistré au format XML.<br />
<br />
'''encore.lpr :'''<br />
C'est le fichier source principal du programme. En dépit du fait qu'il a une extension spécifique à Lazarus il s'agit en fait d'un fichier source Pascal parfaitement normal. Il possède une clause uses qui permet au compilateur de trouver toutes les unités nécessaire. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''encoreu.lfm :'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the encoreu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''encore.lrs :'''<br />
C'est fichier de ressource. Ce n'est pas un fichier de ressource Windows.<br />
<br />
'''encoreu.pas :'''<br />
Ce fichier contiens votre code correspondant à cette fiche.<br />
<br />
'''encore.ppu :'''<br />
L'unité compilé.<br />
<br />
'''ppas.bat :'''<br />
C'est un simple script qui lie le programme pour produire l'exécutable. Si la compilation est un succès, il est effacé par le compilateur.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19306Lazarus Tutorial/fr2007-06-01T17:27:12Z<p>Ejca: /* Les fichiers de Lazarus */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==Le débogueur==<br />
: ''Reste encore à écrire''.<br />
<br />
==Les fichiers de Lazarus==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
Lorsque vous enregistrez vous sauvez deux fichiers : <br />
<br />
xxx.pas et yyy.lpr <br />
(En fait vous enregistres plus que ça mais ces deux là sont les seuls à qui vous donnez un nom). Le fichier de projet (lpr) et le fichier d'unité (pas) ne doivent pas avoir le même nom car Lazarus renommera automatiquement l'unité (dans le code source) de la même manière que le fichier d'unité et le programme aura le même nom que le fichier de projet (cela est nécessaire au compilateur car il ne sera probablement pas capable de trouver l'unité lorsqu'elle sera référencée dans le fichier de projet). Bien sûr, pour être cohérent, il change toute les occurrences de Unit1 en xxx.<br />
<br />
Par conséquent, si vous enregistrez un fichier appelé '''encore''', essayez d'enregistrer encore.pas et encore.lpr échouera car les noms de l'unité et du programme sont les même ce qui entraînera une erreur.<br />
<br />
Les fichiers sont donc :<br />
<br />
e:/lazarus/kj/lazhello<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 encore.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 encore.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 encore.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 encoreu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 encoreu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 encoreu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 encoreu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note : il y a plus de fichiers que les deux que j'ai enregistré.<br />
<br />
Ci-dessous un bref commentaire sur chacun des fichiers :<br />
<br />
'''encore.exe :'''<br />
L'exécutable du programme. Win32 ajoute l'extension ".exe", mais pas Linux. Le fichier est très gros à cause de l'inclusion des symboles de débogage (il est prévu de résoudre ce problème). Cependant, vous pouvez exécuter l'utilitaire "strip" pour supprimer ces symboles et réduire de façon substantiel la taille de l'exécutable.<br />
<br />
'''encore.lpi :'''<br />
C'est le fichier principal d'un projet Lazarus (Lazarus Project Information) ; l'équivalent Delphi du fichier ".dpr". Il est enregistré au format XML.<br />
<br />
'''encore.lpr :'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''encoreu.lfm :'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the encoreu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''encore.lrs :'''<br />
C'est fichier de ressource. Ce n'est pas un fichier de ressource Windows.<br />
<br />
'''encoreu.pas:'''<br />
Ce fichier contiens votre code correspondant à cette fiche.<br />
<br />
'''encore.ppu :'''<br />
L'unité compilé.<br />
<br />
'''ppas.bat :'''<br />
C'est un simple script qui lie le programme pour produire l'exécutable. Si la compilation est un succès, il est effacé par le compilateur.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19305Lazarus Tutorial/fr2007-06-01T16:58:57Z<p>Ejca: /* Le débogueur */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==Le débogueur==<br />
: ''Reste encore à écrire''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19304Lazarus Tutorial/fr2007-06-01T16:56:59Z<p>Ejca: /* La barre de boutons */ -> Ortho</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas, affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de débogage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19303Lazarus Tutorial/fr2007-06-01T16:53:10Z<p>Ejca: /* Sous-menu Aide */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme, cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des astuces sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de déboguage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19302Lazarus Tutorial/fr2007-06-01T16:52:11Z<p>Ejca: /* La palette de composents */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des tuyaux sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de déboguage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et le complément de code, il inclus l'export aux formats html, tex et rtf. Il supporte entièrement les composants VCL/CLX, cela ne veux pas dire qu'il soit destiné uniquement à Microsoft Windows, et aucune bibliothèque d'exécution n'est requise ; cela fait de SynEdit un composant multi-plateforme. La compatiblité avec FreePascal est également prévue, et SynEdit est le composant d'édition dans l'EDI Lazarus.'' voir [http://synedit.sourceforge.net synedit sur sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
Pour utiliser une palette, il faut afficher une fiche dans l'éditeur (s'il n'y en a pas, sélectionnez Fichier -> Nouvelle fiche). Cliquez sur l'icône du composant que vous souhaitez utiliser dans l'onglet approprié de la palette, et cliquez sur la fiche, vous verrez le composant apparaître. A ce moment là, vous pourrez le sélectionner à l'aide de la souris, et déplacez le à l'endroit que vous souhaitez sur la fiche et ajustez sa taille. Les ajustements peuvent être effectués directement sur l'image du composant sur la fiche ou en modifiant ses propriétés dans l'éditeur d'objet.<br />
<br />
Si vous installés des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou de paquets provenant d'autre sources, de nouveaux onglets apparaîtrons dans la palette de composants. Ces nouveaux composants peuvent être sélectionnés et utilisés sur vos fiches de la même manière que ceux fournis par défaut.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19284Lazarus Tutorial/fr2007-05-31T18:17:22Z<p>Ejca: /* La palette de composents */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des tuyaux sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de déboguage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19283Lazarus Tutorial/fr2007-05-31T17:59:33Z<p>Ejca: /* La palette de composents */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des tuyaux sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de déboguage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayez d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données :'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''A group of components to help interfacing with other languages and software tools. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19282Lazarus Tutorial/fr2007-05-31T17:53:39Z<p>Ejca: /* La palette de composents */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des tuyaux sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de déboguage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Les composants fréquemment utilisés :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''Des composants souvent utilisés en complément :'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
Pour quelques bons exemples sur l'utilisation des composants voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de programmes montrent comment utiliser les boîtes de dialogue et d'autres composants directement sans utiliser l'EDI et la palette de composants ou des définition de fichier séparés : tous les composants sont complets et explicitement définis dans le programme Pascal principal. D'autres exemples de programmes utilisent entièrement l'EDI.<br />
<br />
Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoins de jouer avec les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention d'avoir les permission de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire pour lequel vous avez les permissions appropriées.<br />
<br />
Essayer d'exécuter le programme 'testall' pour voir le menu des composants disponibles avec de petits exemples de fiches de tes pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Data-aware components, which largely replicate the Standard and Additional groups but are applicable to Databases:'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''A group of components to help interfacing with other languages and software tools. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19281Lazarus Tutorial/fr2007-05-31T17:28:10Z<p>Ejca: /* La barre de boutons */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des tuyaux sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===La barre de boutons===<br />
C'est une barre d'outil à gauche de la fenêtre d'édition principale, juste au-dessous du menu principal et à gauche de la palette de composants, elle contiens un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :<br />
: '''Nouvelle unité''', '''Ouvrir''' (avec une flèche pointant vers le bas affichant une liste des fichiers récemment utilisés), '''Enregistrer''', '''Tout enregistrer''', '''Nouvelle fiche''', '''Commutation Fiche/Unité''' (ie affiche la fiche ou le code source de l'unité), '''Afficher les unités''', '''Afficher les fiches''', '''Exécuter''' (ie compile et exécute), '''Pause''', '''Pas à pas approfondi''', '''Pas à pas''' (les deux dernier sont des fonctions de déboguage).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Frequently used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''More, often-used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
For several good examples of the use of Components see the $LazarusPath/lazarus/examples subdirectory of your source installation. Many of the programs show how to use dialogs and other components directly without using the IDE and component palette or having a separate form definition file: all the components are fully and explicitly defined in the main Pascal program. Other example programs make full use of the IDE.<br />
<br />
Some examples don't work straight away: you may need to play about with paths and permissions of files or directories. If you want to compile any of the examples, make sure that you have read/write/execute permissions for the files and directories, or copy the files to a directory where you do have the appropriate permissions.<br />
<br />
Try running the 'testall' program to see a menu of the available components together with small example test forms for most of them; then inspect the code to find out how they work!<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Data-aware components, which largely replicate the Standard and Additional groups but are applicable to Databases:'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''A group of components to help interfacing with other languages and software tools. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19280Lazarus Tutorial/fr2007-05-31T17:10:52Z<p>Ejca: /* Sous-menu Aide */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====Sous-menu Aide====<br />
* '''Aide en ligne''' : ouvre le navigateur internet et affiche un guépard en train de courir et quelques liens vers les site Lazarus, FreePascal et le Wiki<br />
* '''Configurer l'aide''' : ouvre une fenêtre avec des options pour sélectionner les ''Visualiseurs'' et les bases de données à partir desquelles lire les informations d'Aide. Cette option autorise l'utilisateur à spécifier ou se trouve une section de la documentation en ligne du site Lazarus-CCR, ou d'un quelconque autre site contenant des documents, ou une documentation stockée localement (cela pourra éventuellement être l'option par défaut, lorsque le système d'Aide sera complètement développé).<br />
Si vous placez le curseur de l'éditeur au dessus d'un mot clef de la FeePascal Components Library (FCL) ou de la RunTime Library (RTL), mais pas de la Lazarus Components Library (LCL) et appuyez sur <<F1>> vous serez emmenez vers la définition appropriée sur le site internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION<br />
* '''A propos de Lazarus''' : Affiche une fenêtre avec quelques informations sur Lazarus.<br />
<br />
A terme cela deviendra un service complet d'aide en ligne, avec des informations sur la syntaxe Pascal, l'utilisation de l'EDI, la modification ou la création de composants, et des tuyaux sur la façon d'exécuter certaines tâches. Cette parti de la section de la Documentation (celle que vous être en train de lire) représente le début de ce processus. '''Nous avons besoin des contributions de quiconque se sent capable d'en fournir : le Wiki est très facile à modifier.'''<br />
<br />
===The Button bar===<br />
A small toolbar area on the left of the main editor window, just below the Main Menu and to the left of the Component Palette, contains a set of buttons which replicate frequently-used Main Menu selections:<br />
: '''New unit''', '''Open''' (with a down-arrow to display a drop-down list of recently used files), '''Save''', '''Save all''', '''New Form''', '''Toggle Form/Unit''' (ie show either form or source code of Unit), '''View Units''', '''View Forms''', '''Run''' (ie compile and Run), '''Pause''', '''Step Into''', '''Step over''' (the last two are Debugger functions).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Frequently used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''More, often-used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
For several good examples of the use of Components see the $LazarusPath/lazarus/examples subdirectory of your source installation. Many of the programs show how to use dialogs and other components directly without using the IDE and component palette or having a separate form definition file: all the components are fully and explicitly defined in the main Pascal program. Other example programs make full use of the IDE.<br />
<br />
Some examples don't work straight away: you may need to play about with paths and permissions of files or directories. If you want to compile any of the examples, make sure that you have read/write/execute permissions for the files and directories, or copy the files to a directory where you do have the appropriate permissions.<br />
<br />
Try running the 'testall' program to see a menu of the available components together with small example test forms for most of them; then inspect the code to find out how they work!<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Data-aware components, which largely replicate the Standard and Additional groups but are applicable to Databases:'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''A group of components to help interfacing with other languages and software tools. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19279Lazarus Tutorial/fr2007-05-31T16:38:54Z<p>Ejca: /* Sous-menu Fenêtres */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====Sous-menu Fenêtres====<br />
<div class="floatright">[[image:SousMenuFenetreFr.png]]</div><br />
Contiens une liste des fichiers actuellement ouvert et des fenêtres disponibles comme '''Editeur de sources Lazarus''', '''Inspecteur d'objets''' et '''Messages'''. Cliquez sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.<br />
<br />
====The Help sub-menu====<br />
<br />
At present this has three selections:<br />
* '''Online Help''' which at present opens a browser window that contains a picture of the running cheetah and a few links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' which opens a pop-up menu with options to select viewers and databases from which to read Help information. This option allows the user to specify either the on-line documents section of the Lazarus-CCR website, some other website containing the documents, or a local store for the documentation (this would eventually become the default, when the Help system is fully developed).<br />
At present by default, if you place your Editor cursor over any keyword from the FreePascal Components Library FCL or the RunTime Library RTL (but not the Lazarus Components Library LCL) and then press <<F1>> you will be taken to the appropriate definition on the website. THIS SECTION STILL REPRESENTS WORK IN PROGRESS<br />
<br />
* '''About Lazarus''' Displays a pop-up box with some information about Lazarus.<br />
<br />
Eventually there will be a full on-line Help service, with information about Pascal syntax, the use of the IDE, how to use, modify or create Components, and hints on how to perform certain tasks. This part of the Documentation section (the thing you are currently reading) represents the beginning of the process. '''We need contributions from anyone who feels able to provide them: the WiKi is very easy to edit.'''<br />
<br />
===The Button bar===<br />
A small toolbar area on the left of the main editor window, just below the Main Menu and to the left of the Component Palette, contains a set of buttons which replicate frequently-used Main Menu selections:<br />
: '''New unit''', '''Open''' (with a down-arrow to display a drop-down list of recently used files), '''Save''', '''Save all''', '''New Form''', '''Toggle Form/Unit''' (ie show either form or source code of Unit), '''View Units''', '''View Forms''', '''Run''' (ie compile and Run), '''Pause''', '''Step Into''', '''Step over''' (the last two are Debugger functions).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Frequently used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''More, often-used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
For several good examples of the use of Components see the $LazarusPath/lazarus/examples subdirectory of your source installation. Many of the programs show how to use dialogs and other components directly without using the IDE and component palette or having a separate form definition file: all the components are fully and explicitly defined in the main Pascal program. Other example programs make full use of the IDE.<br />
<br />
Some examples don't work straight away: you may need to play about with paths and permissions of files or directories. If you want to compile any of the examples, make sure that you have read/write/execute permissions for the files and directories, or copy the files to a directory where you do have the appropriate permissions.<br />
<br />
Try running the 'testall' program to see a menu of the available components together with small example test forms for most of them; then inspect the code to find out how they work!<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Data-aware components, which largely replicate the Standard and Additional groups but are applicable to Databases:'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''A group of components to help interfacing with other languages and software tools. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=File:SousMenuFenetreFr.png&diff=19278File:SousMenuFenetreFr.png2007-05-31T16:32:52Z<p>Ejca: Sous-menu Fenêtre version française.</p>
<hr />
<div>Sous-menu Fenêtre version française.</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19246Lazarus Tutorial/fr2007-05-30T16:57:35Z<p>Ejca: /* Sous-menu Configuration */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Editeur des directives des outils de code''' : Vous pouvez voir ici toutes les définitions interne que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemin d'inclusion pour tous les répertoire. Il commence avec le paramétrage courant de FPC, les définition du répertoire de source de Lazarus, tous les répertoires de paquet et les répertoire de projet.<br />
La plupart des ses paramètres son générés automatiquement et sont en lecture seule.<br />
* '''Reparcourir le répertoire des sources FPC''' : Fait une nouvelle consultation des répertoires. Lazarus utilise les sources de FPC pour générer des événements corrects tout en recherchant les déclarations. Si quelqu'un change le répertoire dans les options d'environnement, ce répertoire est reparcouru, pour être certain que Lazarus utilise la version stocké à cet endroit. Mais si ce répertoire à changé sans que Lazarus en soit averti, alors vous aurez quelques erreur au moment de travailler sur une fiche ou en faisant ''Chercher la déclaration''. Si vous obtenez une telle erreur vous pouvez faire deux choses :<br />
*# Contrôlez le paramètre du répertoire de source FPC dans les ''Options d'environnement''.<br />
*# ''Reparcourrir le répertoire'' des sources FPC.<br />
<br />
====The Windows sub-menu====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Contains a list of the currently opened files and the available windows such as '''Source Editor''', '''Object Inspector''' and '''Project Inspector'''. Clicking on the name of one of the windows brings it to the foreground and gives it focus.<br />
<div style="clear:both;"></div><br />
<br />
====The Help sub-menu====<br />
<br />
At present this has three selections:<br />
* '''Online Help''' which at present opens a browser window that contains a picture of the running cheetah and a few links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' which opens a pop-up menu with options to select viewers and databases from which to read Help information. This option allows the user to specify either the on-line documents section of the Lazarus-CCR website, some other website containing the documents, or a local store for the documentation (this would eventually become the default, when the Help system is fully developed).<br />
At present by default, if you place your Editor cursor over any keyword from the FreePascal Components Library FCL or the RunTime Library RTL (but not the Lazarus Components Library LCL) and then press <<F1>> you will be taken to the appropriate definition on the website. THIS SECTION STILL REPRESENTS WORK IN PROGRESS<br />
<br />
* '''About Lazarus''' Displays a pop-up box with some information about Lazarus.<br />
<br />
Eventually there will be a full on-line Help service, with information about Pascal syntax, the use of the IDE, how to use, modify or create Components, and hints on how to perform certain tasks. This part of the Documentation section (the thing you are currently reading) represents the beginning of the process. '''We need contributions from anyone who feels able to provide them: the WiKi is very easy to edit.'''<br />
<br />
===The Button bar===<br />
A small toolbar area on the left of the main editor window, just below the Main Menu and to the left of the Component Palette, contains a set of buttons which replicate frequently-used Main Menu selections:<br />
: '''New unit''', '''Open''' (with a down-arrow to display a drop-down list of recently used files), '''Save''', '''Save all''', '''New Form''', '''Toggle Form/Unit''' (ie show either form or source code of Unit), '''View Units''', '''View Forms''', '''Run''' (ie compile and Run), '''Pause''', '''Step Into''', '''Step over''' (the last two are Debugger functions).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Frequently used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''More, often-used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
For several good examples of the use of Components see the $LazarusPath/lazarus/examples subdirectory of your source installation. Many of the programs show how to use dialogs and other components directly without using the IDE and component palette or having a separate form definition file: all the components are fully and explicitly defined in the main Pascal program. Other example programs make full use of the IDE.<br />
<br />
Some examples don't work straight away: you may need to play about with paths and permissions of files or directories. If you want to compile any of the examples, make sure that you have read/write/execute permissions for the files and directories, or copy the files to a directory where you do have the appropriate permissions.<br />
<br />
Try running the 'testall' program to see a menu of the available components together with small example test forms for most of them; then inspect the code to find out how they work!<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Data-aware components, which largely replicate the Standard and Additional groups but are applicable to Databases:'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''A group of components to help interfacing with other languages and software tools. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19224Lazarus Tutorial/fr2007-05-27T18:59:00Z<p>Ejca: /* Sous-menu Configuration */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - Permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'indentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélection des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Espace''' - indique de quel manière un espace peut être ajouté automatiquement avant ou après certaines syntaxes comme des mots clefs ou des marques de ponctuation. <br />
* '''Code Tools Defines Editor''': Here you can see all IDE internal definitions to parse sources. You will see all the defines, unit, source, include paths for all source directories. Beginning with the settings of the current FPC, the defines for the Lazarus Source directory, all package directories and project directories.<br />
Most of these settings are auto generated and read only.<br />
* '''Re-scan FPC Source directory''' Looks through the directory again. Lazarus uses the fpc sources to generate correct event handlers and while looking for declarations. If somebody changes the directory in the environment options, then this directory is rescanned, to make sure lazarus uses the version stored in that location. But if this directory has changed without lazarus noticing, then you may get some errors when designing forms or doing "Find declaration". If you get such an error, you can do two things:<br />
*# Check the fpc source directory setting in the environment option.<br />
*# Re-scan FPC source directory.<br />
<br />
====The Windows sub-menu====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Contains a list of the currently opened files and the available windows such as '''Source Editor''', '''Object Inspector''' and '''Project Inspector'''. Clicking on the name of one of the windows brings it to the foreground and gives it focus.<br />
<div style="clear:both;"></div><br />
<br />
====The Help sub-menu====<br />
<br />
At present this has three selections:<br />
* '''Online Help''' which at present opens a browser window that contains a picture of the running cheetah and a few links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' which opens a pop-up menu with options to select viewers and databases from which to read Help information. This option allows the user to specify either the on-line documents section of the Lazarus-CCR website, some other website containing the documents, or a local store for the documentation (this would eventually become the default, when the Help system is fully developed).<br />
At present by default, if you place your Editor cursor over any keyword from the FreePascal Components Library FCL or the RunTime Library RTL (but not the Lazarus Components Library LCL) and then press <<F1>> you will be taken to the appropriate definition on the website. THIS SECTION STILL REPRESENTS WORK IN PROGRESS<br />
<br />
* '''About Lazarus''' Displays a pop-up box with some information about Lazarus.<br />
<br />
Eventually there will be a full on-line Help service, with information about Pascal syntax, the use of the IDE, how to use, modify or create Components, and hints on how to perform certain tasks. This part of the Documentation section (the thing you are currently reading) represents the beginning of the process. '''We need contributions from anyone who feels able to provide them: the WiKi is very easy to edit.'''<br />
<br />
===The Button bar===<br />
A small toolbar area on the left of the main editor window, just below the Main Menu and to the left of the Component Palette, contains a set of buttons which replicate frequently-used Main Menu selections:<br />
: '''New unit''', '''Open''' (with a down-arrow to display a drop-down list of recently used files), '''Save''', '''Save all''', '''New Form''', '''Toggle Form/Unit''' (ie show either form or source code of Unit), '''View Units''', '''View Forms''', '''Run''' (ie compile and Run), '''Pause''', '''Step Into''', '''Step over''' (the last two are Debugger functions).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Frequently used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''More, often-used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
For several good examples of the use of Components see the $LazarusPath/lazarus/examples subdirectory of your source installation. Many of the programs show how to use dialogs and other components directly without using the IDE and component palette or having a separate form definition file: all the components are fully and explicitly defined in the main Pascal program. Other example programs make full use of the IDE.<br />
<br />
Some examples don't work straight away: you may need to play about with paths and permissions of files or directories. If you want to compile any of the examples, make sure that you have read/write/execute permissions for the files and directories, or copy the files to a directory where you do have the appropriate permissions.<br />
<br />
Try running the 'testall' program to see a menu of the available components together with small example test forms for most of them; then inspect the code to find out how they work!<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Data-aware components, which largely replicate the Standard and Additional groups but are applicable to Databases:'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''A group of components to help interfacing with other languages and software tools. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19223Lazarus Tutorial/fr2007-05-27T17:20:53Z<p>Ejca: /* Sous-menu Configuration */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement...''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - Permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'intentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélectoin des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - détermine les règles selon lesquelles les lignes se coupent (avant ou après la ponctuation, après des mots clefs etc.) ; <br />
** '''Space''' - decide whether a space is to be added automatically before or after certain syntactic features such as keywords or punctuation marks. <br />
* '''Code Tools Defines Editor''': Here you can see all IDE internal definitions to parse sources. You will see all the defines, unit, source, include paths for all source directories. Beginning with the settings of the current FPC, the defines for the Lazarus Source directory, all package directories and project directories.<br />
Most of these settings are auto generated and read only.<br />
* '''Re-scan FPC Source directory''' Looks through the directory again. Lazarus uses the fpc sources to generate correct event handlers and while looking for declarations. If somebody changes the directory in the environment options, then this directory is rescanned, to make sure lazarus uses the version stored in that location. But if this directory has changed without lazarus noticing, then you may get some errors when designing forms or doing "Find declaration". If you get such an error, you can do two things:<br />
*# Check the fpc source directory setting in the environment option.<br />
*# Re-scan FPC source directory.<br />
<br />
====The Windows sub-menu====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Contains a list of the currently opened files and the available windows such as '''Source Editor''', '''Object Inspector''' and '''Project Inspector'''. Clicking on the name of one of the windows brings it to the foreground and gives it focus.<br />
<div style="clear:both;"></div><br />
<br />
====The Help sub-menu====<br />
<br />
At present this has three selections:<br />
* '''Online Help''' which at present opens a browser window that contains a picture of the running cheetah and a few links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' which opens a pop-up menu with options to select viewers and databases from which to read Help information. This option allows the user to specify either the on-line documents section of the Lazarus-CCR website, some other website containing the documents, or a local store for the documentation (this would eventually become the default, when the Help system is fully developed).<br />
At present by default, if you place your Editor cursor over any keyword from the FreePascal Components Library FCL or the RunTime Library RTL (but not the Lazarus Components Library LCL) and then press <<F1>> you will be taken to the appropriate definition on the website. THIS SECTION STILL REPRESENTS WORK IN PROGRESS<br />
<br />
* '''About Lazarus''' Displays a pop-up box with some information about Lazarus.<br />
<br />
Eventually there will be a full on-line Help service, with information about Pascal syntax, the use of the IDE, how to use, modify or create Components, and hints on how to perform certain tasks. This part of the Documentation section (the thing you are currently reading) represents the beginning of the process. '''We need contributions from anyone who feels able to provide them: the WiKi is very easy to edit.'''<br />
<br />
===The Button bar===<br />
A small toolbar area on the left of the main editor window, just below the Main Menu and to the left of the Component Palette, contains a set of buttons which replicate frequently-used Main Menu selections:<br />
: '''New unit''', '''Open''' (with a down-arrow to display a drop-down list of recently used files), '''Save''', '''Save all''', '''New Form''', '''Toggle Form/Unit''' (ie show either form or source code of Unit), '''View Units''', '''View Forms''', '''Run''' (ie compile and Run), '''Pause''', '''Step Into''', '''Step over''' (the last two are Debugger functions).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Frequently used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''More, often-used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
For several good examples of the use of Components see the $LazarusPath/lazarus/examples subdirectory of your source installation. Many of the programs show how to use dialogs and other components directly without using the IDE and component palette or having a separate form definition file: all the components are fully and explicitly defined in the main Pascal program. Other example programs make full use of the IDE.<br />
<br />
Some examples don't work straight away: you may need to play about with paths and permissions of files or directories. If you want to compile any of the examples, make sure that you have read/write/execute permissions for the files and directories, or copy the files to a directory where you do have the appropriate permissions.<br />
<br />
Try running the 'testall' program to see a menu of the available components together with small example test forms for most of them; then inspect the code to find out how they work!<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Data-aware components, which largely replicate the Standard and Additional groups but are applicable to Databases:'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''A group of components to help interfacing with other languages and software tools. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=19159Lazarus Tutorial/fr2007-05-22T17:54:53Z<p>Ejca: /* Sous-menu Configuration */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement...''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - Permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'intentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélectoin des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' <br />
* '''Modèle de code'''<br />
* '''Debugger Options''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Général''' - choisi le débogueur : none, GNU debugger (gdb) ou gdb through SSH, spécifie le chemin de recherches pour les débogueurs, et les options spécifique au débogueur choisi ; <br />
** '''Event log''' - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ; <br />
** '''Language Exceptions''' - sélectionne quels exceptions peuvent être ignorées ; <br />
** '''OS Exceptions''' - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).<br />
* '''Options des Outils de code''' : Affiche une fenêtre contenant les onglets suivants <br />
** '''Général''' - Permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ; <br />
** '''Création de code''' - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ; <br />
** '''Mots''' - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ; <br />
** '''Coupure de ligne''' - establish rules about where lines are allowed to be split (before or after punctuation, after keywords etc); <br />
** '''Space''' - decide whether a space is to be added automatically before or after certain syntactic features such as keywords or punctuation marks. <br />
* '''Code Tools Defines Editor''': Here you can see all IDE internal definitions to parse sources. You will see all the defines, unit, source, include paths for all source directories. Beginning with the settings of the current FPC, the defines for the Lazarus Source directory, all package directories and project directories.<br />
Most of these settings are auto generated and read only.<br />
* '''Re-scan FPC Source directory''' Looks through the directory again. Lazarus uses the fpc sources to generate correct event handlers and while looking for declarations. If somebody changes the directory in the environment options, then this directory is rescanned, to make sure lazarus uses the version stored in that location. But if this directory has changed without lazarus noticing, then you may get some errors when designing forms or doing "Find declaration". If you get such an error, you can do two things:<br />
*# Check the fpc source directory setting in the environment option.<br />
*# Re-scan FPC source directory.<br />
<br />
====The Windows sub-menu====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Contains a list of the currently opened files and the available windows such as '''Source Editor''', '''Object Inspector''' and '''Project Inspector'''. Clicking on the name of one of the windows brings it to the foreground and gives it focus.<br />
<div style="clear:both;"></div><br />
<br />
====The Help sub-menu====<br />
<br />
At present this has three selections:<br />
* '''Online Help''' which at present opens a browser window that contains a picture of the running cheetah and a few links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' which opens a pop-up menu with options to select viewers and databases from which to read Help information. This option allows the user to specify either the on-line documents section of the Lazarus-CCR website, some other website containing the documents, or a local store for the documentation (this would eventually become the default, when the Help system is fully developed).<br />
At present by default, if you place your Editor cursor over any keyword from the FreePascal Components Library FCL or the RunTime Library RTL (but not the Lazarus Components Library LCL) and then press <<F1>> you will be taken to the appropriate definition on the website. THIS SECTION STILL REPRESENTS WORK IN PROGRESS<br />
<br />
* '''About Lazarus''' Displays a pop-up box with some information about Lazarus.<br />
<br />
Eventually there will be a full on-line Help service, with information about Pascal syntax, the use of the IDE, how to use, modify or create Components, and hints on how to perform certain tasks. This part of the Documentation section (the thing you are currently reading) represents the beginning of the process. '''We need contributions from anyone who feels able to provide them: the WiKi is very easy to edit.'''<br />
<br />
===The Button bar===<br />
A small toolbar area on the left of the main editor window, just below the Main Menu and to the left of the Component Palette, contains a set of buttons which replicate frequently-used Main Menu selections:<br />
: '''New unit''', '''Open''' (with a down-arrow to display a drop-down list of recently used files), '''Save''', '''Save all''', '''New Form''', '''Toggle Form/Unit''' (ie show either form or source code of Unit), '''View Units''', '''View Forms''', '''Run''' (ie compile and Run), '''Pause''', '''Step Into''', '''Step over''' (the last two are Debugger functions).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Frequently used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''More, often-used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
For several good examples of the use of Components see the $LazarusPath/lazarus/examples subdirectory of your source installation. Many of the programs show how to use dialogs and other components directly without using the IDE and component palette or having a separate form definition file: all the components are fully and explicitly defined in the main Pascal program. Other example programs make full use of the IDE.<br />
<br />
Some examples don't work straight away: you may need to play about with paths and permissions of files or directories. If you want to compile any of the examples, make sure that you have read/write/execute permissions for the files and directories, or copy the files to a directory where you do have the appropriate permissions.<br />
<br />
Try running the 'testall' program to see a menu of the available components together with small example test forms for most of them; then inspect the code to find out how they work!<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Data-aware components, which largely replicate the Standard and Additional groups but are applicable to Databases:'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''A group of components to help interfacing with other languages and software tools. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=18854Lazarus Tutorial/fr2007-05-10T18:04:55Z<p>Ejca: /* Sous-menu Configuration */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement...''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Appellation''' - spécifie quelle extension à utiliser pour les noms des fichiers Pascal ('.pp' or '.pas'), il est possible de paramétrer les actions à effectuer pour les fichiers litigieux ainsi que la casse des fichiers enregistrés.<br />
** '''LazDoc''' - Permet d'indiquer les chemins pour LazDoc.<br />
* '''Options de l'éditeur''' : Fenêtre à onglets pour <br />
** '''Général''' - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, afficher les conseils de défilement, mise en évidence de la syntaxe, édition par glisser déposer, taille du bloc d'intentation et de tabulation, le nombre d'annuler possible, etc. ; <br />
** '''Affichage''' - options permettant d'afficher ou non les numéros de ligne, la présence de gouttières, la taille et le type de la police de l'éditeur, contiens un panneau d'aperçu montrant les différentes syntaxes et leur apparence dans l'éditeur, directives, ponctuation, erreurs et les points d'arrêts ; <br />
** '''Assignation des touches''' - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;<br />
** '''Couleurs''' - permet de choisir la couleur du texte dans l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Il possède un aperçu pour chaque langage sélectionné ; <br />
** '''Audit de code''' - permet la sélectoin des fonctionnalité comme le complément d'identificateur, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip.<br />
** '''Code folding''' - <br />
* '''Debugger Options''': Multi-page window with tabs for <br />
** '''General''' - choose debugger: none, GNU debugger (gdb) or gdb through SSH, specify search paths for debuggers,and specific options for chosen debugger; <br />
** '''Event log''' - specify whether to clear log on run, and which messages to display; <br />
** '''Language Exceptions''' - select which exceptions can be ignored; <br />
** '''OS Exceptions''' - allows user to add certain signals which apply to current operating system (not implemented).<br />
* '''Code Tool Options''': Multi-page window, tabs for <br />
** '''General''' - Allows entry of additional source search paths, specify Jumping Method; <br />
** '''Code Creation''' - determines whether created code is added before or after certain features; <br />
** '''Words''' - determines whether Pascal keywords are to be entered in upper or lower case, or as Capitalised Words; <br />
** '''Line Splitting''' - establish rules about where lines are allowed to be split (before or after punctuation, after keywords etc); <br />
** '''Space''' - decide whether a space is to be added automatically before or after certain syntactic features such as keywords or punctuation marks. <br />
* '''Code Tools Defines Editor''': Here you can see all IDE internal definitions to parse sources. You will see all the defines, unit, source, include paths for all source directories. Beginning with the settings of the current FPC, the defines for the Lazarus Source directory, all package directories and project directories.<br />
Most of these settings are auto generated and read only.<br />
<br />
<br />
* '''Re-scan FPC Source directory''' Looks through the directory again. Lazarus uses the fpc sources to generate correct event handlers and while looking for declarations. If somebody changes the directory in the environment options, then this directory is rescanned, to make sure lazarus uses the version stored in that location. But if this directory has changed without lazarus noticing, then you may get some errors when designing forms or doing "Find declaration". If you get such an error, you can do two things:<br />
*# Check the fpc source directory setting in the environment option.<br />
*# Re-scan FPC source directory.<br />
<br />
====The Windows sub-menu====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Contains a list of the currently opened files and the available windows such as '''Source Editor''', '''Object Inspector''' and '''Project Inspector'''. Clicking on the name of one of the windows brings it to the foreground and gives it focus.<br />
<div style="clear:both;"></div><br />
<br />
====The Help sub-menu====<br />
<br />
At present this has three selections:<br />
* '''Online Help''' which at present opens a browser window that contains a picture of the running cheetah and a few links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' which opens a pop-up menu with options to select viewers and databases from which to read Help information. This option allows the user to specify either the on-line documents section of the Lazarus-CCR website, some other website containing the documents, or a local store for the documentation (this would eventually become the default, when the Help system is fully developed).<br />
At present by default, if you place your Editor cursor over any keyword from the FreePascal Components Library FCL or the RunTime Library RTL (but not the Lazarus Components Library LCL) and then press <<F1>> you will be taken to the appropriate definition on the website. THIS SECTION STILL REPRESENTS WORK IN PROGRESS<br />
<br />
* '''About Lazarus''' Displays a pop-up box with some information about Lazarus.<br />
<br />
Eventually there will be a full on-line Help service, with information about Pascal syntax, the use of the IDE, how to use, modify or create Components, and hints on how to perform certain tasks. This part of the Documentation section (the thing you are currently reading) represents the beginning of the process. '''We need contributions from anyone who feels able to provide them: the WiKi is very easy to edit.'''<br />
<br />
===The Button bar===<br />
A small toolbar area on the left of the main editor window, just below the Main Menu and to the left of the Component Palette, contains a set of buttons which replicate frequently-used Main Menu selections:<br />
: '''New unit''', '''Open''' (with a down-arrow to display a drop-down list of recently used files), '''Save''', '''Save all''', '''New Form''', '''Toggle Form/Unit''' (ie show either form or source code of Unit), '''View Units''', '''View Forms''', '''Run''' (ie compile and Run), '''Pause''', '''Step Into''', '''Step over''' (the last two are Debugger functions).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Frequently used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''More, often-used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
For several good examples of the use of Components see the $LazarusPath/lazarus/examples subdirectory of your source installation. Many of the programs show how to use dialogs and other components directly without using the IDE and component palette or having a separate form definition file: all the components are fully and explicitly defined in the main Pascal program. Other example programs make full use of the IDE.<br />
<br />
Some examples don't work straight away: you may need to play about with paths and permissions of files or directories. If you want to compile any of the examples, make sure that you have read/write/execute permissions for the files and directories, or copy the files to a directory where you do have the appropriate permissions.<br />
<br />
Try running the 'testall' program to see a menu of the available components together with small example test forms for most of them; then inspect the code to find out how they work!<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Data-aware components, which largely replicate the Standard and Additional groups but are applicable to Databases:'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''A group of components to help interfacing with other languages and software tools. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejcahttps://wiki.freepascal.org/index.php?title=Lazarus_Tutorial/fr&diff=18827Lazarus Tutorial/fr2007-05-08T16:58:25Z<p>Ejca: /* Sous-menu configuration */</p>
<hr />
<div>{{Lazarus Tutorial}}<br />
<br />
''This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.''<br />
==Vue d'ensemble==<br />
Lazarus est un outil de développement libre et open source dédié au compilateur FreePascal (Pascal objet). FreePascal est également libre et open source. L'Environnement de Développement Intégré (EDI) Lazarus ([http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg capture d'écran en Anglais]) est stable, a de nombreuses fonctionnalités pour créer des logiciel pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD et Win32, fournit un éditeur de code source extensible, un environnement visuel de création de formulaire, un gestionnaire de package, un debugger et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.<br />
<br />
==Prise en main==<br />
(Merci à [[User:Kirkpatc]])<br />
<br />
Téléchargez Lazarus dans la section 'Download' du [http://www.lazarus.freepascal.org site officiel], [[Installing Lazarus|installez]] le et lancez le.<br />
<br />
===Votre premier programme sous Lazarus !===<br />
Plusieurs fenêtres apparaîtrons sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, éditeur de source de Lazarus occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.<br />
<br />
Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faite-le en cliquant dessus avec la souris et cherchez une icône représentant un bouton (un rectangle avec 'OK' marqué dessus), sélectionnez le avec la souris. Ensuite cliquez sur la fenêtre 'Form1'. Un rectangle ayant pour texte 'Button1' apparaîtra. Cliquez une nouvelle fois sur l'icône du bouton dans l'onglet 'Standard', et cliquez de nouveau sur Form1 : un rectangle ayant pour texte 'Button2' apparaîtra.<br />
<br />
Maintenant cliquez sur 'Button1' pour le sélectionner. L'inspecteur d'objet affichera les propriétés de l'objet 'Button1'. Elles sont triées par ordre alphabétique, cherchez 'Caption' elle devrait afficher la valeur 'Button1'. Cliquez dessus et changez 'Button1' en 'Press'. Si vous appuyez sur la touche ENTREE de votre clavier ou cliquez ailleurs, vous verrez le libellé de votre premier bouton de 'Form1' se changer en 'Press'. Ensuite cliquez sur l'onglet événements de l'inspecteur d'objet, pour voir les différents événements pouvant être associés au bouton. Cela inclus OnClick, OnEnter, OnExit etc. à présent, cliquez sur le bouton à droite de 'OnClick' <div class="box">...</div>. Lorsque vous le sélectionnez, vous êtes renvoyés automatique dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
{now type:} Button1.caption := 'Press again';<br />
{the editor has already completed the procedure with}<br />
end;<br />
<br />
Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.<br />
<br />
Maintenant éditez les propriétés de 'Button2' : Cliquez sur 'Button2' pour afficher ses propriétés dans l'inspecteur d'objet. Changez la propriété 'Caption' en 'Exit' au lieu de 'Button2'. Maintenant sélectionnez l'onglet événement, et cliquez sur 'OnClick'. Cliquez ensuite sur le bouton figurant 3 points <div class="box">...</div>, une nouvelle procédure sera automatiquement déclarée et le curseur sera positionné directement dans le corps de celle-ci :<br />
<br />
procedure TForm1.Button2Click(Sender: TObject);<br />
begin<br />
{now type:} Close;<br />
{the editor has already completed the procedure with} <br />
end;<br />
<br />
Maintenant, appuyez sur F12 pour revoir la fenêtre 'Form1'. Vous êtes maintenant prêt à compiler votre programme. La méthode la plus simple est de sélectionner 'Exécuter' dans le menu principal en haut de l'écran, et l'option 'Exécuter' dans le sous menu. Vous pouvez aussi appuyez, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.<br />
<br />
La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'information sur la compilation (information, alerte, erreur...). Quelques instant plus tard 'Form1' va réapparaître, mais sans la grille de points qui permet de positionner les composants (boutons, zones de saisie) en mode conception. C'est le fenêtre principal de votre application, elle attend que vous cliquiez sur le bouton 'Press'.<br />
<br />
Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !<br />
<br />
Maintenant, cliquez sur le bouton marqué 'Exit'. La fenêtre se fermera et vous quitterez le programme. La fenêtre 'Form1' originale réapparaîtra en mode conception avec sa grille de points, prête à être modifiée de nouveau.<br />
<br />
A présent vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez :<br />
Projet > Enregistrer le projet sous > Nom de vos fichiers<br />
<br />
===Deuxième session===<br />
Rouvrir votre projet.<br />
Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionner l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton prêt de 'OnClick' <div class="box">...</div>, pour retourner à l'emplacement approprié dans l'éditeur de source.<br />
<br />
Modifiez votre code de la manière suivante :<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
{Makes use of the Tag property, setting it to either 0 or 1}<br />
begin<br />
if Button1.tag = 0 then<br />
begin<br />
Button1.caption := 'Press again';<br />
Button1.tag := 1<br />
end else<br />
begin<br />
Button1.caption := 'Press';<br />
Button1.tag := 0<br />
end<br />
end;<br />
<br />
Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').<br />
<br />
Le reste dépend de vous !<br />
<br />
Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous aillez besoin d'un programme de traitement par lots (batch) ou encore que vous souhaitiez faire de la programmation système, vous pouvez conserver Lazarus pour éditer, compiler et exécuter votre programme. Il constitue un environnement idéal pour le développement en Pascal. Voir [[Console Mode Pascal]].<br />
<br />
==L'Editeur==<br />
Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.<br />
<br />
Le fenêtre principale en haut de l'écran est titrée '''Editeur Lazarus vXXXXXX - project1''' (les X correspondent au numéro de la version de Lazarus installée sur votre machine). C'est une fenêtre importante de votre projet, elle contient le menu principal et la palette de composants.<br />
<br />
<center>[[Image:Lazmainfr.jpg]]</center><br />
<br />
Sur la ligne juste en dessous du titre se trouve le "Menu principal" avec les entrées habituelles : Fichier, Edition, Chercher, Voir... et d'autres qui correspondent à des fonctions spécifiques à Lazarus.<br />
En dessous à gauche vous trouverez un jeu de "BitButtons" qui vous permettrons d'accéder aux fonctions les plus courantes. A droite se trouve la palette de composants.<br />
<br />
En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l''''[http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg inspecteur d'objet]''', et l''''[http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg éditeur de source de Lazarus]'''. Il peut également y avoir une fenêtre plus petite, appelée '''[http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg Form1]''', recouvrant l'éditeur de source de Lazarus. Si 'Form1' n'est pas visible immédiatement, vous pouvez la faire apparaître en pressant '''F12''', qui basculera de l'éditeur de source au formulaire correspondant à l'unité en cours, et inversement. La fenêtre de conception de formulaire et l'un des outils que vous utiliserez le plus fréquemment pour mettre en place une interface utilisateur pour votre application. Ce qu'il est possible de faire dans l'inspecteur d'objet est décrit plus en détail dans la section : Palette de composants.<br />
<br />
Lorsque vous démarrez un nouveau projet, ou que vous lancez Lazarus pour la première fois, un formulaire par défaut apparaît. Ce formulaire consiste en une "boîte" contenant une grille de points qui vous aiderons à positionner les différents composants, une barre au sommet de la fenêtre contient les boutons habituelles '''Réduire''', '''Agrandir''' et '''Fermer'''. Si vous cliquez avec le curseur de la souris à l'endroit que vous voulez dans la boîte, vous verrez les propriétés du formulaire s'afficher dans l'inspecteur d'objet à gauche de l'écran.<br />
<br />
D'autres fenêtres peuvent êtres affichées pendant votre travail : l''''[http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg inspecteur de projet]''' contient les détails des fichiers inclus dans votre projet, et vous permet également d'en rajouter ou d'en supprimer. La fenêtre de '''Messages''', affiche les informations de compilation, les erreurs ou les rapports d'avancement ; si Lazarus est lancé depuis une fenêtre de terminal, le terminal original reste toujours visible et affiche également des messages de compilation.<br />
<br />
<br />
===Menu principal===<br />
<br />
Le menu principal contient les entrées suivantes :<br />
<u>F</u>ichier <u>E</u>dition <u>C</u>ercher <u>V</u>oir <u>P</u>roject <u>E</u>xécuter <u>C</u>omposants <u>O</u>utils <u>C</u>onfiguration <u>F</u>enêtres <u>A</u>ide<br />
<br />
Comme d'habitude, les options peuvent êtres sélectionnées soit en cliquant directement dessus à l'aide du bouton gauche de la souris, soit en tapant au clavier :<br />
* Alt,<br />
* la lettre correspondante au menu voulu (par exemple F),<br />
* Entrée.<br />
<br />
====Sous-menu Fichier====<br />
<div class="floatright">[[image:SousMenuFichierFr.png]]</div><br />
* '''Nouvelle unité''' : Crée une nouvelle unité (Source Pascal).<br />
* '''Nouvelle fiche''' : Crée une nouvelle fiche, et l'unité Pascal associée.<br />
* '''Nouveau...''' : Affiche un menu surgissant ([http://lazarus-ccr.sourceforge.net/kbdata/menu-new.jpg capture d'écran]) proposant une variété de documents à créer.<br />
* '''Ouvrir''' : Affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir.<br />
* '''Restaurer''' : Abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine. <br />
* '''Enregistrer''' : Sauvegarde le fichier courant, en utilisant son nom d'origine. S'il n'a pas de nom, le système vous en demandera un (de la même manière qu'Enregistrer sous).<br />
* '''Enregistrer sous''' : Affiche une boîte de dialogue qui vous permet de choisir un nom de fichier et un répertoire pour sauvegarder le fichier courant.<br />
* '''Fermer''' : Ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées.<br />
* '''Fermer tous les fichiers''' : Ferme tout les fichiers en cours et ouvre l'éditeur. Demande si vous souhaitez sauvegarder (si vous avez effectué des modifications).<br />
* '''Nettoyer un répertoire''' : Affiche une boîte de dialogue avec une série de filtre éditable pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak le reste des anciens projets de Delphi.<br />
* '''Quitter''' : Sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Edition====<br />
<div class="floatright">[[image:SousMenuEditionFr.png]]</div><br />
* '''Défaire''' : Défait la dernière action effectuée.<br />
* '''Refaire''' : Refait la dernière action annulée par Défaire.<br />
* '''Couper''' : Supprime le texte sélectionné et le copie en mémoire.<br />
* '''Copier''' : Fait une copie en mémoire du texte sélectionné, en laissant l'original en place.<br />
* '''Coller''' : Place le contenu de la mémoire à l'emplacement du curseur. S'il y a du texte sélectionné à l'emplacement du curseur, il sera remplacé par le contenu de la mémoire.<br />
* '''Indenter la sélection''' : Déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options de l'éditeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure.<br />
* '''Désindenter la sélection''' : Supprime un niveau d'indentation, déplace le texte vers la gauche en fonction de ce qui est spécifié dans Indentation de bloc.<br />
* '''Entourer la sélection''' : Affiche un menu surgissant avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc).<br />
* '''Sélection en commentaire''' : Commente le texte sélectionné en insérant // sur chaque ligne.<br />
* '''Décommenter la sélection''' : Supprime les marqueurs de commentaire du texte sélectionné.<br />
* '''Insérer $IFDEF...''' : Insère la directive de compilation $IFDEF qui permet de compiler le code en fonction du système d'exploitation. Une boîte de dialogue propose différentes valeurs possible.<br />
* '''Trier la sélection''' : Trie les lignes, les mots ou les paragraphes dans l'ordre alphabétique ; incluant des option croissantes, décroissantes, ou la sensibilité à la casse. Ceci n'a évidemment aucun sens au beau milieu du code source, mais si vous avez une liste à trier, cette fonctionnalité fera l'affaire.<br />
* '''Mettre la sélection en majuscules''' : Convertie le texte sélectionné en majuscule.<br />
* '''Mettre la sélection en minuscules''' : Convertie le texte sélectionné en minuscules.<br />
* '''Remplacer les tabulations par des espaces dans la sélection''' : Convertie chaque tabulation dans le texte sélectionné par le nombre d'espace spécifié dans Configuration -> Options de l'éditeur -> Général -> Tab widths. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation.<br />
* '''Couper les lignes dans la sélection''' : Si une ligne de la sélection est plus grande que 80 caractères ou que le nombre spécifié dans Configuration -> Options de l'éditeur -> Affichage -> Marge droite, alors cette ligne sera coupé au niveau de la borne limite et continuera sur la ligne suivante.<br />
* '''Sélectionner''' : Permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, sélectionner la ligne le paragraphe etc.<br />
* '''Insérer depuis la table des caractères''' : Permet l'insertion de symboles qui ne figurent pas sur le clavier, une fenêtre s'affiche vous proposant divers possibilités.<br />
* '''Insérer un texte''' : Affiche un sous-menu permettant d'insérer du texte comme des mots clefs CVS (Author, Date, Header etc) ou une note GPL, LGPL, l'utilisateur courant, la date et l'heure courante etc.<br />
* '''Compléter le code''' : Complète le code à l'emplacement du curseur. Il est sensible au contexte et vous fera gagner beaucoup de temps. Par exemple : il complète les classes, en ajoutant les variables privées, les méthodes d'accès aux propriétés Get et Set ainsi que le corps des méthodes. Lors de l'assignation d'une variable (ex : i:=3;) il ajoute la déclaration de la variable. Lors de la définition de procédures forward il ajoute le corps des procédures. Lors de l'assignation d'événement (OnClick:=) il ajoute la définition et le corps de la méthode. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]].<br />
* '''Extraire procédure''' : Utilise le texte sélectionné (une déclaration ou une série de déclarations) pour créer une nouvelle procédure.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Chercher====<br />
<div class="floatright">[[image:SousMenuChercherFr.png]]</div><br />
* '''Chercher''' : Similaire à la fonction équivalente de la plupart des éditeurs de texte : une boîte de dialogue s'affiche vous permettant de saisir une chaîne de texte à rechercher, les options de sensibilité de casse, mot entier, direction de recherche... sont également disponible.<br />
* '''Chercher l'occurrence suivante, Chercher l'occurrence précédente''' : Cherche l'occurrence suivante de la chaîne entrée précédemment, dans la direction spécifiée.<br />
* '''Chercher dans les fichiers''' : Chercher une chaîne de caractère dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouvert, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné.<br />
* '''Remplacer''' : Similaire à '''Chercher''' ; affiche une boîte de dialogue avec la possibilité d'entrée le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse la direction etc.<br />
* '''Recherche incrémentale''' : Cherche la chaîne de caractère que vous entrez au clavier. Exemple : après avoir choisi "Recherche incrémentale" si vous appuyez sur la touche "l" le premier "l" après la position en cours du curseur sera surligné. Si vous appuyez sur la touche "a", l'éditeur cherchera le "la" suivant et ainsi de suite.<br />
* '''Aller à la ligne''' : Déplace le curseur à la ligne spécifiée.<br />
* '''En arrière''' : Ce déplace vers le signet précédant ('''Ajouter le point de saut à l'historique''' doit avoir été utilisé au préalable). Ce déplacera vers d'autres fichiers ouvert dans l'éditeur.<br />
* '''En avant''' : Ce déplace vers le signet suivant.<br />
* '''Ajouter le point de saut à l'historique''' : Ajoute des points de saut ou des signets au fichier.<br />
* '''Afficher l'historique des déplacements''' : Affiche au moins un point de saut dans le fichier : '''Not implemented yet'''.<br />
* '''Erreur suivante''' :<br />
* '''Erreur précédente''' :<br />
* '''Mettre un signet libre''' :<br />
* '''Aller au prochain signet''' :<br />
* '''Aller au précédent signet''' :<br />
* '''Chercher la fin du bloc de code''' : Si vous êtes positionné sur '''begin''', cherche le '''end''' correspondant ou vice versa.<br />
* '''Chercher le début du bloc de code''' : Ce déplace sur le '''begin''' de la procédure ou de la fonction dans laquelle le curseur et positionné.<br />
* '''Rechercher la déclaration sous le curseur''' : Trouve l'endroit dans lequel l'identificateur choisi est déclaré. Celui-ci peut être dans le même fichier ou dans un autre fichier déjà ouvert dans l'éditeur ; si le fichier n'est pas ouvert, il le sera (si une procédure ou une fonction et déclarée, par exemple, dans <u>classesh.inc</u>, cela l'ouvrira dans l'éditeur).<br />
* '''Ouvrir le fichier sous le curseur''' : Ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers <u>Include</u> ou des fichiers contenant d'autres <u>Unités</u> utilisées dans le projet.<br />
* '''Aller à la directive "include"''' : Si le curseur est positionné dans un fichier <u>Inclue</u> dans un autre fichier, va à la position de la directive d'<u>Inclusion</u> dans l'autre fichier.<br />
* '''Trouver la référence de l'identificateur''' : Affiche une liste permettant de déplacer le curseur sur tout les endroits ou une variable est utilisée.<br />
* '''Renommer l'identificateur''' : Permet de renommer une variable partout où elle est utilisée.<br />
'''<div style="clear:both;"></div><br />
<br />
====Sous-menu Voir====<br />
<div class="floatright">[[image:SousMenuVoirFr.png]]</div><br />
Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.<br />
* '''Inspecteur d'Objets''' : C'est la fenêtre qui occupe généralement le côté gauche du bureau, et qui montre les éléments de la Fiche (Form) qui se trouve sur le bureau. En cliquant avec la souris sur un composant de cette fiche, le détail du composant s'affiche dans l'inspecteur d'objets. Le haut de l'inspecteur d'objet montre l'arborescence du projet courant, et les composants de la fiche peuvent éventuellement y être sélectionnés : ceci entraînant l'affichage des détails correspondant dans l'inspecteur d'objet. Le bas de l'inspecteur d'objet est composé de plusieurs onglets qui permettent la sélection des propriétés : '''PropertyPage''', des événements : '''EventPage''' ou des éléments que vous avez consulté : '''Favorites'''. La selection de l'onglet '''PropertyPage''' permet d'afficher les propriétés telles que Name, Color, Caption, Font, Size etc. : La colonne de gauche représentant la propriété par son nom, la colonne de droite montrant la valeur qui lui est associée. La sélection de l'onglet '''Events''' montre aussi deux colonnes : celle de gauche montre les événements possibles tels que MouseClick ou KeyDown associés à ce composant, et celle de droite montre l'action associée à cet événement. S'il n'y a pas encore d'action définie pour cet événement, il suffit de cliquer dans le champ correspondant ou le bouton <div class="box">...</div> pour que dans l'Editeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.<br />
* '''Editeur de Source''' : C'est la fenêtre principale dans laquelle le code source est édité. Il réagit comme la plupart des éditeur de texte, on peut y déplacer le curseur à la souris, un click gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le click droit fait apparaître un menu popup comprenant les actions d'édition classique (Couper, Copier, Coller...), ''Chercher la Déclaration'' et ''Ouvrir le fichier sous le curseur''. En haut de la fenêtre de l'éditeur de sources se trouvent un certain nombre d'onglets qui correspondent aux fichiers ouverts dans le projet courant ; en cliquant sur l'un d'entre eux, le fichier correspondant est affiché, vous pouvez ainsi naviguer facilement de fichier en fichier, effectuer des copier/coller et autres travaux d'édition entre eux. L'éditeur de source est équipé de la coloration syntaxique de code, avec différents coloris pour les marques de ponctuation, les commentaires, les chaînes de caractères, les constantes etc... Il conserve aussi l'indentation du code de ligne en ligne au fur et à mesure de votre frappe, jusqu'à ce que vous modifiez celle-ci. L'apparence et les options de l'éditeur de code sont entièrement configurables depuis le menu principal en sélectionnant Configuration -> Options de l'éditeur puis en sélectionnant l'un des onglet dans la fenêtre de dialogue.<br />
* '''Explorateur de code''' : Affiche une fenêtre qui se place habituellement à droite du plan de travail, elle affiche sous forme arborescente la structure du code dans l'unité ou le programme actuel. Elle s'ouvre normalement avec les sections Unit, Interface, Implementation et Initialization affichées, mais un clique sur le bouton <div class="box">+</div> à gauche de la branche, ouvrira ses sous-branches, affichant de plus en plus de détails jusqu'à ce que les constantes, types et variables soient affichées, de même que les déclarations de procédure et fonction. Si vous changez les fichier affiché dans l'éditeur de source, vous devrez cliquer sur le bouton '''Rafraîchir''' pour afficher la structure du nouveau fichier dans l'Explorateur de Code.<br />
* '''Editeur LazDoc''' :<br />
* '''Unités...''' : Ouvre une boîte de dialogue listant les Unités du projet en cours. Pour sélectionner les fichiers cliquez dessus ; cela ouvrira le fichier dans l'Editeur de sources. Si vous cochez la case "Multi sélection" vous pourrez sélectionner plusieurs fichiers à la simultanément, et ils seront tous ouverts dans l'Editeur de Sources (mais un seul sera affiché à la fois). Ce menu est comparable à l'option Projet -> Inspecteur de Projet, mais affiche uniquement la liste des fichiers d'Unités et permet de les ouvrir.<br />
* '''Fiches...''' : Ouvre une boîte de dialogue listant les Fiches du projet en cours, et permettant la sélection d'une ou plusieurs d'entre elles de manière à les afficher.<br />
* '''Dépendances d'unités''' : Ouvre une boîte de dialogue qui affiche, de façons arborescente, la structure des Dépendances de l'unité en ouverte. La plupart des fichiers listés comme dépendance auront leur propre boîte <div class="box">+</div>, chacune autorise l'exploration des dépendances de chaque fichiers, y compris de façon récursive.<br />
* '''Informations de l'unité''' : Donne des informations sur l'onglet d'unité sélectionné dans l'Editeur de sources.<br />
* '''Commutation fiche/Unité''' : Bascule entre l'Editeur de sources et la Fiche active. Si l'Editeur de sources et actif, vous pouvez éditer le code source ; si la Fiche est active, vous pouvez manipuler les composants et modifier l'apparence de la fiche. La façon la plus simple de basculer entre l'Editeur et la Fiche est d'utiliser le raccourci clavier F12, vous obtiendrez le même résultat en cliquant "Commutation fiche/Unité" dans le menu principal.<br />
* '''Messages''' : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.<br />
* '''Résultats de la recherche''' : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.<br />
* '''Afficher l'éditeur d'ancres''' :<br />
* '''Voir la palette des composants''' :<br />
* '''Voir les boutons rapides de l'IDE''' :<br />
* '''Fenêtres de débogage''' : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le [[#The_Debugger|debugger]] plus bas.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Projet====<br />
<div class="floatright">[[image:SousMenuProjetFr.png]]</div><br />
* '''Nouveau Projet''' : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.<br />
* '''Nouveau projet depuis le fichier''' : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.<br />
* '''Ouvrir un projet''' : Ouvre un projet déjà créé. Une fenêtre de navigation listant les fichiers de projet au format Lazarus (.lpi ou Lazarus Project Information) s'affiche, permettant de sélectionner le projet à ouvrir.<br />
* '''Réouvrir un projet''' : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.<br />
* '''Enregistrer le projet''' : Equivalent de "Fichier -> Enregistrer". Enregistre tout les fichiers du projet en cours ; s'ils n'ont pas déjà été enregistré, un message apparaît demandant le(s) nom(s) du/des fichier(s) de la même manière que "Fichier -> Enregistrer sous".<br />
* '''Enregistrer le projet sous...''' : Demande l'emplacement et le nom de fichier du projet. Par défaut, le nom de fichier est Project1.lpi, mais il est recommandé d'en choisir un autre. Lazarus ne vous permettra pas d'utiliser le même nom de fichier pour votre Projet et pour le fichier de l'Unité (Unit) (voir [[Lazarus Tutorial#The_Lazarus_files|plus bas]]).<br />
* '''Publier le projet''' : Crée une copie de tout le projet. Si vous voulez envoyer les sources du projet à quelqu'un ainsi que les options de compilation, cette fonction est faite pour vous. Un dossier classique d'un projet contient beaucoup d'informations, et la plupart d'entre elles ne sont pas utiles : le fichier .lpi contient des informations de session (comme la position des fenêtres et les fiches ouvertes) et le dossier du projet contient beaucoup de fichiers .ppu, .o et l'exécutable. Pour créer un fichier .lpi avec uniquement l'information de base et seulement les sources avec tous les sous répertoires, utilisez "Publier le Projet". Dans la fenêtre de paramétrage, vous pouvez mettre un filtre d'exclusion / inclusion, et avec la commande "after" vous pouvez compresser le tout dans un fichier archive. Voir les [[Lazarus IDE Tools/fr|outils de l'EDI Lazarus]]<br />
* '''Inspecteur de projet''' : Ouvre une boîte de dialogue, représentant les fichiers du projet en cours sous forme arborescente. Vous pouvez ajouter, supprimer, ou ouvrir les fichiers sélectionnés, ou changer les options du projet.<br />
* '''Options du projet...''' : Ouvre une boîte de dialogue contenant plusieurs onglets permettant d'accéder aux divers options de paramétrage de l'application (Titre, Fichier de destination), Fiches (permettant de sélectionner les fiches disponibles, de manière à les créer automatiquement au lancement de l'application), Divers, LazDoc et Session (spécifie quelles informations l'éditeur doit sauvegarder lors de la fermeture des fichiers, ou uniquement les fichiers projet).<br />
* '''Option du compilateur...''' : Ouvre une fenêtre à onglets permettant la configuration du compilateur. Les onglets incluent '''Chemins''' qui permet la définition de chemin de recherche pour les unités, les fichiers d'inclusion, bibliothèques etc., de même que permettre le type de composant pour les fiches (gtk, gnome, win32) ; '''Analyse''' qui autorise le choix des règles d'analyse des sources du programme, '''Code''' qui autorise le chois d'optimisation pour des programmes plus rapides ou plus petits, choix de la plateforme cible, types de contrôles, taille de la pile etc. ; '''Edition des liens''' permet de choisir le débogueur à utiliser, les bibliothèques static ou dynamic, et la possibilité de passer des option à l'éditeur de liens ; '''Messages''' définie quel genre de messages doivent être générés durant la compilation ; '''Autre''' permet de choisir d'utiliser le fichier de configuration par défaut (fpc.cfg) ou un autre fichier ; '''Hérité''' montre sous forme arborescente qu'elle options ont étés héritées des unités déjà incorporées ; '''Compilation''' permet de définir les appels qui doivent êtres exécutés avant ou après que la compilation soit lancée, et permet également de créer un Makefile.<br />
* '''Afficher la liste des ToDo''' : Ouvre une boîte de dialogue affichant la liste des choses à faire "ToDo" associées au projet. Ces ToDo sont de simples lignes de commentaire commençant par //TODO. Il sera nécessaire de réactualiser cette liste après sauvegarde pour que les nouveaux ToDo apparaissent dans la liste. La première colonne de la liste des ToDo contiens le numéro que vous avez alloué à votre ligne de commentaire ; un simple //TODO apparaîtra comme zéro, mais un commentaire comme //TODO999 (par exemple) apparaîtra au numéro 999 dans la première colonne. Souvenez vous bien qu'il n'y a pas d'espaces sur la ligne avant //TODO et que les ToDo ajoutés après la dernière sauvegarde ne seront pas affichés !<br />
* '''Ajouter le fichier de l'éditeur au projet''' : Ajouter au projet le fichier en cours d'édition.<br />
* '''Retirer du projet''' : Affiche une liste des fichiers pouvant être supprimer du projet.<br />
* '''Afficher le source''' : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.<br />
<br />
====Sous-menu Exécuter====<br />
<div class="floatright">[[image:SousMenuExecuterFr.png]]</div><br />
* '''Construire''' : Lazarus construit (ie Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.<br />
* '''Construire tout''' : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.<br />
* '''Quick compile''' :<br />
* '''Arrêter le construction''' : Stop la construction (ie Compilation) en cours – sois vous vous apercevez que vous avez commis une erreur et souhaitez arrêter la construction, sois le système semble prendre trop de temps ce qui laisse penser qu'il y a forcément une erreur.<br />
* '''Exécuter''' : C'est la solution habituelle pour lancer une compilation et, si la compilation réussie, démarre l'exécution de l'application. Normalement, Lazarus sauvegarde une copie de vos fichiers, ensuite il compile et link, finalement lance l'exécution du fichier binaire créé.<br />
* '''Pause''' : Arrête le programme en cours d'exécution. Cela permet de consulter les sorties générées ; l'exécution peut être reprise en cliquant une nouvelle fois sur '''Exécuter'''.<br />
* '''Pas à pas approfondi''' : Utiliser en conjonction avec le débogueur, entraîne l'exécution du programme une ligne à la fois en passant par toute les unités déclarées.<br />
* '''Pas à pas''' : Entraîne l'exécution par étape du programme, l'exécution peut être reprise à vitesse normale à n'importe quel moment. Utile pour essayer d'isoler une erreur de logique dans le code.<br />
* '''Exécuter jusqu'au curseur''' : Exécute le programme avec son déroulement normal (ie NON pas à pas) jusqu'à la position en cours du curseur ; et s'arrête. Reprendre l'exécution à sa vitesse normale en sélectionnant '''Exécuter'''. (NDT : Cette fonction semble identique à exécuter dans la version 2.1 de Lazarus.)<br />
* '''Arrêter''' : Cesse l'exécution du programme en cours. A la différence de '''Pause''' l'exécution ne peut pas être reprise en cliquant sur '''Exécuter''' ; le programme sera redémarré depuis le début il sera recompilé si nécessaire.<br />
* '''Paramètres d'exécution...''' : Ouvre une fenêtre à onglet qui vous permette d'entrer des options et paramètres en ligne de commande d'exécution du programme ; autorise la sélection de l'écran de démarrage du programme (eg un terminal X peut être utilisé sous Linux) ; certaines variables d'environnement peuvent être "écrasées".<br />
: Une utilisation très importante de ce sous-menu est la possibilité d'activer une fenêtre de terminal dans le mode console du Pascal. Si vous développez une application Pascal en mode console (ie qui n'utilise pas d'interface graphique avec formulaires, boutons et boîtes) vous devriez cocher la case "Utiliser une application de démarrage". La première fois que vous l'activerez et essaierez de Compiler/Exécuter, vous rencontrerez probablement un message un peu brutal <br />
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied". <br />
: Si cela arrive, vous devrez changer les permissions dans le fichier approprié (par exemple en utilisant chmod +x ''nomfichier'', ou en utilisant un utilitaire Windows pour changer les permissions) ; vous devrez faire cela en tant que root. Après, chaque fois que vous lancerez le programme, un fenêtre en mode console apparaîtra et tous votre texte d'entrées/sorties (readln, writeln etc.) apparaîtra à l'intérieur.<br />
: Après que votre programme est fini de s'exécuter, le message "Press enter" apparaît à l'écran. Ceci vous permet de lire toutes les sorties générées par votre programme ; après vous pouvez appuyer sur 'entrer' la fenêtre de la console se fermera.<br />
: Voir le tutoriel : programmation [[Console Mode Pascal|Pascal en Mode Console]].<br />
* '''Réinitialiser le débogueur''' : Restaure le débogueur à son état original, par conséquent les points d'arrêts, les valeurs de variables etc. sont ignorées.<br />
* '''Construire le fichier''' : Compile (construit) uniquement le fichier ouvert dans l'éditeur.<br />
* '''Exécuter le fichier''' : Compile, link et exécute le fichier ouvert dans l'éditeur.<br />
* '''Configure Build + Run File...''' : Ouvre une fenêtre à onglets permettant d'accéder aux options de construction du fichier en cours lorsque '''Build Project''' est sélectionné, autorise la sélection du répertoire de travail, l'utilisation de divers Macros, etc. Construit et Exécute le fichier.<br />
:Ces trois dernières options vous permettent d'ouvrir (et de maintenir) un projet test. Utilisez Fichier -> Ouvrir pour ouvrir un fichier .lpr, appuyez sur Annuler sur la boîte de dialogue suivante pour ouvrir ce fichier comme un fichier "source normal". <br />
<div style="clear:both;"></div><br />
* '''Inspecter''' :<br />
* '''Evaluer/Modifier''' :<br />
* '''Ajouter un suivi...''' :<br />
* '''Ajouter un point d'arrêt''' :<br />
<br />
====Sous-menu Composants====<br />
<div class="floatright">[[image:SousMenuComposantsFr.png]]</div><br />
* '''Ouvrir un paquet chargé...''' : Affiche une [http://lazarus-ccr.sourceforge.net/kbdata/OpenPackageSnapshot.png liste des paquets installés], vous invitant à en [http://lazarus-ccr.sourceforge.net/kbdata/PackageContentsSnapshot.png ouvrir un ou plusieurs d'entre eux], ou vous permettant de sélectionner différentes options générales ou de compilation.<br />
* '''Open package file (.lpk)...''' : Ouvre un ou plusieurs fichiers du paquet sélectionné.<br />
* '''Ouvrir le paquet de l'unité courante''' : Ouvre un paquet utilisé récemment.<br />
* '''Ajouter l'unité active au projet''' : Place le fichier de l'unité (en cours d'édition) dans un package.<br />
* '''Graphique des paquets...''' : Affiche un [http://lazarus-ccr.sourceforge.net/kbdata/PackageGraphSnapshot.png graphique] montrant les relations des packages actuellement en cours d'utilisation (si vous n'utilisez pas d'autres packages, le package Lazarus de la FCL et de la LCL seront affichés).<br />
* '''Configurer les paquets installés''' : Si vous avez créé vos propres composants, vous permet de les configurer.<br />
<br />
====Sous-menu Outils====<br />
<div class="floatright">[[image:SousMenuOutilsFr.png]]</div><br />
* '''Configurer les outils personnalisés...''' : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).<br />
* '''Project templates options''' : Permet définir le répertoire des modèles par défaut.<br />
* '''Vérification rapide de la syntaxe''' : Effectue un contrôle rapide de la syntaxe dans votre fichier source sans rien compiler. C'est une étape essentielle dans le développement d'un programme long et compliqué, si vous ne voulez pas perdre votre temps avec du code erroné.<br />
* '''Identifier les blocs non terminés''' : Utilitaire pratique si vous avez un bloc imbriqué de structures complexes et que vous avez oublié un 'end' quelque part.<br />
* '''Identifier les IFDEF/ENDIF mal placés''' : Pratique si vous avec un bloc imbriqué de structures complexes de macro et que vous pensez avoir oublié une directive ENDIF.<br />
* '''Construire une chaîne ressource...''' : Transforme la chaîne sélectionnée en chaîne ressource en la plaçant dans une section '''resourcestrings'''. L'avantage de la chaîne ressource est que vous pouvez la changer sans avoir besoin de recompiler votre projet ! <br />
* '''Différences''' : Permet la comparaison entre deux fichiers (ou, habituellement, deux versions d'un même fichier) pour trouver leurs différences. Des options permettent d'ignorer les espaces blancs au début ou à la fin ou les lignes ou les différence de code de retour à la ligne : CR+LF contre LF). Pratique pour contrôler s'il y a un changement depuis la dernière mise à jour du CVS etc.<br />
* '''Vérifier le fichier LFM dans l'éditeur''' : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.<br />
* '''Convertir une unité Delphi en unté Lazarus...''' : Aide au portage des applications Delphi vers Lazarus ; fait les changements nécessaires dans le fichier source. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Convertir un fichier DFM en LFM''' : Permet de porter les applications Delphi vers Lazarus : convertis les fichiers de descriptions de Form de Delphi vers Lazarus. Voir [[Lazarus For Delphi Users]] et [[Code Conversion Guide]].<br />
* '''Construire Lazarus''' : Lance la reconstruction de Lazarus pour les téléchargements les plus récents ou les fichiers CVS mis à jour. Appuyez sur le bouton et asseyez vous en regardant ce qui se passe ! (suivez le processus dans votre fenêtre de '''Messages''').<br />
* '''Configure "Build Lazarus"...''': Permet à l'utilisateur de choisir quel partie de Lazarus doit être re-construite, et de quelle manière. Par exemple, vous pouvez sélectionner uniquement le re-contruction de la LCL, ou tout excepté les exemples ; vous pouvez sélectionner quelle interface de la LCL vous voulez utiliser (ie quel jeu de composants), et vous pouvez sélectionner quel système d'exploitation cible et spécifier les différents répertoires de destination.<br />
<div style="clear:both;"></div><br />
<br />
====Sous-menu Configuration====<br />
<div class="floatright">[[image:SousMenuConfigurationFr.png]]</div><br />
* '''Options d'environnement...''' : Affiche une fenêtre contenant les onglets suivants<br />
** '''Fichier''' - autorise l'utilisateur à spécifier le chemin du répertoire par défaut, compiler, définir le répertoire des sources et le répertoire temporaire pour la compilation ; <br />
** '''Bureau''' - options de Langue, comportement de l'enregistrement automatique, l'enregistrement des paramètres de bureau, les conseils pour les principaux boutons rapides (Ouvrir, Enregistrer,...) ; <br />
** '''Fenêtres''' - autorisation la spécification de la taille et le comportement des différentes fenêtres ; <br />
** '''Editeur de fiches''' - pour choisir les couleurs de l'éditeur de fiches ; <br />
** '''Inspecteur d'objets''' - pour choisir la couleur et la hauteur des éléments ; <br />
** '''Sauvegarde''' - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ; <br />
** '''Naming''' - specify what extension to use in naming pascal files ('.pp' or '.pas'), whether to save files with names in lowercase, whether to perform auto-delete or auto-rename.<br />
* '''Editor options''': Multi-page window, with tabs for <br />
** '''General''' - determines behaviour like auto-indent, bracket highlighting, drag-drop editing, scrolling, syntax highlighting, showing hints, size of block indent and tabs, limit of Undo; <br />
** '''Display''' - options for showing line numbers, presence of gutters, size and type of font for editor, and contains a preview panel showing the colours of the various syntax features such as comments, directives, punctuation, errors and breakpoints; <br />
** '''Key Mappings''' - options to select Lazarus or Turbo Pascal scheme; <br />
** '''Color''' - allows choice of colour scheme for text features, for a number of language types such as Object Pascal, C++, Perl, HTML, XML and shell scripts. It shows preview panel again (for whichever language is selected); <br />
** '''Outils de code''' - allows selection of features like Identifier Completion, tooltips, specification of template file names, specific templates for code completion.<br />
* '''Debugger Options''': Multi-page window with tabs for <br />
** '''General''' - choose debugger: none, GNU debugger (gdb) or gdb through SSH, specify search paths for debuggers,and specific options for chosen debugger; <br />
** '''Event log''' - specify whether to clear log on run, and which messages to display; <br />
** '''Language Exceptions''' - select which exceptions can be ignored; <br />
** '''OS Exceptions''' - allows user to add certain signals which apply to current operating system (not implemented).<br />
* '''Code Tool Options''': Multi-page window, tabs for <br />
** '''General''' - Allows entry of additional source search paths, specify Jumping Method; <br />
** '''Code Creation''' - determines whether created code is added before or after certain features; <br />
** '''Words''' - determines whether Pascal keywords are to be entered in upper or lower case, or as Capitalised Words; <br />
** '''Line Splitting''' - establish rules about where lines are allowed to be split (before or after punctuation, after keywords etc); <br />
** '''Space''' - decide whether a space is to be added automatically before or after certain syntactic features such as keywords or punctuation marks. <br />
* '''Code Tools Defines Editor''': Here you can see all IDE internal definitions to parse sources. You will see all the defines, unit, source, include paths for all source directories. Beginning with the settings of the current FPC, the defines for the Lazarus Source directory, all package directories and project directories.<br />
Most of these settings are auto generated and read only.<br />
<br />
<br />
* '''Re-scan FPC Source directory''' Looks through the directory again. Lazarus uses the fpc sources to generate correct event handlers and while looking for declarations. If somebody changes the directory in the environment options, then this directory is rescanned, to make sure lazarus uses the version stored in that location. But if this directory has changed without lazarus noticing, then you may get some errors when designing forms or doing "Find declaration". If you get such an error, you can do two things:<br />
*# Check the fpc source directory setting in the environment option.<br />
*# Re-scan FPC source directory.<br />
<br />
====The Windows sub-menu====<br />
<div class="floatright"> http://lazarus-ccr.sourceforge.net/kbdata/WindowsMenuSnapshot.png </div><br />
Contains a list of the currently opened files and the available windows such as '''Source Editor''', '''Object Inspector''' and '''Project Inspector'''. Clicking on the name of one of the windows brings it to the foreground and gives it focus.<br />
<div style="clear:both;"></div><br />
<br />
====The Help sub-menu====<br />
<br />
At present this has three selections:<br />
* '''Online Help''' which at present opens a browser window that contains a picture of the running cheetah and a few links to the Lazarus, FreePascal and WiKi websites<br />
* '''Configure Help''' which opens a pop-up menu with options to select viewers and databases from which to read Help information. This option allows the user to specify either the on-line documents section of the Lazarus-CCR website, some other website containing the documents, or a local store for the documentation (this would eventually become the default, when the Help system is fully developed).<br />
At present by default, if you place your Editor cursor over any keyword from the FreePascal Components Library FCL or the RunTime Library RTL (but not the Lazarus Components Library LCL) and then press <<F1>> you will be taken to the appropriate definition on the website. THIS SECTION STILL REPRESENTS WORK IN PROGRESS<br />
<br />
* '''About Lazarus''' Displays a pop-up box with some information about Lazarus.<br />
<br />
Eventually there will be a full on-line Help service, with information about Pascal syntax, the use of the IDE, how to use, modify or create Components, and hints on how to perform certain tasks. This part of the Documentation section (the thing you are currently reading) represents the beginning of the process. '''We need contributions from anyone who feels able to provide them: the WiKi is very easy to edit.'''<br />
<br />
===The Button bar===<br />
A small toolbar area on the left of the main editor window, just below the Main Menu and to the left of the Component Palette, contains a set of buttons which replicate frequently-used Main Menu selections:<br />
: '''New unit''', '''Open''' (with a down-arrow to display a drop-down list of recently used files), '''Save''', '''Save all''', '''New Form''', '''Toggle Form/Unit''' (ie show either form or source code of Unit), '''View Units''', '''View Forms''', '''Run''' (ie compile and Run), '''Pause''', '''Step Into''', '''Step over''' (the last two are Debugger functions).<br />
<br />
==La palette de composents==<br />
La barre d'outils à onglets affiche un large choix d'icône représentant les composants les plus courants pour la conception de formulaires.<br />
<br />
Chaque onglet affiche un jeu d'icônes, correspondant aux fonctionnalités du groupe de composants. L'icône la plus à gauche, figurant une flèche, est appelé outil de sélection.<br />
<br />
Si vous placez le pointeur de la souris sur l'une des icônes sans cliquer dessus, sont nom s'affichera. Notez que chaque nom commence par un 'T', ce qui signifie 'Type' ou plus précisément 'Class' de composant. Lorsque vous sélectionnez un composant pour l'intégrer dans un formulaire, la classe est ajoutée dans la section '''type''' de la partie '''interface''' de l'unité (habituellement en tant que partie de TForm1), et une instance de cette classe est ajouté dans la section '''var''' (habituellement de la même manière que la variable Form1). Chaque '''méthode''' que vous écrivez pour être utilisée par le formulaire un un de ses composants (Procédures ou Fonctions) seront placés dans la partie '''implementation''' de l'unité.<br />
<br />
Dans la liste suivante, vous trouverez des liens vers les fichiers qui contiennent la description de ses composants. Si vous souhaitez trouver les propriétés d'un composant en particulier, il peut être utile d'étudier le composant duquel il est dérivé (son parent). Par exemple, pour comprendre TMaskEdit il est également utile d'examiner TCustomMaskEdit.<br />
<br />
'''ONGLETS''' (les noms sont largement explicites) :<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls Standard]'''<br />
<center>[[image:Component_Palette_Standart.png]]</center><br />
:''Frequently used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TMainMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit TPopupMenu], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TButton], TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TRadioGroup], TCheckGroup, [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TPanel], TActionList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls Additional]'''<br />
<center>[[image:Component_Palette_Additional.png]]</center><br />
:''More, often-used components:'' [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TBitBtn], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt TSpeedButton], [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TImage], TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit TMaskEdit], TCheckListBox, [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TScrollBox], [http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt TApplicationProperties], TStringGrid, TDrawGrid, TPairSplitter<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls Common Controls]'''<br />
<center>[[image:Component_Palette_Common_Controls.png]]</center><br />
: TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList<br />
* '''[http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt Dialogs]'''<br />
<center>[[image:Component_Palette_Dialogs.png]]</center><br />
: TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog<br />
<br />
Beaucoup de procédures ou de fonctions utiles comme les [[Dialog_Examples|boîtes de dialogue]] n'apparaissent pas directement dans la palette de composants, mais peuvent être facilement appelées dans le code source du programme.<br />
<br />
For several good examples of the use of Components see the $LazarusPath/lazarus/examples subdirectory of your source installation. Many of the programs show how to use dialogs and other components directly without using the IDE and component palette or having a separate form definition file: all the components are fully and explicitly defined in the main Pascal program. Other example programs make full use of the IDE.<br />
<br />
Some examples don't work straight away: you may need to play about with paths and permissions of files or directories. If you want to compile any of the examples, make sure that you have read/write/execute permissions for the files and directories, or copy the files to a directory where you do have the appropriate permissions.<br />
<br />
Try running the 'testall' program to see a menu of the available components together with small example test forms for most of them; then inspect the code to find out how they work!<br />
* '''Misc'''<br />
<center>[[image:Component_Palette_Misc.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt TColorButton], TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox <br />
* '''Data Controls'''<br />
<center>[[image:Component_Palette_DataControls.png]]</center><br />
: ''Data-aware components, which largely replicate the Standard and Additional groups but are applicable to Databases:'' TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid<br />
* '''Data Access'''<br />
<center>[[image:Component_Palette_DataAccess.png]]</center><br />
: TDatasource<br />
* '''System'''<br />
<center>[[image:Component_Palette_System.png]]</center><br />
: [http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls TTimer], TIdleTimer, TProcess<br />
* '''SynEdit'''<br />
<center>[[image:Component_Palette_SynEdit.png]]</center><br />
: ''A group of components to help interfacing with other languages and software tools. SynEdit is an advanced multi-line edit control, for Borland Delphi, Kylix and C++Builder. It supports Syntax Highlighting and code completion, and includes exporters for html, tex and rtf. It is a full-VCL/CLX control, meaning it is not a wrapper for Microsoft Windows controls, and no run-time library is required; this make SynEdit a crossplatform component. Compatibility with FreePascal is also planned, and SynEdit is the edit component in Lazarus IDE.'' see [http://synedit.sourceforge.net synedit at sourceforge]. TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn<br />
<br />
To use the Palette, there must be an open form on view in the editor (if there isn't one, select File -> New Form). Click on the icon in the appropriate tab of the Palette for the component you want to use, then click on the Form, near where you want the component to appear. When the desired component appears, you can select it by clicking with the mouse, then move it to the exact place on the Form where you want it and adjust its size. Adjustments can be made to the appearance either by altering the picture itself on the Form using the mouse, or by changing the relevant Property in the Object Editor for that component.<br />
<br />
If you install additional components, either those you have written yourself, or some coming as a package from some other source, then extra tabs with the relevant icons will appear in your Component Palette. These new components can be selected and used on your forms in the same way as those supplied by default.<br />
<br />
==The Debugger==<br />
: ''Still to be written''.<br />
<br />
==The Lazarus files==<br />
(Thanks to Kevin Whitefoot.)<br />
(Additions by Giuseppe Ridinò, [[User:Kirkpatc]] and Tom Lisjac)<br />
When you save you will actually be saving two files: <br />
<br />
xxx.pas and yyy.lpr <br />
(You save more than that but those are the ones you get to name). The project file (lpr) and the unit file (pas) must not have the same name because Lazarus will helpfully rename the unit (inside the source code) to the same as the unit file name and the program to the name of the project file (it needs to do this or the compiler will probably not be able to find the unit later when referred to in the project file). Of course to be consistent it changes all the occurrences of unit1 to xxx.<br />
<br />
So if you are saving a project called '''again''', trying to save again.pas and again.lpr fails because unit names and program names are in the same name space resulting in a duplicate name error.<br />
<br />
So here is what I ended up with:<br />
<br />
e:/lazarus/kj/lazhello:<br />
total 4740 free 76500<br />
-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe<br />
-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi<br />
-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr<br />
-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm<br />
-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs<br />
-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas<br />
-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu<br />
-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat<br />
<br />
Note that there are many more files than the two that I thought I was saving.<br />
<br />
Here is a brief note about each file:<br />
<br />
'''again.exe:'''<br />
The main program binary executable. Win32 adds an "exe" extension. Linux has none. This file will be huge on Linux due to the inclusion of debugging symbols. Run the "strip" utility to remove them and substantially shrink the executable size.<br />
<br />
'''again.lpi:'''<br />
This is the main file of a Lazarus project (Lazarus Project Information); the equivalent Delphi main file of an application will be the .dpr file. It is stored in an XML format.<br />
<br />
'''again.lpr:'''<br />
The main program source file. Despite its lazarus specific extension it is in fact a perfectly normal Pascal source file. It has a uses clause that lets the compiler find all the units it needs. Note that the program statement does not have to name the program the same as the file name.<br />
<br />
'''againu.lfm:'''<br />
This is where Lazarus stores the layout of the form unit. Lazarus uses this to generate a resource file that is included in the initialisation section of the againu.pas unit. Delphi dfm files can be converted to lfm format in the Lazarus IDE using the Tools->Convert DFM file to LFM utility.<br />
<br />
'''again.lrs:'''<br />
This is the generated resource file. Note that it is not a Windows resource file.<br />
<br />
'''againu.pas:'''<br />
The unit that contains the code for the form.<br />
<br />
'''again.ppu:'''<br />
This is the compiled unit.<br />
<br />
'''ppas.bat:'''<br />
This is a simple script that links the program to produce the executable. If compilation is successfull, it is deleted by the compiler.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial version].<br />
* Created initial page and template. T. Lisjac - 11/04/2003 [[User:Tom | VlxAdmin]]<br />
* Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 [[User:Kirkpatc]]<br />
* Per above, moved Chris's writeup to the main body of the tutorial [[User:Tom | VlxAdmin]]<br />
* Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 [[User:Kirkpatc]]<br />
* Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 [[User:Kirkpatc]]<br />
* Added screenshots and revised some of the page formatting [[User:Tom | VlxAdmin]] 3/25/2004<br />
* Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 [[User:Kirkpatc]]<br />
* Formatted, added credits and comments. Removed original notes. [[User:Tom | VlxAdmin]] 3/26/2004<br />
* More material added to Editor section of tutorial. 26 Mar 2004 [[User:Kirkpatc]]<br />
* More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 [[User:Kirkpatc]]<br />
* Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 [[User:Kirkpatc]]<br />
* Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 [[User:Kirkpatc]]<br />
* Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 [[User:Kirkpatc]]<br />
* Added some more to the description of the Editor Main Menu. 18 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Environment sub-menu. 19 Apr 2004 [[User:Kirkpatc]]<br />
* Added section on Components sub-menu. 4 May 2004 [[User:Kirkpatc]]<br />
* Adding Tools sub-menu description (incomplete). 7 May 2004 [[User:Kirkpatc]]<br />
* Added some screenshots to Menu descriptions. 9 May 2004 [[User:Kirkpatc]]<br />
* Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 [[User:Kirkpatc]]<br />
* More additions to Tools sub-menu. 19 May 2004 [[User:Kirkpatc]]<br />
* Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 [[User:Kirkpatc]]<br />
* Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 [[User:Kirkpatc]]<br />
* Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 [[User:Kirkpatc]]<br />
* Expanding on the Components Palette. 5 June 2004 [[User:Kirkpatc]]<br />
* Added a lot to the DialogExamples page. 10 June 2004 [[User:Kirkpatc]]<br />
* Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 [[User:Kirkpatc]]<br />
* Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 [[User:Kirkpatc]]<br />
* Added page for Common Controls (linked to Component Palette). 16 June 2004 [[User:Kirkpatc]]<br />
* Added MaskEdit page (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 [[User:Kirkpatc]]<br />
* Edited MainMenu component description page. 23 June 2004 [[User:Kirkpatc]]<br />
* Some additions to Common Controls. 28 June 2004 [[User:Kirkpatc]]<br />
* A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 [[User:Kirkpatc]]<br />
* Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July [[User:Kirkpatc]]<br />
* Added FormsTxt, component description page for Component Palette. 20 July 2004 [[User:Kirkpatc]]<br />
* Some corrections to ConsoleModePascal. 21 July 2004 [[User:Kirkpatc]]<br />
* Some small changes to ComponentPalette. 22 July 2004 [[User:Kirkpatc]]</div>Ejca