Tspeedbutton type va-et-vient

Description

Le Composant TDoubleSpeed est TSpeedButton type va-et-vient..
En cliquant dessus le Caption du bouton passe de Caption à caption2.
Sa propriété Glyph doit être constituée d'une image composée de 4 images
16*16 (=64*16). Seules la 1ère et dernière (4ème) image sont prises en
considération. On passe donc au Click de la 1ère image(Caption) à la 4ème
image(Caption2).

Source / Exemple :


unit DoubleSpeed;   // Composant créé par Guy ® 2007 - paounet@free.fr
interface
uses SysUtils,Classes,Controls,Buttons,Graphics,ExtCtrls;
type
  TCaption=String; // Propriété Caption2 rajoutée au Composant
  TAbout=String; // Propriété About rajoutée au composant
  THint=String; // Propriété Hint2 rajoutée au composant
  TDoubleSpeed = class(TSpeedButton)
  private { Déclarations privées }
    FCaption:TCaption;FAbout:TAbout;FHint:THint; // Variables utilisées
  //Surcharge de la méthode OnClick du composant DoubleSpeed
  protected { Déclarations protégées }
  public { Déclarations publiques }
    Constructor Create (Aowner:Tcomponent);Override;
    Destructor Destroy;override;
  published { Déclarations publiées }
      // Propriété ABout rajoutée en lecture seule
    Property Hint;
    Property Tag;
    Property Font;
    Property About:TAbout read FAbout;
    Property Caption2:TCaption read FCaption write FCaption;
    Property Hint2:THint read FHint write FHint;
    Procedure Click;override; //Surchage du OnClick
end;
procedure Register;
implementation
// Création Composant TDoubleSpeed
constructor TDoubleSpeed.Create(Aowner:TComponent);
begin
  inherited Create(Aowner);FAbout:='@ Guy Bidi 2007';
  AllowAllUp:=True;GroupIndex:=4;ShowHint:=True;
end;
Procedure TDoubleSpeed.Click; // Surchage du OnClick de DoubleSpeed
Var T1,T2:String;
Begin
  Tag:=Not(Tag); // Changement du Tag(0,-1) au Click du composant
  T1:=Caption;Caption:=Caption2;Caption2:=T1;
  T2:=Hint;Hint:=Hint2;Hint2:=T2;
  If Assigned(OnClick) then OnClick(Self); //Réactive le Click Normal
End;
destructor TDoubleSpeed.Destroy; // Destruction du Composant
begin
  inherited Destroy;
end;
procedure Register; // Enregistrement du composant dans la Palette Guy
begin
  RegisterComponents('Guy',[TDoubleSpeed]);
end;
end.

Conclusion :


Le passage de l'un à l'autre se fait par le tag du Bouton ( Tag=0 et Not(Tag)=-1)
Dans le DoubleSpeed.OnClick(Sender:TObject) il ne vous reste quà
incorporer le reste de code pour chaque état... dans votre feuille
--------------------------------------------------------------
if Tag=0 then Begin { Ici le code pour le Click Marche } End
Else Begin { { Ici le code pour le Click Arrêt } End;
-------------------------------------------------------------
Un exemple vous est donnée dans le Zip (Exemple.exe)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.