Un meilleur job mieux payé ?

Deviens chef de projet, développeur, ingénieur, informaticien

Mets à jour ton profil pro

ça m'intéresse

Unité de type TForm

Voici un petit tutoriel sans prétention pour aider les nouveaux venus à Lazarus à démarrer d'un bon pied dans cet environnement.
Nous allons regarder comment Lazarus crée la fiche principale d'une application. Avec très un petit exemple, on va voir comment Lazarus la modifie quand on ajoute des composants sur la fiche et comment utiliser les évènements.

Commentez Donner une note à l'article (5)

Article lu   fois.

Les deux auteurs

Profil Pro

Profil Pro

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Nouveau projet application

Voici comment se présente l'unité de base :

 
Sélectionnez

 
unit Unit1;
 
 
 
{$mode objfpc}{$H+}
 
 
 

En-tête d'unité

Indique le nom (par défaut Unit1). Le fichier source s'appellera "Nom".pas, le fichier compilé "Nom".ppu.

Conseil : ne pas éditer cette ligne, les noms seront correctement mis à jour par la commande.
 
Sélectionnez

interface
 
uses
  Classes, SysUtils, 
  LResources, Forms, Controls, 
  Graphics, Dialogs; 
 
type
  TForm1 = class(TForm)
    private {private declarations}
    public  {public declarations}
  end;
 
var  Form1: TForm1;
Section interface


La clause uses liste les unités qui sont utilisées. Chaque fois qu'un composant est glissé sur la fiche, la liste des unités est complétée. On n'a pas besoin de rajouter 'à la main' que les composants non-visuels, tels les autres unités de l'application et des unités spécialisées comme math, synaser etc.


Suit la déclaration des types.




Et enfin les variables et les constantes accessibles au client.
 
Sélectionnez

 
 
 
 
implementation
 
 
 
 
Section implémentation

Sont définies ici toutes les procédures et fonctions de la section interface. Suivent les déclarations des types, variables, constantes, procédures et fonctions inaccessibles aux clients (privées) et leur définition.
Conseil : veillez à définir tous les objets avant de tenter de les utiliser. Si la procédure Proc1 utilise la procédure Proc2, il faut déclarer Proc2 avant Proc1.
 
Sélectionnez

initialization
 
 
 
{$I unit1.lrs}
 
 
Section initialisation (facultative)

Permet d'initialiser des variables au démarrage du programme. Par exemple :

Debut := true;
DecimalSeparator := '.';
 
Sélectionnez

end.
Toujours la dernière ligne de l'unité (Notez le « . »).

Modification de la fiche

On dépose maintenant trois Label(s) côte à côte sur la fiche (LbHeure, LbMinute, LbSeconde) et un Timer. Mettons la propriété Caption de la Fiche à « Il est exactement ». Nous obtenons ceci :

Image non disponible

Le Timer étant sélectionné, dans l'inspecteur d'objet, onglet événements, double-clic sur le champs vide « OnTimer ».
La Form étant sélectionnée, dans l'inspecteur d'objet, onglet événements, double-clic sur le champs vide « OnCreate ».

Enregistrer sous :
Unit1 --> Afficheur
Project1 --> Horloge

Voici maintenant à quoi doit ressembler notre unité :

 
Sélectionnez

unit Afficheur;
 
 
{$mode objfpc}{$H+}
 
 
 
En-tête d'unité

Le nom a été modifié. De même, le fichier source s'appelle Afficheur.pas, le fichier compilé Afficheur.ppu.
 
Sélectionnez

interface
 
uses
  Classes, SysUtils, LResources,
  Forms, Controls, Graphics, 
  Dialogs, StdCtrls, ExtCtrls;
 
type 
 
 TForm1 = class(TForm)
 
  LbHeure: TLabel;
  LbMinute: TLabel;
  LbSeconde: TLabel;
 
  Timer: TTimer;
 
  procedure FormCreate(Sender: TObject);
  procedure TimerTimer(Sender: TObject);
 
  private  {private declarations}
 
  public {public declarations}
 
 end;
 
var TForm1:TForm1;
Section interface


Dans la clause uses, la liste des unités a été complétée par deux nouvelles références : StdCtrls pour TLabel et ExtCtrls pour TTimer.




La Classe TForm1 est définie ici,


avec ses labels,




son Timer,

et la déclaration des procédures de gestion des événements.









 
Sélectionnez

implementation { TForm1 }
 
procedure TForm1.TimerTimer(Sender: TObject);
begin end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin end;
 
 
Section implémentation






 
Sélectionnez

initialization
 
{$I Afficheur.lrs}
 
end.
Section initialisation



Le code

Il ne reste plus que très peu de choses à écrire :

  • Définir les variables dont nous aurons besoin au début de la section implémentation :
 
Sélectionnez

var
  heure,minute,seconde : byte;
  • Une fonction pour formater les affichages :
 
Sélectionnez

function Intto2Digits(X: byte): string;
var S: string;
begin
   S := '0'+InttoStr(X);
   result := copy(S,length(S)-1,2)
end;
  • La procedure OnCreate de TForm1 entre les begin et end; de la déclaration :
 
Sélectionnez

procedure TForm1.FormCreate(Sender: TObject);
begin
     LbSeconde.caption := Intto2Digits(seconde);
     LbMinute.caption := Intto2Digits(minute)+':';
     LbHeure.caption := Intto2Digits(Heure)+':';
end;
  • La procédure OnTimer :
 
Sélectionnez

procedure TForm1.TimerTimer(Sender: TObject);
begin
   inc(seconde,1);
   if seconde = 60 then
      begin
      seconde := 0;
      inc (minute,1);
      if minute = 60 then
        begin
        minute := 0;
        inc(heure,1);
        if heure = 24 then
          heure := 0;
        LbHeure.caption := Intto2Digits(Heure)+':';
        end;
      LbMinute.caption := Intto2Digits(minute)+':';
      end;
   LbSeconde.caption := Intto2Digits(seconde);
end;
  • Et, si vous ne voulez pas vous lever la nuit pour faire démarrer votre horloge, dans la partie initialisation :
 
Sélectionnez

initialization
  {$I afficheur.lrs}
  Heure := 17;
  Minute := 30;
  Seconde := 0;
end.

Conclusion

Vous en savez suffisamment pour commencer à développer.

A vos claviers.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2008-2010 parhelie et chris37. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.