Bonsoir,
Un petit soucis....Voila j'ai, contenu dans un TList, une liste de Structs qui contiennent des données représentant des évènements dans un agenda.
(heure de début de rdv, nom du rdv, heure de fin, etc, etc...par ex)
Ces données sont affichées dans un TStringGrid, rien d'exceptionnel.
Je veux afficher un beau Hint, lors du survol par la souris d'une plage contenant un évènement; ce Hint reprenant une partie des éléments de la struct correspondant.
Le problème est que, si j'ai trois rdv a trois dates différentes dans la semaine affichée, il ne réagis que lors du survol de la plage du dernier rdv...les autres sont ignorés.
J'ai placé de beaux 'ShowMessage(...)' dans le code a certains endroits et il lis bien les valeurs et devrait afficher les infos dans le Hint...mais rien.
Je dois merder qqpart, c'est clair, ya pas de magie.
Ci joint le code du OnMouseMove du TStringGrid:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
SGvisu->Hint = "";
try
{
pPos = SGvisu->MouseCoord(X, Y); int i;
if (pPos.X > - 1 && pPos.Y > - 1)
{
AnsiString S = SGvisu->Cells[pPos.X][pPos.Y].SubString(3, SGvisu->Cells[pPos.X][pPos.Y].Length()); //on repère le texte survolé
for (i = 0; i < ListeAgenda->Count; i ++)
{ //parcours de la TList
        eventAGenda = (agstruct)ListeAgenda->Items[i]; //on selectionne un a un les struct désignés par la TList
        if ( eventAGenda->HDeb == S || eventAGenda->HFin == S || eventAGenda->Texte == S )
        { //une de ces propriétés est forcement affichée si le struct est crée
                if ( eventAGenda->nbTodo > 0 )
                {//on charge les infos pour le hint
                        SGvisu->Hint = eventAGenda->Todo[0];
                        for ( int j = 1; j < eventAGenda->nbTodo; j ++ )
                        {
                                SGvisu->Hint = SGvisu->Hint + AnsiString("\n") + eventAGenda->Todo[j];
                        }
                }
                else
                {
                                        SGvisu->Hint = "";
                }
        }
        else
        {
                SGvisu->Hint = "";
        }
}
}
}
catch(...)
{
//code...
}
Si quelqu'un a une petite idée...merci d'avance.
@ +