"Appel" qui plante et "filtrage" qui bloque!!! [Résolu]

Signaler
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015
-
Messages postés
107
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
20 juillet 2021
-
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

Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
44
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]
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14

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



cantador
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
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
Messages postés
107
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
20 juillet 2021
3
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
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
18
@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!
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
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.
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015

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
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
La réponse de Cari aussi est pertinente ...


Composants Cindy pour Delphi
Faites une donation.
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
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
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015

ok, Pardon!

1. le onkeyPress sera mis dans une cellule ("conte")du dbgrid
2. le filtre, je le mets dans keyUp de mon dbgrid
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015

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
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015

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
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
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
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015

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
Messages postés
107
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
20 juillet 2021
3
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