Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Surcharger le OnChange d'un compo [ Divers / Aide et documentation ] (JulioDelphi)

vendredi 29 août 2008 à 10:14:48 | Surcharger le OnChange d'un compo

JulioDelphi

Membre Club Administrateur CodeS-SourceS
Hello !

Je suis en train de créer un compo descendant de TTrackBar.
Je souhaite que quand la position du Trackbar change, une action de mon choix s'execute.
Jusque là, j'y arrive en faisant :
(dans le Create du compo)
OnChange:= ProcedureOnChangePersonelle; // qui est elle une TNotifyEvent
MAIS bien entendu, si l'utilisateur mets sa propre procedure dans l'inspecteur d'objet ... ça "écrase" la mienne ...
Je voudrais donc faire en sorte que le OnChange du Trackbar exécute l'action désirée codée DANS le compo MAIS aussi la procédure personnelle de l'utilisateur.
Me suis je fait comprendre ?
J'ai essayé avec :
published
property OnChange: TNotifyEvent read FOnchange write FOnChange; override;

et d'autres trucs du genre mais rien a faire :]

ha et aussi, j'ai une
property TCheckbox: TCheckbox read FCheckBox write SetCheckbox;
et je fait un
SetCheckBox ...
if Assigned(FCheckBox) then FCheckbox.OnClick:= ProcedureOnClickPerso;

donc meme probleme, si l'utilisateur désire mettre une procedure sur le click de la checkbox, ça écrase la mienne alors que je voudrais que ça fasse les deux !

Merci à ceux qui sauront m'aiguiller !

vendredi 29 août 2008 à 10:55:45 | Re : Surcharger le OnChange d'un compo

simonpelloquin

Salut,

Ci dessous un extrait de dérivation de composant sur lequel j'ai eu besoin de "forcer" ma gestion du OnCloseUp. Peut être que ça t'aidera...C'est adapté d'un code que j'ai trouvé sur le net, et malheureusement, bien que je comprenne à peu près ce qu'il fait, et qu'il fonctionne très bien, je ne peux pas te dire précisemment le fonctionnement...

unit UDateTimePicker;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, menus,
  StdCtrls, checklst, ComCtrls, jclDateTime, dialogs, Commctrl;

type
    TDateTimePicker = Class(ComCtrls.TDateTimePicker)
    private
          FLinkedDTP : TDateTimePicker;
          FOnCloseUp : TNotifyEvent;
          procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
    public
          Constructor Create (Aowner: Tcomponent); override;
          Destructor Destroy;
    published
          function QRYDate : string;
          function StrDate : string;
          function WeekNo : Integer;
          property LinkedDTP : TDateTimePicker Read FLinkedDTP Write FLinkedDTP;
          property OnCloseUp: TNotifyEvent read FOnCloseUp write FOnCloseUp;
    end;

implementation

procedure TDateTimePicker.CNNotify(var Message: TWMNotify);
begin
     inherited;
     with Message, NMHdr^ do begin
          Result := 0;
          case code of
               DTN_CLOSEUP : begin
                                  // Code Perso
                                  if Assigned(FOnCloseUp) then FOnCloseUp(Self);
                             end;
          End;
     End;
End;

vendredi 29 août 2008 à 11:16:20 | Re : Surcharger le OnChange d'un compo

cirec

Membre Club Administrateur CodeS-SourceS
Salut,

avant d'affecter ta procedure au OnChange il faut la mémoriser !

dans le OnCreate:
FOldOnChange := OnChange;
OnChange := MaProcedureOnChange;

et à la fin (par principe) tu la restitues lors de la destruction du composant:
OnChange := FOldOnChange;
FOldOnChange := Nil;

et dans ta procedure "MaProcedureOnChange"
if Assigned(FOldOnChange) then
  FOldOnChange(Sender);
et en fonction de tes besoins tu mets ton code avant ou après l'appel à FOldOnChange.

 
@+
Cirec


vendredi 29 août 2008 à 11:26:03 | Re : Surcharger le OnChange d'un compo

JulioDelphi

Membre Club Administrateur CodeS-SourceS
ouep ouep pas mal, mais le code de retour DT... est bien pour du DateTime, il me faudrait le code de retour OU ALORS ce ne sera pas ce CNNotify :/
Merci je regarde ça

vendredi 29 août 2008 à 11:27:34 | Re : Surcharger le OnChange d'un compo

JulioDelphi

Membre Club Administrateur CodeS-SourceS
ha cirec a répondu entre deux, ma réponse précédente est pour simon !

