begin process at 2010 03 19 11:46:08
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Composants

 > TSPEEDBUTTON TYPE VA-ET-VIENT

TSPEEDBUTTON TYPE VA-ET-VIENT


 Information sur la source

Note :
Aucune note
Catégorie :Composants Classé sous :vaetvient, doublespeed, tag, speedbutton Niveau :Débutant Date de création :11/08/2007 Vu / téléchargé :2 653 / 325

Auteur : Paounet

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 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

  • 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.
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)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture COMPOSANT LABEL3D TOUTE VERSION DE DELPHI.
Source avec Zip Source avec une capture COMPOSANT GRILLE AVEC NOUVELLES PROPRIÉTÉS
Source avec Zip CODES-SOURCES DU TUTORIEL PASSWORD ET GET PASSORD
Source avec Zip Source avec une capture LES CODES DU TUTORIEL SUR LA PROTECTION DES LOGICIELS PAR FI...
Source avec Zip Source avec une capture COMPOSANT TPASSWORD COMPOSITE GÉNÉRANT UN MOT DE PASSE ET UN...

 Sources de la même categorie

Source avec Zip COMPOSANT THORLOGE par Michel34
Source avec Zip COMMANDS MANAGER - BESOIN DE COMMANDES DANS VOS PROGRAMMES T... par f0xi
Source avec Zip Source avec une capture COMPOSANT TZSIMAGE par ThWilliam
Source avec Zip Source avec une capture UTILISER LES COMPOSANTS PAR LEURS NUMÉROS par Dany3
Source avec Zip Source avec une capture TQGRID UN STRINGGRID AMÉLIORER. par yanb

 Sources en rapport avec celle ci

Source avec Zip COMPOSANT BOUTON TYPE VA-ET-VIENT POUR DATE ET HEURE AVEC FO... par Paounet
Source avec Zip Source avec une capture BOUTONS ENFONCÉS OU PAS, SÉLECTION MULTIPLE OUI-NON, SÉLECTI... par japee

Commentaires et avis

Commentaire de f0xi le 13/08/2007 02:23:33 administrateur CS

un peu leger ...
pas trés interressant ... (s'obtient aussi facilement en mode conception)

ne merite pas le niveau initié.

la propriété Hint2 doit etre de type String directement tout comme Hint.

tu n'indente toujours pas ton code.

tu ne devrais pas utiliser la propriété Tag pour le changement d'etat mais une variable privée de type boolean.

le gestionnaire OnClick ne doit pas etre appeler par la procedure Click surchargée ! il faut appeler la procedure Click de l'ancetre (TControl) qui elle se charge d'appeler le gestionnaire d'evenement de façon adequate. de plus les procedures et fonctions ne sont pas declarable en zone publiées ...

ce qui fait que ton composant devrait plus ressembler a cela :

(en version ameliorée sans limite de Caption et de Hint)...

type
  TMultiCapSpdBtn = class(TSpeedButton)
  private
    fCaptionsAndHints : TStrings;
    fStIndex          : integer;
    procedure SetStrings(Value : TStrings);
  protected
    procedure ChangeCaption; virtual;
    procedure DoCaptionsChange(Sender : TObject);
  public
    Constructor Create (AOwner:Tcomponent); Override;
    Destructor Destroy; Override;
    Procedure Click; override;
  published
    Property CaptionsAndHints : TStrings read fCaptionsAndHints write SetStrings;
  end;

constructor TMultiCapSpdBtn.Create(Aowner:TComponent);
begin
  inherited Create(Aowner);
  AllowAllUp := True;
  ShowHint   := True;
  fStIndex   := 0;
  fCaptionsAndHints := TStringList.Create;
  (fCaptionsAndHints as TStringList).OnChange := DoCaptionsChange;
end;

destructor TMultiCapSpdBtn.Destroy;
begin
  fCaptionsAndHints.Free;
  inherited Destroy;
end;

procedure TMultiCapSpdBtn.Click;
begin
  if fCaptionsAndHints.Count > 0 then
  begin
    fStIndex := (fStIndex + 1) mod fCaptionsAndHints.Count;
    ChangeCaption;
  end;
  Inherited Click;
end;

procedure TMultiCapSpdBtn.DoCaptionsChange(Sender: TObject);
begin
  ChangeCaption;
end;

procedure TMultiCapSpdBtn.SetStrings(Value: TStrings);
begin
  fCaptionsAndHints.Assign(Value);
end;

procedure TMultiCapSpdBtn.ChangeCaption;
var SeparatorPos : integer;
begin
  SeparatorPos := Pos('|',fCaptionsAndHints[fStIndex]);
  Caption := copy(fCaptionsAndHints[fStIndex], 1, SeparatorPos-1);
  if SeparatorPos <> 0 then
    Hint := copy(fCaptionsAndHints[fStIndex], SeparatorPos+1, Length(fCaptionsAndHints[fStIndex]) - SeparatorPos)
  else
    Hint := '';
end;

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Tag HTML avec edit ou richedit [ par sebrs1 ] Connaissez-vous un composant comme richedit ou edit qui execute les code html???merci d'avance@+Sebrs1 blevel-like sur un graphisme en 3 couleurs [ par damanix ] Bonjour, Je cherche à faire un blevel-like sur un graphisme - en 3 couleurs, mettons blanc, gris, noir, et à les remplacer respectivement par clBtnHig extraction meta tag [ par kinyo ] sltqui pourrait me dire comment faire pour extraire dans une page html les meta tags pour avoir la Capture des champs Raison sociale, adresse, numéro Enlever le relief dans les SpeedButton [ par darkduck ] Bonjour,dans ma form j'ai des speedbutton ayant la propriété flat:= true . Ces speedbutton ont des images à l'intérieur et j'aimerai savoir si c'est p SpeedButton [ par aaleex ] Salut à tous !J'aimerais mettre une image sur un SpeedButton, jusque là pas de problème. Mais j'aimerais savoir si il y à une propriété qui permet de Pb de glyph disabled invisible dans un speedbutton [ par gillig ] Jamais vu ça avant. J'ai un speedbutton tout con, avec un glyph tout con composé d'une seule image toute conne. Quand je fais speedButton.enabled := f probleme speedbutton sous xp [ par dk ] voila je suis un peu desespere car g coder un tout bo client chat (enfin pour moa) mais malheureusement ya un petit soucis: sous mon win2000pro les sp ID3 Tag V2 >> impossible d'ecrire ! [ par BabeDelphi ] bonjour a tous :)chui une tiote nouvelle mais je suis sur un beau projet que je posterai bientot ici meme.mais pour ce il me faut resoudre un soucis : Composant SpeedButton [ par doco ] bonjour.j'utilise des speedbuttons en transparent (flat:=true) , avec un glyph à 4 positions .L'état 'enfoncé' fait apparaitre un fond (clBtnFace) qua probleme canvas [ par damomospike ] bonjour à tous!voila j'ai donc une fentre normal avec un speedbutton dessus.je voudrais que lorsque j'appuie sur le speed button, des images misent da


Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales