Lazarus Tutorial/fr

From Free Pascal wiki
Jump to: navigation, search

Deutsch (de) English (en) español (es) suomi (fi) français (fr) magyar (hu) Bahasa Indonesia (id) italiano (it) 日本語 (ja) 한국어 (ko) македонски (mk) Nederlands (nl) português (pt) русский (ru) slovenčina (sk) shqip (sq) 中文(中国大陆)‎ (zh_CN) 中文(台灣)‎ (zh_TW)

This is the start of a Lazarus Tutorial. Please feel free to add your experiences to it.

Vue d'ensemble

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 (capture d'écran en Anglais) est stable. Il a de nombreuses fonctionnalités pour créer des logiciels pouvant s'exécuter de façon autonome. Il fonctionne actuellement sous Linux, FreeBSD, Win32 et MacOS X. Lazarus fournit un éditeur de code source personnalisable, un environnement visuel de création de fiches, un gestionnaire de paquets, un débogueur et une interface graphique utilisateur (GUI) intégrée au compilateur FreePascal.

Prise en main

(Merci à User:Kirkpatc)

Téléchargez Lazarus dans la section 'Download' du site officiel, installez-le et lancez-le.

Votre premier programme sous Lazarus !

Plusieurs fenêtres apparaîtront sur le bureau : le menu principal en haut, l'inspecteur d'objet à gauche, l'éditeur de source de Lazarus, qui occupe la plus grande partie du bureau, et une fenêtre Form1 prête à être utilisée recouvrant l'éditeur de source.

Sous le menu principal, vous trouverez plusieurs onglets. Si 'Standard' n'est pas déjà sélectionné, faites-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.

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 inclut OnClick, OnEnter, OnExit etc. À présent, cliquez sur le bouton à droite de 'OnClick' [...]. Lorsque vous le sélectionnez, vous êtes renvoyés automatiquement dans l'éditeur de source, et votre curseur directement à l'emplacement où le code doit être saisi :

  procedure TForm1.Button1Click(Sender: TObject);
  begin
    {maintenant tapez :}    Button1.caption := 'Press again';
    {L'éditeur a déjà complété la procédure }
  end;

Appuyez sur F12 pour sélectionner Form1 au lieu de l'éditeur de source.

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énements', 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 :

  procedure TForm1.Button2Click(Sender: TObject);
  begin
  {maintenant tapez :}   Close;
  {L'éditeur a déjà complété la procédure } 
  end;

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 appuyer, tout simplement, sur la touche F9 de votre clavier. Cette manipulation compilera votre programme, et (si tout se passe bien) l'exécutera.

La fenêtre de texte en dessous de l'éditeur de source affichera différentes sortes d'informations 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 principale de votre application, elle attend que vous cliquiez sur le bouton 'Press'.

Essayez de cliquer sur le bouton 'Press'. Le libellé changera en 'Press again'. Si vous cliquez encore, le libellé continuera à afficher 'Press again' !

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.

A présent, vous devriez sauvegarder votre travail (faites-le souvent !) sélectionnez : Projet -> Enregistrer le projet sous... et indiquez les noms de vos fichiers.

ATTENTION : le nom de fichier de la "Unit" et du projet doivent être différents.

Deuxième session

Rouvrez votre projet. Cliquez sur le bouton 'Press' (Button1) de la fenêtre 'Form1'. Sélectionnez l'onglet 'Évènements' dans l'inspecteur d'objet, cliquez sur le bouton près de 'OnClick' [...], pour retourner à l'emplacement approprié dans l'éditeur de source.

Modifiez votre code de la manière suivante :

  procedure TForm1.Button1Click(Sender: TObject);
 {Makes use of the Tag property, setting it to either 0 or 1}
  begin
    if Button1.tag = 0 then
    begin
      Button1.caption := 'Press again';
      Button1.tag := 1
    end else
    begin
      Button1.caption := 'Press';
      Button1.tag := 0
    end
  end;

Sauvegardez votre travail, et compilez votre programme. Le bouton 'Press' basculera entre les deux messages ('Press' et 'Press again').

Le reste dépend de vous !

Si vous préférez programmer en mode console (ou mode texte), par exemple si vous apprenez les bases du Pascal, ou que vous ayez 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.

L'éditeur

Lorsque vous lancez Lazarus, une série de fenêtres flottantes apparaît.

La 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.

Lazmainfr.jpg

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. 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.

En dessous de la fenêtre de l'éditeur apparaît, à gauche de l'écran, la fenêtre de l'inspecteur d'objet, et l'éditeur de source de Lazarus. Il peut également y avoir une fenêtre plus petite, appelée 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.

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 habituels 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.

D'autres fenêtres peuvent êtres affichées pendant votre travail : l'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.


Menu principal

Le menu principal contient les entrées suivantes : Fichier Edition Cercher Voir Project Exécuter Composants Outils Configuration Fenêtres Aide

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 :

  • Alt,
  • la lettre correspondante au menu voulu (par exemple F),
  • Entrée.

Sous-menu Fichier

SousMenuFichierFr.png
  • Nouvelle unité : crée une nouvelle unité (Source Pascal) ;
  • Nouvelle fiche : crée une nouvelle fiche, et l'unité Pascal associée ;
  • Nouveau... : affiche un menu surgissant (capture d'écran) proposant une variété de documents à créer ;
  • Ouvrir... : affiche une boîte de dialogue permettant ne naviguer dans le système de fichier et de choisir une fichier existant à ouvrir ;
  • Restaurer : abandonne les modifications effectuées et restaure les fichiers dans leurs états d'origine ;
  • Réouvrir... : propose la liste des fichiers récemment ouverts, avec la possibilité d'en sélectionner un et de l'ouvrir ;
  • 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) ;
  • 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 ;
  • Fermer : ferme le fichier en cours, après avoir demandé la sauvegarde des modifications effectuées ;
  • 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) ;
  • Nettoyer un répertoire... : affiche une boîte de dialogue avec une série de filtres éditables pour supprimer les fichiers correspondants de votre répertoire en cours. Utile pour supprimer les fichiers .bak et les restes des anciens projets de Delphi ;
  • Print... : imprime la page sélectionnée de l'éditeur de sources ;
  • Redémarrer : redémarre Lazarus, ce qui est utile lorsque les fichiers sont trop désorganisés ;
  • Quitter : sort de Lazarus, après avoir demandé la sauvegarde des fichiers modifiés.

Sous-menu Edition

SousMenuEditionFr.png
  • Défaire : défait la dernière action effectuée.
  • Refaire : refait la dernière action annulée par Défaire ;
  • Couper : supprime le texte sélectionné et le copie en mémoire ;
  • Copier : fait une copie en mémoire du texte sélectionné, en laissant l'original en place ;
  • 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 ;
  • Indenter la sélection : déplace le texte sélectionné vers la droite en fonction de ce qui est spécifié dans : Configuration -> Options... -> Editeur -> Général -> Indentation de bloc. Cette fonctionnalité est utile pour formater votre code source Pascal de manière à mettre en évidence sa structure ;
  • 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 ;
  • Entourer la sélection... : affiche un menu pop-up avec plusieurs options pouvant logiquement entourer le texte sélectionné (begin ... end; try ... except; try ... finally; repeat ... until; { ... } etc) ;
  • Sélection en commentaire : commente le texte sélectionné en insérant // sur chaque ligne ;
  • Décommenter la sélection : supprime les marqueurs de commentaire du texte sélectionné ;
  • 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 ;
  • 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 ;
  • Mettre la sélection en majuscules : convertit le texte sélectionné en majuscules ;
  • Mettre la sélection en minuscules : convertit le texte sélectionné en minuscules ;
  • Remplacer les tabulations par des espaces dans la sélection : convertit chaque tabulation dans le texte sélectionné par le nombre d'espaces spécifié dans Configuration -> Options -> Editeur -> Général -> Largeur de tabulation. Le nombre d'espaces n'est pas fixe, mais correspond au nombre nécessaire pour remplacer la largeur de la tabulation ;
  • Couper les lignes dans la sélection : si une ligne de la sélection fait plus de 80 caractères de long ou plus que le nombre spécifié dans Configuration -> Options -> Editeur -> Affichage -> Marge droite, alors cette ligne sera coupée au niveau de la borne limite et continuera sur la ligne suivante ;
  • Sélectionner : permet de sélectionner un bloc de texte. Les options possibles sont : Tout sélectionner, Ancrer la sélection, Sélectionner le bloc de code, Sélectionner la ligne et Sélectionner le paragraphe ;
  • 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 diverses possibilités ;
  • 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. ;
  • 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 outils de l'EDI Lazarus ;
  • 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.

Sous-menu Chercher

SousMenuChercherFr.png
  • 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, etc. sont également disponibles ;
  • Chercher l'occurrence suivante, Chercher l'occurrence précédente : cherche l'occurrence suivante (resp. précédente) de la chaîne entrée précédemment, dans la direction spécifiée ;
  • Chercher dans les fichiers... : chercher une chaîne de caractères dans un fichier : boîte de dialogue avec la possibilité de chercher dans tous les fichiers du projet, tous les fichiers ouverts, ou dans les répertoires ; masque les possibilités en fonction du type de fichier sélectionné ;
  • Remplacer... : similaire à Chercher ; affiche une boîte de dialogue avec la possibilité d'entrer le texte à chercher et le texte à remplacer, ainsi que les options de sensibilité de casse, de direction, etc. ;
  • Recherche incrémentale : cherche la chaîne de caractères 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 ;
  • Aller à la ligne... : déplace le curseur à la ligne spécifiée ;
  • En arrière : se déplace vers le signet précédant (Ajouter le point de saut à l'historique doit avoir été utilisé au préalable). Se déplacera vers d'autres fichiers ouvert dans l'éditeur.
  • En avant : se déplace vers le signet suivant ;
  • Ajouter le point de saut à l'historique : ajoute des points de saut ou des signets au fichier ;
  • Afficher l'historique des déplacements... : affiche au moins un point de saut dans le fichier : Pas encore implémenté ! ;
  • Erreur suivante, Erreur précédente : se déplace dans le fichier source, à la position de l'erreur suivante (resp. précédente) ;
  • Mettre un signet libre : marque la ligne courante (où se trouve le curseur, donc) d'un signet affecté du prochain numéro de signet libre, et l'ajoute à la liste des signets. Notez qu'un clic droit sur une ligne appropriée du fichier source, ouvre un menu pop-up proposant un choix plus étendu d'options de gestion des signets, permettant de spécifier un numéro de signet, ou à se déplacer jusqu'à un signet donné (et pas seulement vers le prochain ou le précédent) ; Attention, en 0.9.028.2, l'option du menu ne fonctionne pas et les traductions françaises dans le pop-up sont identiques pour des fonctions différentes : l'une gère le déplacement vers les signets, l'autre gère la mise en place et le déplacement des signets eux-mêmes !
  • Aller au prochain signet, Aller au précédent signet : se déplace au prochain (resp. précédent) signet, dans l'ordre numérique des signets (i.e. pas forcément dans l'ordre des lignes).
  • Chercher la fin du bloc de code : si vous êtes positionné sur begin, cherche le end correspondant ou vice versa ;
  • Chercher le début du bloc de code : se déplace sur le begin de la procédure ou de la fonction dans laquelle le curseur et positionné ;
  • Rechercher la déclaration sous le curseur : trouve l'endroit où est déclaré l'identifiant choisi. 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 classesh.inc, cela l'ouvrira dans l'éditeur) ;
  • Ouvrir le fichier sous le curseur : ouvre le fichier correspondant au nom sélectionné sous le curseur. Utile pour ouvrir des fichiers Include ou des fichiers contenant d'autres Unités utilisées dans le projet ;
  • Aller à la directive "include" : si le curseur est positionné dans un fichier Inclus dans un autre fichier, va à la position de la directive d'Inclusion dans cet autre fichier ;
  • Trouver les références à l'identifiant... : affiche une liste de toutes les lignes où l'identifiant recherché apparaît, dans le fichier courant, le projet courant ou tous les fichiers dépendants ;
  • Renommer l'identifiant... : permet de renommer un identifiant partout où il est utilisé. Une boîte de dialogue permet de préciser s'il faut renommer l'identifiant uniquement dans le fichier courant, dans tout le projet, ou dans tous les fichiers ouverts ou dépendants, etc. Vous pouvez même renommer les occurrences de l'identifiant apparaissant dans les commentaires. Vous utiliserez cette fonctionnalité notamment lorsque le compilateur vous indiquera qu'un identifiant existe déjà, auquel cas vous aurez besoin d'un nouveau nom ;
  • Liste de procédures... : ouvre une boîte de dialogue présentant une liste filtrable de toutes les procédures et fonctions du fichier courant, avec le numéro de ligne de leur définition.

Sous-menu Voir

SousMenuVoirFr.png

Il permet le contrôle de l'affichage de différentes fenêtres sur l'écran.

  • 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 sélection 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
    ...
    pour que dans l'éditeur de sources, le curseur se place dans la procédure créée automatiquement, attendant que vous y tapiez le code associé.
  • 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 clic gauche maintenu plus déplacement permet de sélectionner une partie du texte. Le clic 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.
  • 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 fichiers affichés 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.
  • Editeur LazDoc :
  • Navigateur de code :
  • 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'éditeur 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'éditeur 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.
  • 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.
  • 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.
  • Informations de l'unité : Donne des informations sur l'onglet d'unité sélectionné dans l'éditeur de sources.
  • Commutation fiche/Unité : Bascule entre l'éditeur de sources et la Fiche active. Si l'éditeur 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'éditeur 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.
  • Messages : Une fenêtre qui affiche les messages du compilateur, montre la progression de la compilation ou liste les erreurs trouvées.
  • Résultats de la recherche : Une fenêtre qui affiche les résultats de Chercher -> Chercher dans les fichiers.
  • Afficher l'éditeur d'ancres :
  • Voir la palette des composants :
  • Voir les boutons rapides de l'IDE :
  • Fenêtres de débogage : Ouvre un menu surgissant avec plusieurs options pour le fonctionnement et la configuration du débogueur. Voir le débogueur plus bas.

Sous-menu Projet

SousMenuProjetFr.png
  • Nouveau Projet... : Crée un nouveau projet. Une boîte de dialogue s'affiche permettant de choisir entre différents types de projets.
  • Nouveau projet depuis le fichier... : Une fenêtre permettant d'ouvrir un fichier qui servira de point de départ à un nouveau projet.
  • 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.
  • Réouvrir un projet... : Affiche une liste des projets récemment ouvert, permettant de les sélectionner pour les ouvrir.
  • Fermer le projet :
  • Enregistrer le projet : équivalent 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".
  • 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 plus bas).
  • 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 outils de l'EDI Lazarus
  • 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.
  • 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).
  • 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.
  • 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 !
  • Ajouter le fichier de l'éditeur au projet : Ajouter au projet le fichier en cours d'édition.
  • Retirer du projet... : Affiche une liste des fichiers pouvant être supprimés du projet.
  • Afficher le source : Affiche le code source principal (fichier .lpr ou .pas s'il n'existe pas de fichier .lpr) du programme en cours.