vendredi 29 août 2008 à 11:42:28 | Re : Surcharger le OnChange d'un compo

JulioDelphi

Membre Club Administrateur CodeS-SourceS
Ca ne fonctionne pas Cirec :/

vendredi 29 août 2008 à 11:46:15 | Re : Surcharger le OnChange d'un compo

cirec

Membre Club Administrateur CodeS-SourceS
ben ça devrait je l'utilise régulièrement ... !!!

c'est quoi le problème exactement ?

 
@+
Cirec


vendredi 29 août 2008 à 11:59:23 | Re : Surcharger le OnChange d'un compo

JulioDelphi

Membre Club Administrateur CodeS-SourceS
Ni mon Onchange ni le Onchange de l'utilisateur ne s'executent.

Voila des morceaux du code :
Private
    FOnChange, FOldOnChange: TNotifyEvent;
...
Published
    property TLabel: TLabel read FLabel write SetLabel;
    property OnChange : TNotifyEvent read FOnChange write FOnChange;
...
OnCreate
  FOldOnChange:= OnChange;
  OnChange:= ProcOnChange;
...
procedure ...ProcOnChange(Sender: TObject);
begin
  if Assigned(FLabel) then
    FLabel.Caption:= TimeToStr(Now);
  if Assigned(FOldOnChange) then
    FOldOnChange(self);
end;


Avant je n'avais pas mis les lignes rouge et le label changeait de caption.
Maintenant, ni l'un ni l'autre

vendredi 29 août 2008 à 12:19:38 | Re : Surcharger le OnChange d'un compo

cirec

Membre Club Administrateur CodeS-SourceS
oui tu as raison je viens de faire un teste ... et effectivement avec le trackbar ça ne fonctionne pas

par contre chez moi j'en ai un sur les deux qui fonctionne ^^

mais je crois savoir pourquoi ... regarde le code du TTrackBar de la VCL à "CNHScroll" & "CNVScroll"

il faut les surgharger et là ça fonctionnera

 
@+
Cirec


vendredi 29 août 2008 à 12:27:24 | Re : Surcharger le OnChange d'un compo

cirec

Membre Club Administrateur CodeS-SourceS
je confirme ... ça fonctionne très bien

si tu n'y arrivais pas fais moi signe

 
@+
Cirec



1 2 3

Cette discussion est classé dans : utilisateur, compo, onchange, surcharger, fcheckbox


Répondre à ce message

Sujets en rapport avec ce message

Tester la presence d'un utilisateur sur son pc [ par coolz ] Bonjours à tous,Moi j'aimerais savoir comment en delphi(si c'est possible)savoir si quelqu'un est connecter sur mon pc est utilise des fichiers (c'est 2 questions importantes [ par Youyou0214 ] Salut touts le monde,je voudrais savoir comment quand on enlève la bordure d'une form afin que le logiciels ressemble un peut moin au style windows, o Registre : récupère l'ensemble des clés d'une clé [ par Bruto ] Dans mon programme, l'utilisateur choisit un mot par exemple aléatoire et je crée une clé portant le même nom dans un clé spécifique.Il y a donc possi Message du système [ par Bruto ] J'ai consulté le tutoriel sur le message dans la rubrique Tutoriaux mais il ne me montre pas comment capter un message du système.Avec la façon citée, Acces compte pop [ par Kundun2 ] Bonjour,J'ai un problème !!Lorsque je me connecte a un compte pop, ca marche. Si l'utilisateur se trompe lors de l'entrée du mot de passe, le prog pla création de base [ par lnicos ] Lu, j'aimerais faire un programme dans lekel l'utilisateur crérait un fichier où le programme enregistrerait les cd de cette utilisateur.J'aimerais me bdd définie par l'utilisateur [ par lnicos ] Salut, j'aimerais un programme de base de données, mais je ne sais pas si je dois utiliser ado, dbexpress ou autre.J'aimerais que l'utilisateur puisse cherche source avec compo IBbackup et IB restore [ par lnicos ] J'aimerais savoir si qqn pourrais me faire un source dans lequel il arriverait à faire une sauvegarde de sa base de donnée avec compos IBbackup et IBr Enregistrment d'utilisateur pour mon prog... [ par Youyou0214 ] Salut tout le monde! Je cree un prog ou l'utilisateur doit s'enregistrer pour utiliser le logiciel. Pour commencer je fais envoyer les infos de l'util problème avec OLE et word [ par kurt ] déjà, j'aimerais savoir si il n'y a pas un moyen de contourner l'utilisation du composant OLe, car l'execution de word est très longue.-Pour que mon d


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.