Scroller dans un stringgrid pour afficher la ligne recherchée (contenu de la 1èr [Résolu]

Signaler
Messages postés
249
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
2 mars 2020
-
Messages postés
249
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
2 mars 2020
-
Salut,
Je souhaite faire afficher (scroller) une ligne recherchée dans un stringgrid, par exemple sur base du contenu de la première cellule)
Je tourne en round!
Merci,
PhilLu

8 réponses

Messages postés
249
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
2 mars 2020

Super pour vos explications!!!
Ce genre de détails ne se trouvent dans aucuns bouquins,
heureusement qu'il existe des forum
et je comprend qu'avant internet l'informatique était réservée à quelques uns seulement (qui devaient se téléphoner sans doute???)
+A
PhilLu
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
bonsoir,
humhh, heu..
tu souhaites déclencher une recherche de chaîne dans tout le stringgrid avec le contenu de la première cellule et si une collision se produit alors la ligne qui répond à cette condition doit s'afficher à l'écran.

C'est bien ça ?

cantador
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
28
Salut,

Exemple de code reprenant le contenu d'un TEdit nommé Edit1 et effectuant la recherche dans la première colonne qui ne faiy pas partie des colonnes fixes :

procedure TForm6.Button1Click(Sender: TObject);
var
  I: Integer;
  found: boolean;
begin
  found := false;
  with StringGrid1 do
    for I := 0 to RowCount - 1 do
    begin
      if Cells[FixedCols1, i] = Edit1.Text then
      begin
         TopRow := i;
         found := true;
         break;
      end;
    end;
  if found then
    ShowMessageFmt('%s trouvé à la ligne %d', [Edit1.Text, i])
  else
    ShowMessageFmt('%s non trouvé', [Edit1.Text]);
end;


8000 Lévriers 'galgos' par an sont torturés et massacrés en Espagne
May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
28
Arf, ce n'est pas FixedCols1 qu'il faut lire mais FixedCols, bien sûr...

8000 Lévriers 'galgos' par an sont torturés et massacrés en Espagne
May Delphi be with you

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
249
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
2 mars 2020

Super!
Merci je commençais à fatiguer!!!
Mais pourquoi cela ne fonctionne pas comme ça:
(0 remplace FixedCols1 puisque je compare la colonne 0???)

with StringGrid1 do
for I := 0 to RowCount - 1 do
begin
if Cells[0, i] = Edit1.Text then
begin
TopRow := i;
found := true;
break;
end;
end;
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
@PhilLU:
Si fixedRows est à 1 alors ton code ne peut pas mettre la cellule trouvée en toprow..
En revanche, si fixedrows est à zéro alors elle se place tout en haut.

Autre évènement, tu as remarqué que la ligne trouvée se place en haut mais les autres disparaissent si il s'agit d'une cellule <> [0,0]
et cette recherche ne s'articule que dans la première colonne..

Il aurait été préférable (mais comme on ne sait pas exactement ce que tu veux faire..)
que cette recherche s'effectue sur l'ensemble du grid et affiche le résulat trouvé au dessus de ce dernier par exemple.

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

Il n'y a pas de raison que cela ne marche pas.

Une remarque :
"if Cells[0, i] = Edit1.Text then..." : réclame une correspondance exacte entre Cells[] et Edit1.Text -> il y a distinction entre majuscules et minuscules.

Ceci ne tient pas compte de la casse :

if AnsiCompareText(Cells[0, i], Edit1.Text) = 0 then...

A +
Thierry
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
@Cantador : je n'ai pas vu ton comment avant de poster le mien. Tes remarques sont très pertinentes.

Thierry