Sous-menu Exécuter

SousMenuExecuterFr.png
  • Construire : Lazarus construit (par exemple Compiler) chaque fichier du projet ayant été modifié depuis la dernière construction.
  • Construire tout : Construit tout les fichiers du projet, y compris ceux qui n'ont subis aucune modification.
  • Construire vite :
  • Arrêter le construction : Stop la construction (par exemple 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.
  • 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éé.
  • 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.
  • 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.
  • 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.
  • 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.)
  • 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.
  • 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".
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
"xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied".  
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.
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.
Voir le tutoriel : programmation Pascal en Mode Console.
  • 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.
  • Construire le fichier : Compile (construit) uniquement le fichier ouvert dans l'éditeur.
  • Exécuter le fichier : Compile, link et exécute le fichier ouvert dans l'éditeur.
  • Configurer construire + Exécuter le fichier... : 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.
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".
  • Inspecter... :
  • Evaluer/Modifier.. :
  • Ajouter un suivi... :
  • Ajouter un point d'arrêt :

Sous-menu Composants

SousMenuComposantsFr.png
  • Ouvrir un paquet chargé... : Affiche une liste des paquets installés, vous invitant à en ouvrir un ou plusieurs d'entre eux, ou vous permettant de sélectionner différentes options générales ou de compilation.
  • Ouvrir un fichier paquet (.lpk)... : Ouvre un ou plusieurs fichiers du paquet sélectionné.
  • Ouvrir le paquet de l'unité courante : Ouvre un paquet utilisé récemment.
  • Ouvrir un paquet récent... :
  • Ajouter l'unité active au projet : Place le fichier de l'unité (en cours d'édition) dans un package.
  • Graphique des paquets... : Affiche un 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).
  • Configurer les paquets installés... : Si vous avez créé vos propres composants, vous permet de les configurer.

Sous-menu Outils

SousMenuOutilsFr.png
  • Configurer les outils personnalisés... : Autorise l'utilisateur à ajouter différents outils externe (habituellement des macros).
  • Project templates options : Permet définir le répertoire des modèles par défaut.
  • 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é.
  • 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.
  • 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.
  • 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 !
  • 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.
  • Vérifier le fichier LFM dans l'éditeur : Permet l'inspection du fichier LFM contenant les paramètres décrivant le formulaire en cours.
  • Convertir une unité Delphi en unité 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.
  • Convertir un projet Delphi en projet Lazarus... :
  • Convertir une paquet Delphi en paquet Lazarus... :
  • 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.
  • 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).
  • 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.

Sous-menu Configuration

SousMenuConfigurationFr.png
  • Options... :
    • ... de l'Environnement :
      • 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 ;
      • 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,...) ;
      • Fenêtres - autorise la spécification de la taille et le comportement des différentes fenêtres ;
      • Editeur de fiches - pour choisir les couleurs et différentes options de l'éditeur de fiches ;
      • Inspecteur d'objets - pour choisir la couleur et la hauteur des éléments, et différentes options ;
      • Sauvegarde - spécifie de quelle manière la sauvegarde doit fonctionner au moment de l'édition ;
      • Nommage - spécifie quelles extensions à 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 ;
      • Editeur FPDoc - permet d'indiquer les chemins pour FPDoc.
    • ... de l'Editeur :
      • Général - détermines les comportements comme l'indentation automatique, la mise en évidence des parenthèses, l'affichage des conseils de défilement, la mise en évidence de la syntaxe, l'édition par glisser-déposer, la taille du bloc d'indentation et de tabulation, le nombre d'annuler possibles, etc. ;
      • 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. Contient 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 ;
      • Assignation des touches - options pour sélectionner les raccourcis clavier de Lazarus, Turbo Pascal ou ses propres raccourcis clavier ;
      • Souris - options de comportement de la souris et de son pointeur ;
      • Couleurs - permet de paramétrer la coloration syntaxique de l'éditeur, pour un certain nombre de langages comme : Pascal objet, C++, Perl, HTML, XML et scripts. Propose un aperçu pour chaque langage sélectionné ;
      • Audit de code - permet la sélection des fonctionnalités comme le complément d'identifiant, les outils des symboles ToolTip, les paramètres du code, et l'évaluation d'expression ToolTip ;
      • Repliage de code - options de pliage de code.
    • ... des Outils de code :
      • Général - permet d'entrer un chemin de recherche de fichiers source, spécification de la méthode de saut ;
      • Complétion de classe - options de complétion des classes,et de leurs méthodes et propriétés ;
      • Création de code - détermine comment le code ajouté et créé après l'activation de certaines fonctionnalités ;
      • Mots - détermine la casse des mots clefs Pascal lorsqu'ils sont intégrés au code ;
      • 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.) ;
      • 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 ;
      • Compléter l'identifiant - options de complétion des identifiants.
    • ... de l'Explorateur de code :
      • Mise à jour - options de rafraîchissement ;
      • Catégories - catégories à explorer ;
      • Code Observer - paramètres d'analyse du code.
    • ... du Debugger :
      • 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 ;
      • Journal des événements - spécifie comment nettoyer le log au au démarrage, et quels messages doivent être affichés ;
      • Exceptions de langue - sélectionne quels exceptions peuvent être ignorées ;
      • Exceptions du système d'exploitation - autorise l'utilisateur à ajouter certains signaux à appliquer au système d'exploitation actuel (pas encore implémenté).
    • ... de l'Aide : permet de paramétrer le chemin, le visualiseur et les bases de données de l'aide.


  • Modèles de code : affiche une boîte de dialogue permettant d'indiquer le fichier contenant les modèles de code, de modifier les modèles existants ou d'en ajouter. Permet également d'autoriser et d'insérer des macros, et de paramétrer l'auto-complétion.


  • Editeur des directives des outils de code : vous pouvez voir ici toutes les définitions internes que l'EDI utilise pour analyser les sources. Vous verrez toutes les définitions, unités, sources, chemins d'inclusion pour tous les répertoires. Cela commence avec le paramétrage courant de FPC, les définitions du répertoire de sources de Lazarus, tous les répertoires de paquets et les répertoires de projets.

