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

Composants VCL Delphi Discussion :

Bouton de Delphi


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Par défaut Bouton de Delphi
    Bonjour,
    Comment je peux avoir un bouton ompletement blanc avec des bordures noir ?
    merçi.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 093
    Par défaut
    Donc un Bouton non Standard Windows ...
    Soit tu fais ta propre classe TColorButton, je l'ai fait à mes débuts, bcp de violation d'accès pour pas grand chose
    Soit tu trouves sur le net, une classe qui le fait déjà, ...
    Soit, un pauvre TPanel, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    object PanelWhiteButton: TPanel
      Left = 10
      Top = 10
      Width = 185
      Height = 41
      BorderStyle = bsSingle
      Caption = 'Bouton Blanc'
      Color = clWhite
      Ctl3D = False
      ParentCtl3D = False
      TabOrder = 9
    end
    PS: Colle directement le Texte, ci dessus, dans l'IDE Delphi avec la fenêtre visible, cela insérera le controle ...

    PS2: Pour l'effet appuyer, faut juste mettre Ctl3D à True dans le OnMouseDown, et remettre Ctl3D à False dans le OnMouseUp (petits effets de bord possible, si l'on bouge la souris sans relacher le click)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par défaut
    c'est amusant de faire de l'objet. Pourquoi bouder le plaisir lol...
    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls,Extctrls;
     
    type Tpaintbox32=class(TPaintbox)
    public
    buffer:Tbitmap;
    constructor create(aowner:Tcomponent);override;
    destructor destroy;override;
    end;
     
    type Tmonbutton=class(Tbutton)
    public
    dessin:Tpaintbox32;
    procedure projette;
    procedure dim(w,h,x,y:integer);
    constructor create(aowner:Tcomponent);override;
    destructor destroy;override;
    end;
     
    type
      TForm1 = class(TForm)
        Timer1: TTimer;
        PaintBox1: TPaintBox;
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure Timer1Timer(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Déclarations privées }
        dx:integer;
        monbutton:Tmonbutton;
        procedure dessiner(sender:Tobject);
        procedure monclick(sender:Tobject);
     
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    constructor Tpaintbox32.create(aowner:Tcomponent);
    begin
    inherited;
    buffer:=Tbitmap.Create;
    end;
     
    destructor TPaintbox32.Destroy;
    begin
    buffer.Free;
    inherited;
    end;
     
    constructor Tmonbutton.create(aowner:Tcomponent);
    begin
    inherited;
    dessin:=Tpaintbox32.Create(self);
    dessin.parent:=self;
    dessin.Align:=alclient;
    end;
     
    procedure Tmonbutton.dim(w,h,x,y:integer);
    begin
    width:=w;
    height:=h;
    left:=x;
    top:=y;
    dessin.buffer.Width:=clientwidth;
    dessin.buffer.Height:=clientheight;
    end;
     
    destructor Tmonbutton.Destroy;
    begin
    dessin.Destroy;
    inherited;
    end;
     
     
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    monbutton:=Tmonbutton.Create(self);
    monbutton.Parent:=self;
    monbutton.dim(250,100,10,10);
    monbutton.dessin.OnPaint:=dessiner;
    monbutton.dessin.OnClick:=monclick;
    Timer1.Interval:=20;
    end;
     
    procedure Tform1.dessiner(sender:Tobject);
    var text:string;
    begin
    inc(dx);
         with monbutton.dessin.buffer.canvas do
         begin
         brush.Color:=clblack;
         fillrect(monbutton.clientrect);
         brush.Color:=clcream;
         fillrect(rect(10,10,240,90));
         brush.style:=bsclear;
         Font.size:=25;
         if dx=240 then dx:=10;
         text:='pressez le bouton';
         textout(dx,50-textheight(text) div 2,text);
         end;
    monbutton.projette;
    end;
     
    procedure Tmonbutton.projette;
    begin
    dessin.Canvas.Draw(0,0,dessin.buffer);
    end;
     
    procedure Tform1.monclick(sender:Tobject);
    begin
    caption:='ça marche';
    end;
     
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    dessiner(nil);
    end;
     
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    monbutton.Destroy;
    end;
     
    end.
    tu peux même ajouter une animation... A toi d'améliorer...
    j'ai pris un Tpaintbox, j'ai intégré un bitmap et j'ai intégré une instance de ma nouvelle classe dans un Tbutton.

  4. #4
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    La solution de ShaiLeTroll est astucieuse. Par contre, ajouter BevelOuter à None, si on ne veux pas avoir l'effet bouton en relief.

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

Discussions similaires

  1. Impression à partir d'un bouton sous Delphi
    Par jack2009 dans le forum Débuter
    Réponses: 2
    Dernier message: 06/09/2009, 22h58
  2. Réponses: 5
    Dernier message: 25/10/2006, 11h44
  3. bouton parcourir sous delphi
    Par scrat88 dans le forum Delphi
    Réponses: 7
    Dernier message: 09/10/2006, 12h33
  4. Boutons delphi
    Par Raylemon dans le forum Composants VCL
    Réponses: 6
    Dernier message: 12/07/2004, 17h42

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