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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Créer un composant graphique [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Créer un composant graphique
    Bonjour à toutes et à tous,

    Voilà, ça fait pas mal de temps que n'ai plus pratiqué Lazarus et, j'ai du mal à m'y remettre.

    Je voudrais créer un bouton avec une forme spéciale (j'essaie avec une simple ellipse pour l'instant). Le code qui suit s'appuie sur un code que j'avais créé il y a longtemps et qui lui fonctionne. Mais ici, rien n'apparaît, que j'inclue ou non la procédure "paint" (à mon sens, je ne devrais pas avoir à l'appeler) dans la création de mon bouton.

    Pouvez-vous me dire ce qui cloche, ce qui manque, ...

    Merci de votre aide.

    Pierre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    unit FntrBase;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, CompPlus;
     
    type
     
      TBoutonArrondi = class(TGraphicControl)
      private
        FPen: TPen;
        FBrush: TBrush;
      protected
        procedure Paint; override;
      public
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
      published
        property Brush: TBrush read FBrush write FBrush;
        property Pen: TPen read FPen write FPen;
     end;
     
      { TForm1 }
     
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
     
      public
        MonBouton: TBoutonArrondi;
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.lfm}
     
    { TForm1 }
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      MonBouton:= TBoutonArrondi.Create(Self);
    end;
     
    constructor TBoutonArrondi.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      Parent:= TWinControl(AOwner);
      FPen:= TPen.Create;
      FBrush:= TBrush.Create;
      Paint;
    end;
     
    destructor TBoutonArrondi.Destroy;
    begin
      FPen.Free;
      FBrush.Free;
      inherited Destroy;
    end;
     
    procedure TBoutonArrondi.Paint;
    begin
      with Canvas do
      begin
        Pen:= FPen;
        Brush:= FBrush;
      end;
      Pen.Color:= clBlack;
      Brush.Style:= bsSolid;
      Brush.Color:= clRed;
      Canvas.Ellipse(20, 20, 100, 100);
    end;
     
    end.

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Peut-être lui donner une taille à cet élément

    Et pour le dessin : Ellipse(0, 0, Width-1, Height-1)

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Merci beaucoup "Andnotor". Ça va nettement mieux

    C'est malheureusement pas la première fois que je fais cet oubli !

    Cordialement.

    Pierre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Peut-on créer des composants graphiques non rectangulaires?
    Par patdu26 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 13/05/2021, 10h03
  2. Créer des composants graphiques lors d'un clique sur un bouton
    Par a.collery dans le forum Composants graphiques
    Réponses: 15
    Dernier message: 04/07/2016, 15h05
  3. Réponses: 3
    Dernier message: 21/10/2010, 15h58
  4. Réponses: 4
    Dernier message: 19/10/2010, 20h38
  5. Comment créer un composant graphique???
    Par Mickey.jet dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 29/03/2006, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo