Je ne comprends pas .....

Signaler
Messages postés
102
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2005
-
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
-
Bonjour,

Alors j'ai deux fiches, l'une que j'ouvre dans l'autre en modal, celle qui est modale possède un bouton fermer, g mit des procédures dans l'événements onclick, mais lorsque je click sur fermer mon prog ne passe pas par cet événement, il passe direct à la procédure formdestroy, je n'arrive pas à comprendre pourquoi il ne passe pas par onclick lorsque je click?

11 réponses

Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
quel est le code que tu as mis dans l'événement OnClick de ton bouton 'Fermer' ?

@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Messages postés
102
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2005

Voici mon code:

rocedure Tfiche_saisie.ButtonFermerClick(Sender: TObject);
var
I,L: integer;
Line,Id: string;
begin
inherited;


GenereRecordV;


MAJ_RecordH;


Show_Histo;


MAJ_Ind;


L:=MemoFichier.Lines.Count-1;
if AFichier^.Etat=2 then
if Messagedlg('Les analyses sont complétées, le fichier vas etre transféré vers l''export.',mtInformation,[mbYes],0)=mrYes then
begin
with MemoFichier do with Lines do
for I:=L-1 downto 1 do
begin
Line:=Strings[I];
Id:=Copy(Line,0,1);
if Id='V' then Continue
else Delete(I);
end;
GenereFichier(AFichier^.Etat);
end
else if AFichier^.Etat=1 then
if Messagedlg('Désirez vous transférer les réponses saisies vers l''export?',mtInformation,[mbYes,mbNo],0)=mrYes then
begin
GenereFichier(AFichier^.Etat);
with MemoFichier do with Lines do
for I:=L-1 downto 1 do
begin
Line:=Strings[I];
Id:=Copy(Line,0,1);
if Id='V' then Continue
else Delete(I);
end;
GenereFichier(2);
end
else GenereFichier(AFichier^.Etat);


Close;
end;
Messages postés
102
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2005

Voici mon code:

rocedure Tfiche_saisie.ButtonFermerClick(Sender: TObject);
var
I,L: integer;
Line,Id: string;
begin
inherited;


GenereRecordV;


MAJ_RecordH;


Show_Histo;


MAJ_Ind;


L:=MemoFichier.Lines.Count-1;
if AFichier^.Etat=2 then
if Messagedlg('Les analyses sont complétées, le fichier vas etre transféré vers l''export.',mtInformation,[mbYes],0)=mrYes then
begin
with MemoFichier do with Lines do
for I:=L-1 downto 1 do
begin
Line:=Strings[I];
Id:=Copy(Line,0,1);
if Id='V' then Continue
else Delete(I);
end;
GenereFichier(AFichier^.Etat);
end
else if AFichier^.Etat=1 then
if Messagedlg('Désirez vous transférer les réponses saisies vers l''export?',mtInformation,[mbYes,mbNo],0)=mrYes then
begin
GenereFichier(AFichier^.Etat);
with MemoFichier do with Lines do
for I:=L-1 downto 1 do
begin
Line:=Strings[I];
Id:=Copy(Line,0,1);
if Id='V' then Continue
else Delete(I);
end;
GenereFichier(2);
end
else GenereFichier(AFichier^.Etat);


Close;
end;
Messages postés
28
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
24 juillet 2009

Bonjour,


que fais tu dans les procs


GenereRecordV;
MAJ_RecordH;
Show_Histo;
MAJ_Ind;

Mimi
Messages postés
120
Date d'inscription
mercredi 14 août 2002
Statut
Membre
Dernière intervention
26 mai 2007

"ne passe pas par cet événement" : comment le sais-tu?

As tu essayé de placer des showmressage('') au début de ta procédure pour voir si elle est executée?

Télécharger Outlook Skype Plugin et mes autres réalisations sur mon site
http://s3ven.freesurf.fr
Messages postés
102
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2005

J'ai utilisé des breakpoint pour voir et il ne passe pas du tout par la proc
Messages postés
28
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
24 juillet 2009

Peux tu nous faire un zip de ton projet ?
Messages postés
102
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2005

Je viens de trouver le remède, j'avais mis modalresult à mrnone et je l'ai changé à mrok et maintenant ca marche étrange....
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Le fait d'avoir d'avoir changé ModalResult à mrOK n'est pas la vraie solution à ton problème. La fenêtre devrait pouvoir se fermer toute seule si tu as mis une instruction Close;



Explication du fonctionnement de ModalResult :

L'attribution d'une valeur autre que mrNone à la propriété ModalResult
d'un bouton entraîne la fermeture de la fenêtre qui le contient si
celle-ci est modale tout en fournissant un résultat à la fenêtre
appelante (le résultat sera idOK si la propriété ModalResult du bouton est réglée sur mrOk).

Ce principe est par exemple utilisé pour la gestion des boîtes de
dialogue (comme celles demandant la confirmation de suppression d'un
fichier) permettant un choix de boutons ("OK", "Annuler", "Oui", "Non",
etc...). Dans ces cas-là, la fenêtre appelante reçoit la valeur
retournée par le bouton sur lequel on a appuyé.



Pour plus d'infos, consultez l'aide de Delphi...


@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Messages postés
442
Date d'inscription
jeudi 4 avril 2002
Statut
Membre
Dernière intervention
11 août 2008

sous delphi il est possible de blocker la femeture d'une fenêtre dans
l'évènement OnCloseQuery en modifiant la variable canClose à false.
Peut-être que le bouton jou avec ça ?



neodelphi
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Pour être fixé sur la réelle cause de ce problème, il faudrait que XgaletteX nous fasse passer son projet complet...

@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !