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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
AnsiString chemin = ExtractFilePath(Application->ExeName);
TreeView1->Items->GetFirstNode()->Text = chemin;
TreeView1->Items->GetFirstNode()->DeleteChildren();
// code recherchant tous les fichiers dans le repertoire dont le nom est défini
// par le texte du premier noeud du TreeView
TSearchRec SF;
FindFirst(TreeView1->Items->Item[0]->Text + "\\*.*", faAnyFile, SF);
do
{
if( !(SF.Attr & faDirectory) ) // Pour éviter les répertoires
{
TreeView1->Items->AddChild(TreeView1->Items->Item[0], SF.Name);
}
}
while( FindNext(SF)==0 );
FindClose(SF);
TreeView1->Items->GetFirstNode()->Expand(true);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TreeView1AdvancedCustomDrawItem(
TCustomTreeView *Sender, TTreeNode *Node, TCustomDrawState State,
TCustomDrawStage Stage, bool &PaintImages, bool &DefaultDraw)
{
//on récupère la largeur de la 1ere section du Header control dans w1
int w1 = HeaderControl1->Sections->Items[0]->Width;
//on récupère la surface (TRect) dans laquelle se dessine le noeud du TreeView1
TRect R = Node->DisplayRect(true);
// On elargit cette surface pour qu'elle aille jusqu'au bord droit du TreeView1
R.Right = TreeView1->Width;
// On Dessine un rectangle vide pour effacer ce que le composant à déjas dessiné
TreeView1->Canvas->FillRect(R);
// On Dessine le nom du Fichier
TreeView1->Canvas->TextOutA(R.Left, R.Top, Node->Text);
// On dessine un signe "..."pour couvrir la fin du nom du fichier si il est trop long
int w2 = TreeView1->Canvas->TextWidth( Node->Text);
int w3 = TreeView1->Canvas->TextWidth("...");
if( w2+R.Left > w1)
{
TreeView1->Canvas->TextOutA(w1-w3, R.Top, "...");
}
//On Verifie que le fichier existe bien
TSearchRec SF;
AnsiString c1 = FileSearch(Node->Text, TreeView1->Items->Item[0]->Text + "\\");
// On aligne la gauche du rectangle de dessin sur la section du HeaderControl1
R.Left = w1;
//On efface ce qui pourrait gener sur le Canvas du TreeView1
TreeView1->Canvas->FillRect(R);
// On Dessine enfin le nom Complet du Fichier
TreeView1->Canvas->TextOutA(w1, R.Top, c1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::HeaderControl1SectionResize(
THeaderControl *HeaderControl, THeaderSection *Section)
{
// force à redessiner le treeview
// lorsqu'on redimensionne la Section du HeaderControl
TreeView1->Repaint();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TreeView1Click(TObject *Sender)
{
Memo1->Clear();
TStringList *File = new TStringList;
File->LoadFromFile(TreeView1->Items->Item[TreeView1->Selected->Index+1]->Text);
for(int i=0;i<File->Count;i++)
Memo1->Lines->Add(File->Strings[i]);
Memo1->SetFocus();
Memo1->SelStart = 0;
Memo1->SelLength = 0;
}
//--------------------------------------------------------------------------- |
Partager