begin process at 2010 02 10 09:53:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Exécution

 > 

Lire l'évènement d'un composant crée en "runtime mode "


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lire l'évènement d'un composant crée en "runtime mode "

samedi 16 février 2008 à 13:04:31 | Lire l'évènement d'un composant crée en "runtime mode "

tayebrabehi

Comment pourrai-je  lire l'évènement d'un composant crée en  'Runtime Mode' ?

Par exemple je veux créer  deux boutons et lire  le 'onclick' de chaque un

Merci .

samedi 16 février 2008 à 13:54:37 | Re : Lire l'évènement d'un composant crée en "runtime mode "

Caribensila

Membre Club
Réponse acceptée !

Salut,


interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
    procedure Maprocedure(Sender: TObject);
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Maprocedure(Sender: TObject);
  begin
  beep;
end;

procedure TForm1.FormCreate(Sender: TObject);
  var MonBouton : TButton;
  begin
  MonBouton := TButton.Create(self);
  MonBouton.Parent := self;
  MonBouton.OnClick := Maprocedure;
end;

samedi 16 février 2008 à 18:33:54 | Re : Lire l'évènement d'un composant crée en "runtime mode "

gege58

Membre Club
Bonjour,

Je complexifie la question précédente :

je veut créer un composant dynamiquement, lequel contient plusieurs composants, par exemple un TEdit, 1 TUpDown, ...

et donc Comment lire (et le traiter) le OnClick sur les composant internes ?

Merci.

gege58
samedi 16 février 2008 à 19:11:40 | Re : Lire l'évènement d'un composant crée en "runtime mode "

f0xi

Membre Club Administrateur CodeS-SourceS


exemple :

type
  TMonCompo = class(TComponent)
  private
    fEdit : TEdit;
    fUpDown : TUpDown;
    fOnEditClick : TNotifyEvent;
    fOnUpDownClick : TNotifyEvent;
  protected
    procedure DoEditClick(Sender: TObject); virtual;
    procedure DoUpDownClick(Sender: TObject); virtual;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property OnEditClick : TNotifyEvent read fOnEditClick write fOnEditClick;
    property OnUpDownClick : TNotifyEvent read fOnupDownClick write fOnUpDownClick;
  end;

{ TMonCompo }

constructor TMonCompo.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  fEdit := TEdit.Create(nil);
  with fEdit do
  begin
    //Parent := Self;
    //SetBounds(L, T, W, H);
    OnClick := DoEditClick;
  end;

  fUpDown := TUpDown.Create(nil);
  with fUpDown do
  begin
    //Parent := Self;
    //SetBounds(L, T, W, H);
    OnClick := DoUpDownClick;
  end;
end;

destructor TMonCompo.Destroy;
begin
  fUpDown.Free;
  fEdit.Free;
  inherited;
end;

procedure TMonCompo.DoEditClick(Sender: TObject);
begin
  { before code here }

  if Assigned(fOnEditClick) then
    fOnEditClick(Sender);

  { after code here }
end;

procedure TMonCompo.DoUpDownClick(Sender: TObject);
begin
  { before code here }

  if Assigned(fOnUpDownClick) then
    fOnUpDownClick(Sender);

  { after code here }
end;




deefsign.gif
samedi 16 février 2008 à 19:36:01 | Re : Lire l'évènement d'un composant crée en "runtime mode "

gege58

Membre Club
Ok,  merci beaucoup.

je vois bien maitenant comment faire dans le composant (en fait ça je l'avais trouvé dans un tuto), mais comment appeler ces événements depuis la form principale,  ma question était surtout à ce niveau  ?

Merci encore.

gege58
samedi 16 février 2008 à 19:55:54 | Re : Lire l'évènement d'un composant crée en "runtime mode "

f0xi

Membre Club Administrateur CodeS-SourceS

avec l'exemple que je t'ai donné :

MonCompo.OnEditClick(nil);
ou
MonCompo.OnUpDownClick(nil);

note la redirection des evenements dans la classe TMonCompo grace aux procedure protégée Do*Click



deefsign.gif
samedi 16 février 2008 à 20:38:53 | Re : Lire l'évènement d'un composant crée en "runtime mode "

gege58

Membre Club
En fait, j'ai mal posé ma question, quand on clique sur la composant global sur la form, je dois discriminer si on a cliqué sur l'un ou sur l'autre des 2 "sous-composants" et faire le traitement ad'hoc.

Comment modifier l'exemple de Caribensila dans mon cas, avec le composant global (sur lequel on va cliquer), et ses 2 sous-composants pour que je puisse avoir le bon traitement (OnEditClick ou OnUpDownClick) ?

gege58
dimanche 17 février 2008 à 04:17:00 | Re : Lire l'évènement d'un composant crée en "runtime mode "

f0xi

Membre Club Administrateur CodeS-SourceS

ben ça c'est le Edit et UpDown dans le compo qui transmette l'event (puisque assigné dans le compo).

donc dans l'exemple, si tu click sur le edit ou le updown, cela appel les procedures DoEditClick ou DoUpDownClick et donc tu n'as plus qu'a mettre du code de traitement dans les deux procedure, avant ou aprés la redirection de l'event (if assigned...)




deefsign.gif
dimanche 17 février 2008 à 12:54:09 | Re : Lire l'évènement d'un composant crée en "runtime mode "

gege58

Membre Club
Merci beaucoup, ça marche !

gege58
dimanche 17 février 2008 à 13:11:39 | Re : Lire l'évènement d'un composant crée en "runtime mode "

tayebrabehi

Merci infiniment Caribensila c'est ce que je voulais ..



Cette discussion est classée dans : composant, lire, crée, runtime, évènement


Répondre à ce message

Sujets en rapport avec ce message

problème de runtime avec un composant tdatabase [ par fcantan ] Bonjour,Mon appli développée en Delphi 7 dialogue avec oracle via ODBC.Si je n'utilise pas de composant Tdatabase, je n'ai aucun pb de déploiement sur [composant] TShellChangeNotifier [ par adelavarenne ] Salut,je voudrais utiliser le composant TShellChangeNotifier mais je ne trouve pas grand chose dans l'aide et je galère grave.Voila je veux déclencher Runtime error 217 [ par Jos ] Bonjour, Lorsque je tente d'inclure un composant treelist, dans mon application, j'ai des problèmes. En effet, par la suite, au application.termina composant Tanimate [ par mighty_warrior ] Bonjour,Est-ce que quelqu'un pourrait me renseigné sur le composant Tanimate parce que l'aide de delphi ne m'apporte pas grand chose.D'aprés ce que j' Composant utilisant un Composant [ par Nicolas___ ] [Ce n'est pas la bonne catégorie, mais je n'ai pas vu de catégorie /delphi/composant ]Bonjour à tous , j'ai une question par  rapport à l'utilisation effacer un composant crée dynamiquement [ par fidji ] Bonjour, J'ai un problème lié à la construction et destructions de composants dynamiquement.Lorsque je veux détruire le composant Lire port parallèle [ par revsys ] Bonjour,J'utilise ZLportIO pour pouvoir communiquer avec le port parallèle, et plus précisement pouvoir lire la pin n°14.procedure TForm1.FormCreate(S Importer une table dans un Dbgrid en RunTime? [ par jennybless ] Salut tout le monde!J'ai une question qui paraitrait simple pour certains. Mais elle est peut difficile pour moi. Pourriez-vous me supporter un peu... TopenDialog [ par cincap ] Bonsoir à tous,Est t'il possible avec un composant TopenDialog de charger un fichier en Bmp ou Jpg et de lui donner une largeur et hauteur définie qui


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,421 sec (4)

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