Patalou
Messages postés15Date d'inscriptionvendredi 20 février 2004StatutMembreDernière intervention10 mai 2007 15 sept. 2004 à 07:55
Merci pour ton aide.
J'ai résolu mon problème qui était un peu plus compliqué et un peu différent car je désirais lancer une procédure du Parent de mon objet, j'ai donc fait une procédure intermédiaire dans l'objet qui lance celle du parent.
Car je pense que le problème provenait du fait qu'au moment de la compilation il ne connaissait pas son Parent encore car il est créé dynamiquement pendant l'execution et lié à son parent (lui aussi dynamique) dans le constructeur du parent.
Merci encore pour ton aide et pour ces codes fournis qui sont une bonne base pour apprendre et comprendre.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 14 sept. 2004 à 22:55
Patalou, tu peux affecter n'importe quelle méthode à un évènement donné, du moment que la signature est identique à celle de la méthode ciblée.
En clair, une méthode Click d'un objet est ainsi définie :
property onClick : TNotifyEvent;
Et TNotifyEvent est à son tour déclaré de la manière suivante :
TNotifyEvent = procedure(Sender: TObject) of object;
Delphi fait beaucoup pour nous faciliter l'écriture du code (avec une vitesse remarquable par rapport à d'autres environnements de développement), mais il faut encore parfois amorcer la complétion de code.
Si tu tapes les premières lettres après l'affectation et que tu appuies sur [CTRL]+[J], tu devrais voir apparaître les affectations possibles dans la liste déroulante.
Patalou
Messages postés15Date d'inscriptionvendredi 20 février 2004StatutMembreDernière intervention10 mai 2007 14 sept. 2004 à 16:38
Salut, cet exemple est très bien pour montrer comment ceci marche.
J'ai une question, tu fais
OnClick := PopItemClick;
donc tu associes une procédure quand on clique sur l'élément.
Je me suis inspiré de ce code et je désire faire de même
OnCLick mais il ne me propose que les var, const, type mais pas de procédure.
Est-ce moi qui n'est pas compris ou alors fais-je mal ?
(en gros chuis dans les choux).
Merci pour ta réponse.
osegouin
Messages postés13Date d'inscriptionvendredi 17 janvier 2003StatutMembreDernière intervention30 janvier 2010 22 avril 2004 à 11:35
Merci beaucoup
cela fonctionne sans probleme
et oui encore une nouvelle fonction de decouverte ;o)
Olive
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 21 avril 2004 à 22:47
C'est très simple. A la création de la fiche, il suffit de lire un fichier contenant toute les valeurs des propriétés du composant DbGrid1 :
procedure TForm1.FormCreate(Sender: TObject);
begin
if FileExists('Grid.opt') then
ReadComponentResFile('Grid.opt', DbGrid1);
Table1.Open;
//.. reste du code
end;
Et, avant de fermer la fiche, de sauvegarder les valeurs des prorpiétés publiées du composant :
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
WriteComponentResFile('grid.opt', DbGrid1);
end;
Il n'y a rien de plus à faire !
osegouin
Messages postés13Date d'inscriptionvendredi 17 janvier 2003StatutMembreDernière intervention30 janvier 2010 21 avril 2004 à 15:31
Bonjour
Merci de ton code, j'ai compris pas mal de chose sur les dbgrids.
juste un petit probleme comment sauvegarder le choix des colonnes de l'utilisateur , pour lors d'une future ouverture son choix soit de nouveau actif, sans avoir a tout refaire
merci encore
a+
Olivier
spocks50
Messages postés15Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention13 février 2009 17 janv. 2003 à 06:03
Hello ! Jai essayer ton Programme et ce message es apparu :You have received the following message:
Project xxxx raised exception class yyyyy with message 'zzzzzz'.
15 sept. 2004 à 07:55
J'ai résolu mon problème qui était un peu plus compliqué et un peu différent car je désirais lancer une procédure du Parent de mon objet, j'ai donc fait une procédure intermédiaire dans l'objet qui lance celle du parent.
Car je pense que le problème provenait du fait qu'au moment de la compilation il ne connaissait pas son Parent encore car il est créé dynamiquement pendant l'execution et lié à son parent (lui aussi dynamique) dans le constructeur du parent.
Merci encore pour ton aide et pour ces codes fournis qui sont une bonne base pour apprendre et comprendre.
14 sept. 2004 à 22:55
En clair, une méthode Click d'un objet est ainsi définie :
property onClick : TNotifyEvent;
Et TNotifyEvent est à son tour déclaré de la manière suivante :
TNotifyEvent = procedure(Sender: TObject) of object;
Delphi fait beaucoup pour nous faciliter l'écriture du code (avec une vitesse remarquable par rapport à d'autres environnements de développement), mais il faut encore parfois amorcer la complétion de code.
Si tu tapes les premières lettres après l'affectation et que tu appuies sur [CTRL]+[J], tu devrais voir apparaître les affectations possibles dans la liste déroulante.
14 sept. 2004 à 16:38
J'ai une question, tu fais
OnClick := PopItemClick;
donc tu associes une procédure quand on clique sur l'élément.
Je me suis inspiré de ce code et je désire faire de même
OnCLick mais il ne me propose que les var, const, type mais pas de procédure.
Est-ce moi qui n'est pas compris ou alors fais-je mal ?
(en gros chuis dans les choux).
Merci pour ta réponse.
22 avril 2004 à 11:35
cela fonctionne sans probleme
et oui encore une nouvelle fonction de decouverte ;o)
Olive
21 avril 2004 à 22:47
procedure TForm1.FormCreate(Sender: TObject);
begin
if FileExists('Grid.opt') then
ReadComponentResFile('Grid.opt', DbGrid1);
Table1.Open;
//.. reste du code
end;
Et, avant de fermer la fiche, de sauvegarder les valeurs des prorpiétés publiées du composant :
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
WriteComponentResFile('grid.opt', DbGrid1);
end;
Il n'y a rien de plus à faire !
21 avril 2004 à 15:31
Merci de ton code, j'ai compris pas mal de chose sur les dbgrids.
juste un petit probleme comment sauvegarder le choix des colonnes de l'utilisateur , pour lors d'une future ouverture son choix soit de nouveau actif, sans avoir a tout refaire
merci encore
a+
Olivier
17 janv. 2003 à 06:03
Project xxxx raised exception class yyyyy with message 'zzzzzz'.
Process stopped. Use Step or Run to continue.