Evènement onclick non déclenché sur stringgrid

Résolu
Signaler
Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008
-
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
-
Bonjour,
j'ai un probléme avec les evènements onclick et onselectcell du composant stringgrid. Voilà ce que je veux faire. J'ai 2 stringgrids. La 1ère me donne une liste de fichier et la 2ème me donne le contenu du fichier sélectionné. Je veux quand je modifie le contenu du stringgrid1 et je selectionne une autre case de la stringgrid2 que celui ci me demande de sauvegarder le fichier avant d'afficher le nouveau contenu du nouveau fichier sélectionné. J'utilise donc l'évènement onselectcell où je mets mon alerte + la sauvegarde (j'ai besoin du contenu de la cellule qui était sélectionné) et l'évènement onclick où je mets la procédure d'affichage (là j'ai besoin du contenu de la cellule sélectionné). Hors l'évènement onclick ne se déclenche pas toujours.
j'ai mis

procedure TFiche_Gamme_Vitesse.StringGrid2_Liste_FPIClick(Sender: TObject);
begin
  if Panel4_Lecture.Caption='Lecture active' then Lire_Afficher_Gamme; // affiche le tableau
end;

procedure TFiche_Gamme_Vitesse.StringGrid2_Liste_FPISelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
  if Modification_Active=True then
  begin
     if MessageDlg('Voulez vous sauvegarder les modifications?.',mtConfirmation,[mbYes,mbNo],0)=mrYes then
    begin
      Memorise_StringGrid_Gamme;
      Sauvegarde_Fichier_Vitesse;
    end;
  end;
end;

Dans ce cas si la modification est true, l'évènement onclick n'est pas déclenché tandis que si la modification est false, l'évènement onclick est déclenché. En fait après essai, c'est MessageDlg qui empêche l'évènement onclick de se déclencher. Si j'enlève cette ligne ça marche, l'évènement onclick est toujours déclenché. Avez vous une idée pour que je puisse avoir le message d'alerte tout en ayant l'évènement onselectcell pour connaitre le contenu de la cellule où j'étais et l'évènement onclick pour connaitre le contenu de la celulle où je vais?

Merci

4 réponses

Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008

j'ai trouvé la solution
dans l'évènement onselectcell je rajoute StringGrid2_Liste_FPI.Row:=ARow; ce qui déclenche l'èvènement onclick ensuite

Merci
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
Salut philpas.

J'ai testé ton MessageDlg et cela n'empêche pas le déclenchement de l'événement OnClick !
Ceci dit, je ne vois pas pourquoi tu utilises 2 événements (je te le déconseille même). L'événement OnSelectCell suffit dans ton cas. Tu n'as pas besoin de Onclick pour " connaitre le contenu de la cellulle où je vais".
OnSelectCell t'envoie en paramètres ACol et ARow non pas la cellule active, mais celle où tu désires aller. D'où l'intérêt de CanSelect pour interdire ce déplacement. Pour connaitre dans OnSelectCell la cellule active : tu emploies les propriétés Col et Row.  
N'hésite pas si problèmes...

A +
Thierry 
Messages postés
3
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
9 août 2006

je veux utiliser l'evenement ondoubleclick de stringgrid. et je souhaite  récupérer le contenu de la celulle selectionée. c'est urgent????
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
@ ComSystem :

Salut,
si tu désires avoir une réponse à ta question je te conseil de créer un nouveau topic "Nouveau Message"
ici tu es dans un ancien topic et donc très peut de personne y ont accès.

Et une petite visite sur la page du règlement ne peut pas faire de mal














@+
Cirec