"Appel" qui plante et "filtrage" qui bloque!!!

Résolu
Leader2000 Messages postés 187 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015 - 8 févr. 2012 à 18:06
pierrotk10d Messages postés 108 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 24 septembre 2022 - 23 févr. 2012 à 22:13
Salut!

J'ai une table a deux colonne: "Date" et "conte"
J'aimerai faire appel à un autre form après avoir introduit un chiffre dans ma colonne "conte" et presser "entrer". Quand le dit form sera là. Qu'il fasse un filtre du chiffre désiré. Mais ça ne marche pas!
Voici ce que j'ai fait mais ça plante:

....OnKeyPres...Dbgrid3.....
if key = VK_F4 then
PGC.showModal;

Après avoir appelé le form, il devrait faire un filtre

PGC.qryPGC.Filter:='conte=' +quotedstr(edit3.Text);
PGC.qryPGC.Filtered:= true;

Merci

Developper est une dimension pour moi.
Leader2000

15 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 48
10 févr. 2012 à 12:21
Salut,

peut être:
if key = VK_F4 then 
  with pgc do
  begin
    qryPGC.Filter:='conte=' +quotedstr(edit3.Text);
    qryPGC.Filtered:= true;
    showModal; 
  end;


[hr]@+Cirec
[hr]
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
10 févr. 2012 à 13:24

if key = VK_F4 then 
  with pgc do
  begin
    qryPGC.Filtered:= false;
    qryPGC.Filter:='conte=' +quotedstr(edit3.Text);
    qryPGC.Filtered:= true;
    showModal; 
  end;



cantador
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
8 févr. 2012 à 21:39
Bonsoir,

Tu n'es pas assez précis leader2000..

le OnkeyPress dans quoi exactement,
le titre, une cellule ou le grid etc ?

et le filtre :

PGC.qryPGC.Filter:='conte=' + quotedstr(edit3.Text);
PGC.qryPGC.Filtered:= true;

tu le mets où ?

cantador
0
pierrotk10d Messages postés 108 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 24 septembre 2022 3
8 févr. 2012 à 21:50
Bonjour,
Dans le DBGrid. Si tu veux utiliser VK_F4 OnKeyPress ne fonctionnera pas car il attend un Char.
Il faut utilser OnKeyDown ou Up avec les touches de fonctions qui attendent un Word.


pierrot
0

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

Posez votre question
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
8 févr. 2012 à 22:50
@Leader2000

Ce n'est pas du code que tu nous donnes là. Ce sont des bribes dont on ne peut rien tirer !

....OnKeyPres...Dbgrid3..... 
if key = VK_F4 then 
PGC.showModal; 
Bla bla bla // <- Ce code ne sera exécuté qu'à la fermeture de PGC !!!


Voir l'AIDE de Delphi pour la différence entre Show et ShowModal!
0
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
9 févr. 2012 à 10:50
J' allais dire la même chose que Cari.
Mets ça :
PGC.qryPGC.Filter:='conte=' +quotedstr(edit3.Text);
PGC.qryPGC.Filtered:= true;
Dans le OnShow de ta 2ème form.

A+


Composants Cindy pour Delphi
Faites une donation.
0
Leader2000 Messages postés 187 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015
9 févr. 2012 à 13:55
Cantador!

Ta question est très pertinente. Voilà je vais bien m'expliquer:
J'aimerai faire ce filtrage à partir d'une cellule de ma colonne "conte" de mon dbGrid. Il suffit que je pointe mon curseur sur une cellule et en appuyant sur la touche F4. Il devra faire du filtrage de ce contenu. Bien entendu, comme tu le voies, son filtrage se fera dans une autre table.

....OnKeyPres...Dbgrid3.....
if key = VK_F4 then
PGC.showModal;

PGC.qryPGC.Filter:='conte=' +quotedstr(edit3.Text);
PGC.qryPGC.Filtered:= true;

Merci,
Developper est une dimension pour moi.
Leader2000
0
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
9 févr. 2012 à 14:37
La réponse de Cari aussi est pertinente ...


Composants Cindy pour Delphi
Faites une donation.
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
9 févr. 2012 à 14:49
désolé leader2000,

tu ne réponds pas entièrement aux questions posées
On ne pas jouer aux devinettes..

sinon DelphiProg va sortir le Marabout !

cantador
0
Leader2000 Messages postés 187 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015
9 févr. 2012 à 15:58
ok, Pardon!

1. le onkeyPress sera mis dans une cellule ("conte")du dbgrid
2. le filtre, je le mets dans keyUp de mon dbgrid
0
Leader2000 Messages postés 187 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015
13 févr. 2012 à 13:09
Peut-être c'est moi qui me fait mal comprendre. Je ne sais pas!

Voici mon dbgrid sur le form1 par exemple.
Quand je clique (ou selectionne) la ligne où se trouve l'enregistrement 51 de la colonne "compte", je presse sur la touche de fontion F4. Je tombe sur le form2 et sur ce form je rencontre déjà le filtre consommée. Cela veut dire que le compte 51 sera filtré sur le dbgrid du form2. Mais le code est écrit dans le keyUp du dbgrid du form1

ID | Conte |
1 | 51 |
2 | 45 |

if key = VK_F4 then
with pgc do
begin
form1.qryPGC.Filtered:= false;
form1.qryPGC.Filter:='compte=' +quotedstr(edit3.Text);
form1.qryPGC.Filtered:= true;
form2.showModal;
end;

N'y a t-il pas un code qu'il faut écrire ici "+quotedstr(edit3.Text);". Afin d'indiquer que le filtrage devra se faire directement sur le dbGrid du form2.


Developper est une dimension pour moi.
Leader2000
0
Leader2000 Messages postés 187 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015
14 févr. 2012 à 19:03
Curieusement, n'importe quelle touche quand on presse il execute ce code.
Voici ce que j'ai essayé de faire pour obligé que seul la touche de fonction F4 fonctionne:

if key =# vk_F4 then...

Ça ne passe pas. Ça donne un message d'erreur. Que faire?

Merci.


Developper est une dimension pour moi.
Leader2000
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
17 févr. 2012 à 21:59
N'y a t-il pas un code qu'il faut écrire ici "+quotedstr(edit3.Text);". Afin d'indiquer que le filtrage devra se faire directement sur le dbGrid du form2.

Ton filtre s'applique sur un Query bien précis
à toi de les différencier sur les deux grids
sinon, c'est normal..

cantador
0
Leader2000 Messages postés 187 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015
23 févr. 2012 à 15:09
Merci Cantador!

Mais peux-tu lire ma dernière question et me venir en aide. Cette opération s'excute sur n'importe quelle touche. Pourquoi ne s'excute pas seulement sur la touche de fonction F4.


Developper est une dimension pour moi.
Leader2000
0
pierrotk10d Messages postés 108 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 24 septembre 2022 3
23 févr. 2012 à 22:13
Bonjour,
Si le TDBGrid de la form1 et le TDBGrid de la form2 présentent la même table il est normal que le filtre s'applique aux deux TDBGrid car le filtre est appliqué sur la table et non sur le TDBGrid.
Pour la touche F4 L'événement OnKeyDown est à mettre dans le TDBGrid.
If Key = VK_F4 then
......;



pierrot
0