Bonjour,
Je suis actuellement face à un petit problème: J'utilise un TreeCtrl, qui à pour but d'afficher une liste de séances, récupérer directement dans une BDD.
Je vais donc chercher dans la base, puis j'affiche. Tout ce passe bien. Le problème arrive lorsque j'appel un modal, qui a pour but de créer une nouvelle séance. Au retour de ce modal, il y a bien dans la BDD la nouvelle séance fraichement créée. Mais lorsque au retour du modal j'utilise à nouveau ma fonction afficheListe(), le TreeCtrl ne se remet pas a jour. Cette fonction marche à l'init de ma fenetre, mais pas au retour du modal. Y a t il une fonction qui réinitialise l'arbre, et que je dois appeler avant? Je met le code:
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
 
void FrameInit::afficheSeance()
{
    sequences.clear();
    wxString msg;
    IBPP::Timestamp t_dateTimeSequ;
    std::string typeSeance;
 
    //récup listeDate et affichage
    std::vector<Sequence> listeDate;
 
    sequences=m_bdd->RecupSeances(IDJoueur,IDEntraineur);
 
    m_root = TreeCtrl1->AddRoot(wxT(""));
    wxDateTime tmp_temps = (time_t)0;
    wxTreeItemId t_date, t_heure,t_typeSeance;
    wxString ligne;
    for (unsigned int i=0; i < sequences.size(); i++)
    {
        if (sequences[i].s_temps.GetDateOnly() != tmp_temps.GetDateOnly())
        {
            tmp_temps = sequences[i].s_temps;
            t_date = TreeCtrl1->AppendItem(m_root, tmp_temps.Format(wxT("Le %d/%m/%Y")));
        }
        ligne.Clear();
        ligne << sequences[i].s_temps.Format(wxT("à %H:%M:%S - ")) << sequences[i].s_typeSeance;
        t_heure = TreeCtrl1->AppendItem(t_date, ligne);
    }
    if (sequences.size() > 0)
    {
        TreeCtrl1->Expand(t_date);
        TreeCtrl1->SelectItem(t_heure);
    }
}
Les appel se font à l'init dans un timer, et au retour de la frame:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Conditions* condi = new Conditions(condition,tirr,IDEntraineur,IDJoueur,m_bdd,type,this);
    condi->ShowModal();
    afficheSeance();
    condition->reset();
    tirr->reset();