Evènement onclick non déclenché sur stringgrid

Résolu
cs_philpas Messages postés 77 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 4 septembre 2008 - 12 juil. 2006 à 09:15
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 - 9 août 2006 à 13:52
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

cs_philpas Messages postés 77 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 4 septembre 2008
12 juil. 2006 à 09:50
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
3
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
12 juil. 2006 à 09:55
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 
0
comsystem Messages postés 3 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 9 août 2006
9 août 2006 à 13:17
je veux utiliser l'evenement ondoubleclick de stringgrid. et je souhaite  récupérer le contenu de la celulle selectionée. c'est urgent????
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
9 août 2006 à 13:52
@ 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
0
Rejoignez-nous