IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 un très 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 d'ajouter 'à la main' que les composants non visuels, tels que 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 Labels 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'objets, onglet événements, double-clic sur le champ vide « OnTimer ».
La Form étant sélectionnée, dans l'inspecteur d'objets, onglet événements, double-clic sur le champ 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;
 
procédure 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 procédure 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.

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