DELPHI showModal etc...

DELPHI showModal etc... - Programmation

Marsh Posté le 26-10-2001 à 08:51:45    

J'ai un Menu qui appelle des fenetres (1, 2, 3) via un showmodal
Mais j'ai aussi une des fenetre(1) qui appele la fenêtre (2) via egalement un chaud modal, comment savoir d'où on vient? (si c depuis le menu ou depuis la fenêtre 1)


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
Reply

Marsh Posté le 26-10-2001 à 08:51:45   

Reply

Marsh Posté le 26-10-2001 à 09:09:58    

dans on OnShow:

Code :
  1. if Sender is TNomDeTaForm1 then
  2. begin
  3.   ...
  4. end
  5. else if Sender is TNomDeTaForm2 then
  6. begin
  7.   ...
  8. end;


je pense que ça doit marcher (à vérifier)
quand tu l'appelles soit depuis le menu soit depuis la fenêtres, c'est dans les deux cas à partir d'une form ?
si c'est deux forms différentes, suffit de faire un if Sender is NomDeLaForm. Si c'est soit un menu, soit un bouton, mais tous deux sur une même form, je suis pas sûr que ça marche.
Autre possibilité: faire une méthode Execute, qui selon un paramètre fait deux trucs différents et fini par un result:=showmodal;

 

[edtdd]--Message édité par antp--[/edtdd]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-10-2001 à 09:55:26    

antp a écrit a écrit :

dans on OnShow:

Code :
  1. if Sender is TNomDeTaForm1 then
  2. begin
  3.   ...
  4. end
  5. else if Sender is TNomDeTaForm2 then
  6. begin
  7.   ...
  8. end;


je pense que ça doit marcher (à vérifier)
quand tu l'appelles soit depuis le menu soit depuis la fenêtres, c'est dans les deux cas à partir d'une form ?
si c'est deux forms différentes, suffit de faire un if Sender is NomDeLaForm. Si c'est soit un menu, soit un bouton, mais tous deux sur une même form, je suis pas sûr que ça marche.
Autre possibilité: faire une méthode Execute, qui selon un paramètre fait deux trucs différents et fini par un result:=showmodal;  
 
 




oui c a partir de deux formes, il semble pas reconnaitre le sender :(


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
Reply

Marsh Posté le 26-10-2001 à 10:08:39    

comment ça "pas reconnaître" ?
Sender c'est le paramètre que tu as dans la plupart des events (onShow par ex)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-10-2001 à 10:17:18    

IF sender is  TfrmMenuBar   THEN
begin
  depuisMenu:= TRUE; //On vient du Menu
  showMessage('depuis Meni';);
end
ELSE showMessage('SNK';);
end;
ba même si c TfrmMenubar qui apelle la fenetre ça marche pas, il fait tjs le ELSE, donc il evalue le test à FALSE tout le temps  :sweat:


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
Reply

Marsh Posté le 26-10-2001 à 10:45:41    

essaie de faire juste un showmessage(sender.classname) pour voir justement le nom qu'il recoit dans les deux cas.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-10-2001 à 10:57:26    

ds les deux cas le nom de la fiche qui est appelé :(
Sinon comment peut on appele une fiche avec un param, (surtout comment declaré la fiche :??: )


---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.
Reply

Marsh Posté le 26-10-2001 à 12:57:12    

si sender.classname contient le nom de la fiche et que tu veux savoir quelle fiche a appelé, c'est bon non ?
 
pour mettre des params, dans la déclaration de la form:

Code :
  1. public
  2.   function execute(...params...): TModalResult;


et dans l'implémentation:

Code :
  1. function nomdelaform.execute(...params...): TModalResult;
  2. begin
  3.   { ici tu fais ce que tu veux avec tes params }
  4.   result := self.ShowModal; // on affiche la form
  5. end;


donc pour appeler la form au lieu de faire

Code :
  1. nomdelaform.showmodal;


tu fais

Code :
  1. nomdelaform.execute(params);

 

[edtdd]--Message édité par antp--[/edtdd]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-10-2001 à 13:02:35    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed