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:
Si quelqu'un a une petite idée...merci d'avance.
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... }
@ +![]()
Partager