Probleme d'affichage de Hint et/ou Struct
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:
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.
@ + ;)