Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Вниз

treeview   Найти похожие ветки 

 
Катерина   (2005-12-12 21:28) [0]

Помогите пожалуйста доработать процедуру! надо все файлы *.RTF поместить в дерево. с обычными файлами все работает осталось сделать так, чтобы отображались только *.RTF. Буду очень благодарна!

procedure NextLevel(ParentNode: TTreeNode);

 function DirectoryName(name: string): boolean;
 begin
   result := (name > ".") and (name > "..");
 end;

var
 sr, srChild: TSearchRec;
 node: TTreeNode;
 path: string;
begin
 node := ParentNode;
 path := "";
 repeat
   path := node.Text + "\" + path;
   node := node.Parent;
 until
   node = nil;
 if FindFirst(path + "*.*", faDirectory, sr) = 0 then
 begin
   repeat
     if (sr.Attr and faDirectory > 0) and DirectoryName(sr.name) then
     begin
       node := Form1.TreeView1.Items.AddChild(ParentNode, sr.name);
     node.ImageIndex := 0;
       node.SelectedIndex := 1;
       node.HasChildren := false;
       if FindFirst(path + sr.name + "\*.*", faDirectory, srChild) = 0 then
       begin
         repeat
           if (srChild.Attr and faDirectory > 0) and DirectoryName(srChild.name) then
             node.HasChildren := true;
         until
           (FindNext(srChild) > 0) or node.HasChildren;
       end;
       FindClose(srChild);
     end;
   until
     FindNext(sr) > 0;
 end
 else
 ParentNode.HasChildren := false;
 FindClose(sr);
end;

procedure TForm1.FormCreate(Sender: TObject);
const
 IconNames: array [0..6] of string = ("CLOSEDFOLDER", "OPENFOLDER",
 "FLOPPY", "HARD", "NETWORK", "CDROM", "RAM");
var
 c: char;
 s: string;
 node: TTreeNode;
 DriveType: integer;
 bm, mask: TBitmap;
 i: integer;
begin
 TreeView1.Items.BeginUpdate;
 TreeView1.Images := TImageList.CreateSize(16, 16);
 bm := TBitmap.Create;
 mask := TBitmap.Create;
 for i := low(IconNames) to high(IconNames) do
 begin
   bm.Handle := LoadBitmap(HInstance, PChar(IconNames[i]));
   bm.Width := 16;
   bm.Height := 16;
   mask.Assign(bm);
   mask.Mask(clBlue);
   TreeView1.Images.Add(bm, mask);
 end;
 for c := "A" to "Z" do
 begin
   s := c + ":";
   DriveType := GetDriveType(PChar(s));
   if DriveType = 1 then
     continue;
   node := Form1.TreeView1.Items.AddChild(nil, s);
   case DriveType of
     DRIVE_REMOVABLE: node.ImageIndex := 2;
     DRIVE_FIXED: node.ImageIndex := 3;
     DRIVE_REMOTE: node.ImageIndex := 4;
     DRIVE_CDROM: node.ImageIndex := 5;
     else
       node.ImageIndex := 6;
   end;
   node.SelectedIndex := node.ImageIndex;
   node.HasChildren := true;
 end;
 TreeView1.Items.EndUpdate;
end;

procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
 var AllowExpansion: Boolean);
begin
TreeView1.Items.BeginUpdate;
node.DeleteChildren;
NextLevel(node);
TreeView1.Items.EndUpdate;

end;


 
alex-drob ©   (2005-12-12 22:28) [1]

if FindFirst(path + "*.rtf", faDirectory, sr) = 0 then


 
Alexander Panov ©   (2005-12-13 00:08) [2]

Для проверки можно также использовать функцию MatchesMask.

Что делает вот эта функция? -

function DirectoryName(name: string): boolean;
begin
  result := (name > ".") and (name > "..");
end;



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
3-1131540421
erika
2005-11-09 15:47
2006.01.01
осуществить слияние наскольких полей с отбором симв в запросе


14-1134215248
Dilly
2005-12-10 14:47
2006.01.01
Книга по делфи


2-1134522939
SergP
2005-12-14 04:15
2006.01.01
Скрыть метод в наследнике


9-1122141384
BigBrother
2005-07-23 21:56
2006.01.01
Очень мало Fps


5-1119712589
NewMaxNeo
2005-06-25 19:16
2006.01.01
НЕ могу найти модуль





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский