Fermer une form

Adidas2 Messages postés 26 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 13 novembre 2004 - 16 sept. 2004 à 17:57
Adidas2 Messages postés 26 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 13 novembre 2004 - 21 sept. 2004 à 17:23
Salut à tous,

J'explique mon problème :
Je lance une application grâce à mon propre programme seulement l'application fraichement lancée ouvre une fenêtre de type "About".
Cette fenêtre a un bouton "Continue" et pas de croix pour la fermer donc obliger de cliquer.
Ce que je veux faire c'est fermer cette fenêtre (c'est le but du programme).
J'ai son Handle sans problème mais TerminateProcess et CloseWindow n'en viennent pas à bout.
Y aurait-il une autre solution svp ?
Merci d'avance.

11 réponses

cs_MAsterC Messages postés 217 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 19 décembre 2012
17 sept. 2004 à 01:19
Salut!

Utilise:
begin
  Form1.Close;
end;


a++

:) MAsterC - Power Of Dream. ;)
Site Internet!
0
Adidas2 Messages postés 26 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 13 novembre 2004
17 sept. 2004 à 09:00
Non c'est pas possible car c'est une form dans une autre application.
Imagines que tu ouvres MSPAINT tu vas dans "?" et "A propos" c'est une fenêtre de ce style que je veux fermer depuis l'extérieur donc à partir de son handle.
0
cs_MAsterC Messages postés 217 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 19 décembre 2012
17 sept. 2004 à 17:11
Salut,

Si j'ai bien compris ce que tu m'a dit, c'est si on ouvre MSPAINT puis on va dans l'About, tu voudrai fermer la fenêtre principale (MSPAINT) sans vouloir fermer la fenêtre About?

Alors, tu a seulement à spécifié le Type de "Show" de ta fenêtre.

Exemple:
Code dans le Bouton dans la Form 1
begin
Form2.Show;
end;


Je crois qu'avec cela, sa marcherai!
a++

:) MAsterC - Power Of Dream. ;)
Site Internet!
0
Adidas2 Messages postés 26 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 13 novembre 2004
17 sept. 2004 à 17:18
non je voudrais killer la fenêtre about et garder la fenêtre principal ouverte.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MAsterC Messages postés 217 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 19 décembre 2012
17 sept. 2004 à 17:24
Ha!! ok,

la je comprend ce que tu veux dire...
j'ai déja fait un programme qui avec cette fonctionnalité.... cependant j'ai un blanc de mémoire...

Je vais reférifié voir si je l'ai encore..

:) MAsterC - Power Of Dream. ;)
Site Internet!
0
Adidas2 Messages postés 26 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 13 novembre 2004
17 sept. 2004 à 18:50
merci c'est sympa :)
0
Adidas2 Messages postés 26 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 13 novembre 2004
18 sept. 2004 à 07:09
Merci pour ta source mais j'ai regarder ça va pas apparement.
En faites ce qu'il faudrait que je trouve c'est une fonction du type TerminateProcess mais pour cette fenêtre car TerminateProcess n'en vient pas à bout.
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
18 sept. 2004 à 13:06
Salut,

Voici un exemple testé et qui fonctionne pour toutes les fenêtres (même la fenêtre About de Paint) :
procedure TForm1.Button1Click(Sender: TObject);
var
  Handle : THandle;
begin
Handle:=FindWindow(nil,'À Propos de Paint');  // On cherche la fenêtre
SendMessage(Handle,WM_CLOSE,0,0);  // On la ferme
end;


Voila, il suffit de mettre le texte de la barre de titre de la fenêtre à fermer à la place de " À Propos de Paint ".

/!\ : C'est sensible à la casse.

NB : Si la fenêtre n'exite pas, il ne se crée pas d'erreur.

Amis Delphistes, bonne continuation ...
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
0
Adidas2 Messages postés 26 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 13 novembre 2004
19 sept. 2004 à 20:22
salut florenth
d'abord merci pour ton code il me sert bien seulement il vient pas à bout de ma fenêtre et je sais pk ...
apparement la fenêtre est en CanClose := False
pour ce genre de fenêtre y a pas une solution quand même ?
il faut cliquer sur un bouton ds le prog pr la fermer ya pas moyen de simuler un clique ?
merci d'avance
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
20 sept. 2004 à 20:38
Salut,

Je te cite : "J'explique mon problème :
Je lance une application grâce à mon propre programme seulement l'application fraichement lancée ouvre une fenêtre de type "About".
Cette fenêtre a un bouton "Continue" et pas de croix pour la fermer donc obliger de cliquer. "

=> Ce ne serait pas une version d'évaluation ton prog ?????

apparement la fenêtre est en CanClose := False
:approve) :approve)

=> Avoue que tu aurais fait la même chose ,non :question)

Sinon tu peux diriger le curseur de la souris avec
SetCursorPos(X , Y : integer);  // X et Y sont les coordonnées écran.


et simuler le clic avec
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);


qui simulent respectivement l'appui sur le bouton gauche et le reclachement de ce même bouton.

Et voila !! 8-)

@ ++ sur le forum
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
0
Adidas2 Messages postés 26 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 13 novembre 2004
21 sept. 2004 à 17:23
si c'est une version d'évaluation
enfin évaluation c'est vite dit
c'est mIRC tu connais ?
en faites t'es illimité en fonction mais au bout de 30 jours il te met un timer de 4 / 5 secondes et tu dois attendre pour valider.
ton système est niquel ça marche impec sauf au bout de 30 jours donc faut que je trouve carrément d'envoyer un message avec SendMessage qui dise que j'ai valider par exemple :)
merci quand même en tout cas
0
Rejoignez-nous