Oncreate et Onactivate [Résolu]

Signaler
Messages postés
187
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
20 février 2010
-
Bacterius
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
-
Salut
Quelle est la différence entre l'événement Oncreate et l'événement Onactivate dans une form.
Merci.

yahia

11 réponses

Messages postés
8
Date d'inscription
lundi 21 juin 2004
Statut
Membre
Dernière intervention
27 novembre 2009

Bonsoir,

L'événement "OnCreate" est déclenché à la création de la fenêtre.
L'événement "OnActivate" est déclenché lorsque la fenêtre a le focus (elle est activée)

Au lancement d'une application, on peut créer plusieurs fenêtres, mais il ne peut y avoir qu'une seule fenêtre active à la fois.

J'espère que cela t'a éclairé...
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
6
1) Tu sélectionne "OnCreate".
2) Tu appuies sur F1.
3) Tu lis.
4) Tu fermes la fenêtre d'aide.
5) Tu sélectionne "OnActivate".
6) Tu appuies sur F1.
7) Tu lis.
8) Tu compares ce que tu as lu en 3) et 7).
9) Tu déduis.
10) Tu comprends.
11) Tu réponds à ta question.
12) Tu as répondu a ta question.

Seulement 12 étapes sans pour autant avoir besoin de se connecter à internet !!!

Cordialement, Bacterius !
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
Après 2) : 'cré vingt Diou d'féroce prise de tête !

En une étape, c'est plus cool :
1) question sur forum CS.
Messages postés
187
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
20 février 2010
3
salut moucate974
merci c'est bien clair


yahia
Messages postés
187
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
20 février 2010
3
salut Bacterius
une belle réponse minouche.

yahia
Messages postés
187
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
20 février 2010
3
pour Caribensila


yahia
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
Me v'là banni pour ne pas copier/coller l'Aide de Delphi sur le forum de CS !
Mais je ne voulais pas te froisser, youhibadelphi...
Donc, voici ce que tu demandes :

[i]OnCreate,événement (TCustomForm)
Se produit à la création de la fiche.

Syntaxe Delphi :
propertyOnCreate:TNotifyEvent;

Description
Utilisez OnCreate pour effectuer des actions spécifiques quand une fiche est créée et invoquée par le constructeur de TCustomForm.Vous pouvez soit implémenter cet événement soit surcharger le constructeur de la fiche ;vous ne devez pas faire les deux.Tout objet créédans l'événement OnCreate doit être libérédans l'événement OnDestroy.

Quand une fiche est créée et que sa propriétéVisible a la valeur true,les événements suivants se produisent dans l'ordre :
1.OnCreate
2.OnShow
3.OnActivate
4.OnPaint

OnCreate,OnClick,SelectNextPage,exemple :
Cet exemple nécessite un nouveau TPageControl,vide,sans nouvelle page créée àla conception et un contrôle TUpDown,provenant aussi de la page Win95 de la palette des composants.
Le gestionnaire d'événement OnCreate de la fiche ajoute plusieurs nouveaux contrôles TabSheet au contrôle pages.
Le gestionnaire d'événement UpDown1Click est déclenchéquand l'utilisateur clique sur l'un des boutons du contrôle TUpDown.La méthode SelectNextPage du contrôle pages passe à la page suivante si l'expression (Button = btNext)est vraie.Si Button ne vaut pas btNext,la page d'onglet précédente est sélectionnée./i

procedureTForm1.FormCreate(Sender:TObject);

var
i:Integer;
begin
fori :=0 to9 do
withTTabSheet.Create(Self) do
begin
PageControl := PageControl1;
Caption := 'Page #'+IntToStr(i);
end;
end;

procedureTForm1.UpDown1Click(Sender:TObject;Button:TUDBtnType);
begin
PageControl1.SelectNextPage(Button =btNext);
end;

________________________________________________________

[i]OnActivate,événement (TCustomForm)
Se produit quand la fiche devient active.

Syntaxe Delphi :
propertyOnActivate:TNotifyEvent;


Description
Utilisez l'événement OnActivate pour effectuer des actions particulières quand la fiche reçoit la focalisation. Une fiche devient active quand elle obtient la focalisation,par exemple quand l'utilisateur clique dans la fiche.

Remarque : C'est l'événement OnActivate de l'application (TApplication)et non pas celui de la fiche qui se produit quand Windows fait passer le contrôle d'une autre application à votre application.

OnActivate,ComponentCount,Components,exemple :
Le code suivant initialise la propriété DataSource d'un composant DBGrid de Form2 avec la source de données sélectionnée dans une liste de Form1. Cela permet àl'utilisateur de spécifier les informations qu'il désire sur Form1 et de les visualiser sur Form2./i

procedureTForm2.FormActivate(Sender:TObject);
begin
DBGrid1.DataSource :=
Form1.ListBox1.Objects[Form1.ListBox1.ItemIndex] as TDataSource;
end;


Voici le code de Form1 qui remplit la boîte liste :

procedureTForm1.FormCreate(Sender.TObject);
var
I:Integer;
begin
forI : = 0 toDataModule2.ComponentCount -1 do
begin
if (DataModule2.Components[I]isTDataSource) then
ListBox1.Items.AddObject(DataModule2.Components[I].Name,
DataModule2.Components[I]asTObject);
end;
end;


... Et si tu as besoin de précisions, je sais que tu ne te gêneras pas pour demander poliment...
Messages postés
187
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
20 février 2010
3
salut Caribensila
merci bien

yahia
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
6
Tu es quand même consciente que tu peux avoir exactement le même résultat voire plus, en appuyant simplement sur F1 ?

Cordialement, Bacterius !
Messages postés
187
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
20 février 2010
3
consciente ????

yahia
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
6
Conscient(e) alors ?

Cordialement, Bacterius !