Savoir si le form est la fenêtre active [Résolu]

flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 21 janv. 2006 à 14:05 - Dernière réponse : cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention
- 22 janv. 2006 à 16:38
Bonjours, je voudrai savoir comment faire pour savoir si la form de mon application est activée ou pas (si c'est la feneitre active ou si elle est en arriere plan)

...
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
cs_ahmed12 85 Messages postés lundi 5 mai 2003Date d'inscription 9 décembre 2010 Dernière intervention - 21 janv. 2006 à 15:06
3
Merci
essaie la propriété de la fiche

if form.Active=true
begin
end else
begin
end;

Merci cs_ahmed12 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_ahmed12
Meilleure réponse
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 21 janv. 2006 à 16:09
3
Merci
voir onactivate et on desativate

@+

jlen

Merci jlen100 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de jlen100
Meilleure réponse
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 21 janv. 2006 à 19:21
3
Merci
@ahmed12 : je ne connais pas de propriété "Active" pour les fiches TForm.
D'autre part, ce n'est pas utile de faire un test d'égalité avec des booléens.
If MonBooleen then ...
Ca suffit largement.

Flo160fr : tu peux aussi utiliser la propriété ActiveForm de l'objet Screen et la comparer à une référence de fiche quelconque de l'application.

La solution proposée par Jlen100 est surement la plus adaptée avec l'utilisation des évènements OnActivate et OnDeactivate de la fiche.

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

Merci cs_Delphiprog 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_Delphiprog
Meilleure réponse
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 22 janv. 2006 à 12:06
3
Merci
Par fiche active, il faut comprendre la fiche active au sein de l'application !
Si tu cliques ailleurs, sur le bureau Windows par exemple, alors ce n'est pas ce qu'il te faut.
Tu dois utiliser l'objet Application.

Dans ce cas, dans ta fiche principale, tu déclares deux méthodes comme ceci :
private
{ D&#233;clarations priv&#233;es }
procedure AppActivate(Sender: TObject);
    procedure AppDeactivate(Sender: TObject);

Dans ces deux méthodes, tu mets le code que tu veux :

procedure TForm1.AppActivate(Sender: TObject);
begin
  Label1.Caption :=  'Application active';
 end ;

procedure TForm1.AppDeactivate(Sender: TObject);
begin
  Label1.Caption : = 'Application d&#233;sactiv&#233;e';
end;

Enfin, lorsque la fiche est créée, tu affectes ces méthodes aux évènements de l'application :

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnActivate :=  AppActivate;
  Application.OnDeactivate := AppDeactivate;
 end ;

Selon ta version de Delphi, tu peux aussi utiliser le composant TApplicationEvents (onglet Supplément, D6+) si cela te semble plus facile et surcharger les méthodes OnActivate et OnDeActivate.


<HR color =#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

Merci cs_Delphiprog 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_Delphiprog
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 21 janv. 2006 à 15:56
0
Merci
Au passage, saurai tu si il y aurai un evenement de la form lor du passage de l'arriere plan à l'avant plan et inversement

...
Commenter la réponse de flo160fr
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 22 janv. 2006 à 02:30
0
Merci
Salut,
tu peux aussi utiliser ceci :

procedure TForm1.Button1Click(Sender: TObject); // où tout autre procédure
beginIf Screen.ActiveForm Form1 Then Label1.Caption : 'Ouiiiiiiiiiiiiiii';
end;



@+
Cirec
Commenter la réponse de Cirec
cs_ahmed12 85 Messages postés lundi 5 mai 2003Date d'inscription 9 décembre 2010 Dernière intervention - 22 janv. 2006 à 09:32
0
Merci
[mailto:{@ahmed12 delphiprog] : je ne connais pas de propriété "Active" pour les fiches TForm.
D'autre part, ce n'est pas utile de faire un test d'égalité avec des booléens.
If MonBooleen then ...
Ca suffit largement.}


1-si tu connais pas cette propriété c'est le momon pour la connaître vas faire un tour sur l’aide de delphi il pourrait tu convaincre.


2-[concernant le test d’égaleté], ponce toi sur les débutants.
Commenter la réponse de cs_ahmed12
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 22 janv. 2006 à 11:34
0
Merci
le seul problème, c'est que avec BorderStyle := bsNone, l'événement OnDesactivate ne fonctionne pas.. .

...
Commenter la réponse de flo160fr
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 22 janv. 2006 à 12:18
0
Merci
ok... merci beaucoup à tout le monde
Commenter la réponse de flo160fr
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 22 janv. 2006 à 12:21
0
Merci
@ DelphiProg
Extrait de l'aide Delphi :

TCustomForm.Active Propriété
<DESCRSHORT id= descrShort xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Indique si la fiche détient la focalisation. </DESCRSHORT>

Classe TCustomForm
Syntaxe

[Delphi] public property Active: Boolean read FActive;

Description <DESCRLONG id =descrLong xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Utilisez la propriété Active

pour déterminer si la fiche détient la focalisation. La fiche active reçoit toutes les entrées clavier. Si elle a une barre de titre, elle est dessinée en utilisant les couleurs actives spécifiées dans le volet Contrôle. Si Active

vaut true, la fiche détient la focalisation ; si Active

vaut false, la fiche n'a pas la focalisation. </DESCRLONG>



@+
Cirec
Commenter la réponse de Cirec
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 22 janv. 2006 à 12:44
0
Merci
Merci beaucoup Cirec
Grâce à vous, j'ai découvert cette propriété au bout de 10 ans de pratique de Delphi. Je me disais aussi qu'il me manquait quelques chose...
Disons que je préfére utiliser ActiveForm car cette propriété est en lecture ET écriture.
A chacun ses préférences.
<hr color="#008000">Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Commenter la réponse de cs_Delphiprog
cs_ahmed12 85 Messages postés lundi 5 mai 2003Date d'inscription 9 décembre 2010 Dernière intervention - 22 janv. 2006 à 15:16
0
Merci
et a mois ne oublie pas ahmed12
Commenter la réponse de cs_ahmed12
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 22 janv. 2006 à 16:38
0
Merci
Non, Ahmed12, je ne t'oublie pas, rassure-toi lol


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Commenter la réponse de cs_Delphiprog

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.