La plupart des ses paramètres son générés automatiquement et sont en lecture seule.


  • Reparcourir le répertoire des sources FPC : déclenche 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ée à cet endroit. Mais si ce répertoire a changé sans que Lazarus en soit averti, alors vous aurez quelques erreurs 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 :
    1. contrôlez le paramètre du répertoire de sources FPC dans les Options de l'Environnement ;
    2. Reparcourir le répertoire des sources FPC.

Sous-menu Fenêtres

SousMenuFenetreFr.png

Contient une liste des fichiers actuellement ouverts et des fenêtres disponibles comme Editeur de sources Lazarus, Inspecteur d'objets et Messages. Cliquer sur le nom d'une des fenêtres la placera au premier plan et lui donnera le focus.

Sous-menu Aide

  • 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
  • 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 où 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é).

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 emmené vers la définition appropriée sur le site Internet. CETTE SECTION EST TOUJOURS EN COURS D'ELABORATION

  • A propos de Lazarus : affiche une fenêtre avec quelques informations sur Lazarus.

À 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 partie de la section de la Documentation (celle que vous êtes 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.

La barre de boutons

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 contient un jeu de boutons appelant les fonctions les plus fréquemment utilisées dans le menu :

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é (i.e. affiche la fiche ou le code source de l'unité), Afficher les unités, Afficher les fiches, Exécuter (i.e. compile et exécute), Pause, Pas à pas approfondi, Pas à pas (les deux derniers sont des fonctions de débogage).

La palette de composants

La barre d'outils à onglets affiche un large choix d'icônes représentant les composants les plus courants pour la conception de formulaires.

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ée outil de sélection.

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ée 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 ou ses composants (i.e. Procédures ou Fonctions) sera placée dans la partie implementation de l'unité.

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.

ONGLETS (les noms sont largement explicites) :

  • Standard
Component Palette Standart.png
Les composants fréquemment utilisés :
TMainMenu, TPopupMenu, TButton, TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TRadioGroup, TCheckGroup, TPanel, TActionList
  • Additional
Component Palette Additional.png
Des composants souvent utilisés en complément :
TBitBtn, TSpeedButton, TStaticText, TImage, TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, TCheckListBox, TScrollBox, TApplicationProperties, TStringGrid, TDrawGrid, TPairSplitter, TColorBox, TColorListBox, TChart
  • Common Controls
Component Palette Common Controls.png
TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TTabControl, THeaderControl, TImageList
  • Dialogs
Component Palette Dialogs.png
TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TfindDialog, TReplaceDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog, TPrinterSetupDialog, TPrintDialog, TPageSetupDialog

Beaucoup de procédures ou de fonctions utiles comme les 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.

Pour quelques bons exemples sur l'utilisation des composants, voir le sous-répertoire $LazarusPath/lazarus/examples de votre installation. Beaucoup de ces 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 pleinement l'EDI.

Certains exemples ne fonctionnent pas immédiatement : vous pourriez avoir besoin de modifier les chemins et les permissions des fichiers des répertoires. Si vous souhaitez compiler quelques exemples, faites attention à avoir les permissions de lecture/écriture/exécution pour les fichiers et les répertoires, ou copiez les fichiers dans un répertoire sur lequel vous avez les permissions appropriées.

Essayez d'exécuter le programme 'testall' pour voir un menu des composants disponibles ainsi que de petits exemples de formulaires de test pour la plupart d'entre eux ; ensuite inspectez le code pour comprendre comment ils fonctionnent !

  • Misc
Component Palette Misc.png
TColorButton, TSpinEdit, TFloatSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox, TXMLPropStorage, TIniPropStorage, TbarChart, TButtonPanel, TIDEDialogLayoutStorage
  • Data Controls
Component Palette DataControls.png
Composants orientés données, qui copient très largement les groupes Standard et Additionnel mais sont applicables aux bases de données : TDBNavigator, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid
  • Data Access
Component Palette DataAccess.png
TDatasource, TMemDataset (Package MemDSLaz), TSdfDataSet (Package SDFLaz), TFixedFormatDataSet (Package SDFLaz), TDbf (Package DBFLaz)
  • System
Component Palette System.png
TTimer, TIdleTimer, TLazComponentQueue, THTMLHelpDatabase, THTMLBrowserHelpViewer, TProcess, TSimpleIPCClient, TSimpleIPCServer, TXMLConfig
  • SynEdit
Component Palette SynEdit.png
Un groupe de composants pour aider à interfacer d'autres langage et outils logiciels. SynEdit est un puissant composant d'édition multiligne, pour Borland Delphi, Kylix et C++ Builder. Il supporte la coloration syntaxique et la complétion de code, et il inclut l'export aux formats html, tex et rtf. C'est un contrôle VCL/CLX à part entière, ce qui signifie qu'il n'encapsule pas un contrôle Microsoft Windows, et qu'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 synedit sur sourceforge.
TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynPythonSyn, TSynAnySyn, TSynMultiSyn

Comment utiliser la Palette

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. À ce moment là, vous pourrez le sélectionner à l'aide de la souris, et le déplacer à l'endroit que vous souhaitez sur la fiche et ajuster 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.

Si vous installez des composants additionnels, que ce soit des composants que vous avez vous-même écrits, ou des paquets provenant d'autre sources, de nouveaux onglets apparaîtront 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.

Comment utiliser les contrôles Standard, Common et étendus

Les Unités StdCtrls, ComCtrls et ExtCtrls contiennent les définitions et les descriptions de beaucoup des contrôles les plus fréquemment utilisés pour la construction de fiches et d'autres objets dans les applications Lazarus.

De nombreux contrôles finaux utilisés par les développeurs, tels que TButton, TMemo, TScrollBar etc., correspondent à une classe ancêtre comme, respectivement, TCustomButton, TCustomMemo ou TCustomScrollBar. Plusieurs propriétés et méthodes relatives au contrôle final sont définies (et expliquées) plus complètement dans la classe TCustomXXX, le contrôle final en héritant.

Si vous déposez un composant dans l'éditeur de fiche, vous n'avez pas besoin d'ajouter de code pour le créer. Le composant est automatiquement généré par l'EDI, ainsi que la fiche, et détruit lorsque la fiche est détruite.

Cependant, si vous créez un composant vous-même par programmation, n'oubliez pas de le libérer lorsqu'il n'est plus utilisé.

Si vous placez un composant dans l'éditeur de fiche et que vous regardez dans l'inspecteur d'objets, vous pourrez observer les propriétés changer en même temps que vous déplacez le composant.

For example, if you place a button (TButton) on the form, click on it to select it, then move it around the form with the mouse, you can watch the values of Top and Left change in the Object Inspector to reflect the new position. If you use the object's re-sizing bars to adjust its size, you can watch the Height and Width properties change as well.

On the other hand, by using the Object Inspector, you can select the value associated with a property such as height, and type in a new value; you can watch the size of the object on the form change to reflect the new value.

You can also explicitly change the properties of the object in code by typing (in the appropriate Implementation section of the Source editor), for example

         Form1.Button1.Height := 48;

If you type this new value into the Source Editor and then look back at the Form Designer, you will see that the button on the Form has taken the new size. The new value will also be shown in the Object Inspector.

In summary, there are usually about three different ways to determine each property of an object:

  • by using the mouse,
  • by setting the values in the Object Inspector,
  • or explicitly by writing code.

The components defined in these Units have several properties that are common to most of them, and other properties that are specific to the individual components. We shall describe the most common ones here. Unusual or control-specific properties will be described for the individual controls.

Additional Help can always be obtained by selecting a property or keyword, in either the Object Inspector or the Source Editor, and pressing F1. You will be taken by your Help browser to the appropriate page in the documentation.

If the description of a property on that page is insufficient, you can navigate to the corresponding description in the ancestor classes, by selecting the links in the Inheritance listing or by selecting the ancestor Type in the declaration of the object.

Constructors such as Create allocate memory and system resources needed by the object. They also call the constructor of any sub-objects present in the class.

Destructors: remove the object and de-allocate memory and other resources. If you call Destroy for an object which hasn't being initialized yet it will generate an error. Always use the Free method to deallocate objects, because it checks whether an object's value is nil before invoking Destroy.

Take the following precautions when creating your own Destroy method:

  • Declare Destroy with the override directive, because it is a virtual method.
  • Always call 'inherited Destroy;' as the last thing on the destructor code.
  • Be aware that an exception may be raised on the constructor in case there is not enought memory to create an object, or something else goes wrong. If the exception is not handled inside the constructor, the object will be only partially built. In this case Destroy will be called when you weren't expecting it, so your destructor must check if the resources were really allocated before disposing of them.
  • Remember to call Free for all objects created on the constructor.


Some commonly listed properties
PropertyMeaning
Action The main action or event associated with the object. For example selecting an 'Exit' Button might cause the 'Close' action
Align Defines the way in which an object is to be lined up with the parent object. Possible values are alTop (placed at the top and using the full available width), alBottom, alLeft (placed at the left and using the full available height), alRight. alNone (place anywhere on parent control) or alClient (takes all available space next to controls aligned to top, bottom, left or right)
Anchor Used to keep a control a certain distance from the defined edges of a parent control, when the parent is resized. For example [akBottom, akRight] will keep the control a fixed distance from the bottom right corner.
AutoSelect When True, an editing control will select all its text when it receives focus or when the Enter key is pressed.
AutoSelected True indicate that the edit or combobox control has just performed an AutoSelect operation so that subsequent mouse-clicks and keystrokes proceed normally without selecting the text.
BorderSpacing The space around the edge between an Anchored control and its parent.
Caption The text that is displayed on or near the control; it should preferably give some clue as to the function of the control, or an instruction such as 'Close' or 'Execute'. By default Caption is set to be the same as the 'Name' property, and the application programmer should substitute meaningful text instead of the default values.
CharCase Indicates how text is displayed in a text editing control: Normal (retaining the case of the letters typed by the user), converted to uppercase, or converted to lowercase
Constraints Sets the minimum and maximum sizes for a control. If a control is resized the new dimensions are always within the ranges given here. You should take care when setting these options that they do not conflict with the Anchors and Align settings.
Color The Colour to be used to draw the control or to write the text it contains.
Enabled A Boolean property to determine whether or not a control is capable of being selected and performing an action. If it is not Enabled, it is often Grayed out on the Form.
Font The Font to be used for writing the text associated with the control - either the caption or label, or the text-strings contained within the control. The entry on the Object Inspector usually has a (+) box on the left, and selecting this box reveals further options such as character set, colour and size.
Hint A short piece of informative pop-up text that appears if the mouse-cursor hovers over the control.
Items The list of 'Things' that the object contains, such as a group of images, a series of lines of text, a number of actions in an actionlist, etc
Lines An array of strings, containing the textual data in controls with more than a single line of data, such as an Edit-Box or a Combo-Box. The array is zero-indexed, ie the lines are numbered [0..numLines-1]
Name The identifier by which the control is known in the program. The IDE gives it a default name based on the underlying type, for example successive instances of TBitButton would be named Form1.BitBitton1 and Form1.BitButton2; it is up to the application programmer to give them more meaningful names such as ExitButton or OKButton. By default the Name of the control is applied to the Caption for the control, but the text of the Caption may be changed separately.
PopUpMenu A window containing context-sensitive menu information that pops up when the right mouse button is clicked on the object.
Position (or Top, Left) Determines where the control is located on the parent form or window
ReadOnly Boolean property which, if True, signifies that the contents of the control can be read by the user or the calling routine, but cannot be written or changed.
ShowHint Allows a small window containing a context-sensitive Help or other description to be displayed when the mouse cursor 'hovers' over the control.
Size (or Height and Width) The dimensions of the control
Style The options available for Style depend upon the sort of Control being considered: for instance the Style may be defined by TFormStyle, TBorderStyle, TButtonStyle etc.
TabOrder Integer defining where in the sequence of tabs on the Form this control is to lie
TabStop Boolean property which if True places this control in the sequence of objects that the user can reach by successively pressing the Tab key
Text The String of Text that represents the actual data that this control contains. Applies particularly to Text, Memo and StringList types of object. Most of the editing operations (such as Select, Clear, Cut, Copy) are performed in this part of the object, which holds the actual string being edited. If the control contains more than a single line of text, for example TMemo or TComboBox, then the textual elements are arranged as an array of strings (zero-indexed, ie numbered from [0..numLines-1]) in Lines.
Visible If true, the object can be seen on the Form; if False, object is hidden
WordWrap Logical flag to show whether or not word-wrap is enabled, ie if a word comes close to the end of a line and is going to be too long for the line, it is wrapped down to the next line.

Many actions are commonly listed in the 'Events' tab of the Object Inspector. If you select an entry in the list, a ComboBox appears with a DropDown list showing any actions that have aleady been defined, and allowing you to choose one to be associated with this event. Alternatively you can select the ellipsis (three dots ...) and you will be taken to an area of the Source Editor where you can begin typing your own action instructions for the selected event.

While a large number of events is available for any given control, in practice it is only necessary to populate a few of them. For most controls, it is sufficient to provide coding for 'OnClick'; for more complex controls it may be necessary also to provide for 'OnEntry' (when the mouse cursor enters the Control and gives it focus) and 'OnExit' (when the mouse cursor leaves the Control; or you may need to write an event handler for 'OnChange' or 'OnScroll', depending on the nature of the particular control with which you are dealing.

The pop-up menu that appears when you right-click an object in the Form Designer has, as its first item: 'Create default event' and selecting this option will have the same effect as selecting the ellipsis in the Object Inspector for the default event, usually OnClick: you are taken to the Implementation area of the Source Editor where you can type the code for the event handler.

A common strategy in Object-Oriented programming is to provide an ActionList with the facility for entering, removing or editing a number of pre-defined actions from which the most appropriate can be selected to use in any particular instance.


Some commonly listed Actions
Action Meaning
OnChange Action to be taken if any change is detected (eg mouse move, mouse click, key press, edit text, alter picture, etc)
OnClick Action to be taken when the (left) mouse button is clicked. This is usually the main or default action of the control; for example clicking on a button or checkbox initiates the action associated with the checkbox. It may alternatively initate a process of selection, for instance in a TextBox or Memo, or signal the beginning of painting with a Pen or Brush.
Click A method to emulate in code the effect of clicking on a control. This method is most often found in Button-type controls (TButton, TBitBtn, TSpeedButton etc). A procedure can be written that calls the same code as the OnClick action. This facility can be particularly useful if the activation of one control by clicking causes a cascade of other controls to be activated, and the Click method can be used to initiate the action rather than having the user explicitly click on a lot of controls.
OnDragDrop Action to be taken during Drag-Drop manoeuvres, ie when the mouse is used to 'capture' an item or some text etc and move it around the screen to a new location.
OnEntry Action to be taken when the mouse cursor enters the area occupied by the object, usually transfering focus to that object. This might include changes in the appearance of the object such as highlighting or raising the border.
OnExit Action to be taken when the mouse moves out of the area of the object, usually transferring focus out of the object.
OnKeyPress Action to be taken for any key-press. Subtly different from OnKeyDown, which simply responds to a key being down, whether or not it was already down when focus was given to this control. OnKeyPress requires that a key becomes pressed while focus is in this control.
OnKeyDown Action to be taken if a key is down while focus is in this control. Subtly different from OnKeyPress - for example the key might already have been down when focus entered this control, whereas OnKeyPress requires the key to become pressed while focus is in the control.
On Key Up Action to be taken if a key is up (ie not pressed) while focus is in this control.
OnMouseMove On Mouse Down - Action to be taken if the mouse cursor moves while focus is in this control.
OnMouseDown Action to be taken if the mouse button is down while focus is in this control.
OnMouseUp Action to be taken if the mouse button is up while the cursor is over this control. Implies that the mouse button was previously down and has been released. The case where the cursor enters the control but the mouse button has not yet been pressed is covered by OnEntry or OnMouseEnter.
OnResize Action to be taken when the control is resized. Might include re-alignment of text or selection of a different font size etc.

Comment utiliser les Menus

Trucs et astuces pour l'ajout de Menus dans vos Fiches.

TMainMenu is the Main Menu that appears at the top of most forms; form designers can customise by choosing various menu items. TPopupMenu is a menu window that pops up with pertinent, usually context-sensitive, details and choices when the right mouse button is clicked near a control

Main Menu is a non-visible component : that is, if the icon is selected from the Component Palette and placed on the Form, it will not appear at Run-time. Instead, a Menu bar with a structure defined by the Menu Editor will appear. Popup menus, placed on the form by selecting the icon from the Component Palette, do not appear at all unless the right mouse button is clicked on a control that owns such a menu.

To see the Menu Editor, right-click on the Main Menu or Popup Menu icon on your Form. A pop-up box appears, that invites you to enter items into the Menu bar.

An Edit box is displayed, containing a Button labelled New Item1. If you right-click on that box, a pop-up menu is displayed that allows you to add a new item before or after (along the same level) or create a sub-menu with the opportunity to add further items below (or above) the new item in a downward column.

Any or all of the MenuItems that you add can be configured using the Object Inspector.

At the least you should give each item a Caption which will appear on the Menu Bar (you may also wish to give it a more meaningful Name). The caption should indicate the activity to be selected, such as "File Open" or "Close", "Run" or "Quit"

If you want a particular letter in the Caption to be associated with a shortcut key, that letter should be preceded by an ampersand. The Menu item at run-time will appear with the shortcut letter underlined, and hitting that letter key will have the same effect as selecting the menu item. Alternatively you can choose a shortcut key sequence (such as Ctrl+C for Copy or Ctrl+V for Paste - the standard Keyboard shortcuts) with the ShortCut property of the MenuItem.

It is often helpful to use the Menu controls in conjuction with an ActionList which contains a series of standard or customised Actions. Menu Items can be linked in the Object Inspector to Actions on the list, and the same actions can be linked to Buttons, ToolBar Buttons, SpeedButtons etc. It is obviously economic of effort to re-use the same code to respond to the various events, rather than writing separate OnClick event handlers for each individual control.

By default a number of standard actions is pre-loaded from StdActns or, if DataAware controls are being used, from DBActns, and these can be chosen using the ActionList editor which appears when you right-click on the ActionList icon on the Form Designer.

Le débogueur

Reste encore à écrire.

voir également category: IDE Window - Debug

Les fichiers de Lazarus

   (Thanks to Kevin Whitefoot.)
   (Additions by Giuseppe Ridinò, User:Kirkpatc and Tom Lisjac)

Lorsque vous enregistrez, vous sauvez en réalité deux fichiers :

  xxx.pas et yyy.lpr 

(En fait en vous enregistrez plus que ça, mais ces deux-là sont les seuls auxquels 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 attribuera automatiquement à l'unité (dans le code source) le nom du fichier d'unité, et au programme, le nom du fichier de projet (sinon, le compilateur pourrait ne pas retrouver l'unité quand le fichier de projet y fera référence). Bien sûr, pour être cohérent, il change toute les occurrences de Unit1 en xxx.

Par conséquent, si vous enregistrez un fichier appelé encore, encore.pas et encore.lpr, la compilation échouera car les noms de l'unité et du programme sont les mêmes ce qui entraînera une erreur.

Les fichiers sont donc :

e:/lazarus/kj/lazhello

total 4740  free 76500
-rwxrwxrwx   1 kjwh     root  4618697 Mar 24 11:19 encore.exe
-rw-rw-rw-   1 kjwh     root     3002 Mar 24 11:21 encore.lpi
-rw-rw-rw-   1 kjwh     root      190 Mar 24 11:18 encore.lpr
-rw-rw-rw-   1 kjwh     root      506 Mar 24 11:08 encoreu.lfm
-rw-rw-rw-   1 kjwh     root      679 Mar 24 11:08 encoreu.lrs
-rw-rw-rw-   1 kjwh     root      677 Mar 24 11:08 encoreu.pas
-rw-rw-rw-   1 kjwh     root     2124 Mar 24 11:08 encoreu.ppu
-rwxrwxrwx   1 kjwh     root      335 Mar 24 11:07 ppas.bat

Note : il y a plus de fichiers que les deux que j'ai enregistrés.

Ci-dessous un bref commentaire sur chacun des fichiers :

encore.exe : l'exécutable du programme. Win32 ajoute l'extension .exe, mais pas Linux. Ce fichier sera très gros sous Linux à 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 substantielle la taille de l'exécutable.

encore.lpi : c'est le fichier principal d'un projet Lazarus (Lazarus Project Information) ; l'équivalent Delphi du fichier .dpr. Il est enregistré dans un dialecte XML et contient des instructions concernant toutes les bibliothèques et unités requises pour la compilation de l'exécutable.

encore.lpr : c'est le fichier source principal du programme ou fichier maître. En dépit du fait qu'il ait 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écessaires. Veuillez noter que le nom du programme et celui du fichier n'ont pas besoin d'être identiques. Ce fichier est habituellement plutôt petit, ne comportant que quelques assertions permettant d'initialiser et construire les fiches, et démarrer et terminer l'application. Le gros du travail est effectué dans les fichiers sources des unités, dont l'extension est '.pas'.

encoreu.lfm : c'est ici que Lazarus stocke les paramètres de la fiche (position, taille...), sous forme compréhensible. C'est le reflet des propriétés de divers composants, telles qu'elles apparaissent dans l'Inspecteur d'objet. Chaque description d'objet débute par une ligne :

object xxxx 
  suit une liste de propriétés y compris les objets encapsulés ou les sous-objets) puis la ligne
end

Lazarus utilise ce fichier pour générer la ressource incluse dans la section d'initialisation de l'unité encoreu.pas. Les fichiers .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....

encore.lrs : c'est le fichier de ressource qui contient les instructions permettant au programme de construire la fiche. Si vous regardez le fichier de l'unité principale, vous verrez dans la section d'initialisation la ligne

{$i againu.lrs}

qui commande au programme de charger le fichier de ressources. Notez que ce n'est pas un fichier de ressources Windows.

encoreu.pas : ce fichier d'unité contient votre code correspondant à cette fiche. C'est habituellement le seul fichier que le développeur a besoin d'éditer ou inspecter. Il contient tout le code spécifiquement ajouté par le développeur (en particulier, les 'event handlers').

encore.ppu : l'unité compilée. Elle est liée à l'exécutable, ainsi les autres unités citées dans la section Uses.

ppas.bat : c'est un simple script qui lie (link) le programme pour produire l'exécutable. Si la compilation réussit, il est effacé par le compilateur.

Contributeurs originaux et changements

Cette page a été importée de epikwiki.

  • Created initial page and template. T. Lisjac - 11/04/2003 VlxAdmin
  • 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
  • Per above, moved Chris's writeup to the main body of the tutorial VlxAdmin
  • Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 User:Kirkpatc
  • Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 User:Kirkpatc
  • Added screenshots and revised some of the page formatting VlxAdmin 3/25/2004
  • 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
  • Formatted, added credits and comments. Removed original notes. VlxAdmin 3/26/2004
  • More material added to Editor section of tutorial. 26 Mar 2004 User:Kirkpatc
  • 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
  • Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 User:Kirkpatc
  • Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 User:Kirkpatc
  • Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 User:Kirkpatc
  • Added some more to the description of the Editor Main Menu. 18 Apr 2004 User:Kirkpatc
  • Added section on Environment sub-menu. 19 Apr 2004 User:Kirkpatc
  • Added section on Components sub-menu. 4 May 2004 User:Kirkpatc
  • Adding Tools sub-menu description (incomplete). 7 May 2004 User:Kirkpatc
  • Added some screenshots to Menu descriptions. 9 May 2004 User:Kirkpatc
  • Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 User:Kirkpatc
  • More additions to Tools sub-menu. 19 May 2004 User:Kirkpatc
  • Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 User:Kirkpatc
  • Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 User:Kirkpatc
  • 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
  • Expanding on the Components Palette. 5 June 2004 User:Kirkpatc
  • Added a lot to the DialogExamples page. 10 June 2004 User:Kirkpatc
  • 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
  • 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
  • Added page for Common Controls (linked to Component Palette). 16 June 2004 User:Kirkpatc
  • Added MaskEdit page (linked to Component Palette). 17 June 2004 User:Kirkpatc
  • Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 User:Kirkpatc
  • Edited MainMenu component description page. 23 June 2004 User:Kirkpatc
  • Some additions to Common Controls. 28 June 2004 User:Kirkpatc
  • A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 User:Kirkpatc
  • Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July User:Kirkpatc
  • Added FormsTxt, component description page for Component Palette. 20 July 2004 User:Kirkpatc
  • Some corrections to ConsoleModePascal. 21 July 2004 User:Kirkpatc
  • Some small changes to ComponentPalette. 22 July 2004 User:Kirkpatc