Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

SVlad84

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!  
Прошу помощи начинающему.
Необходимо нажатием кнопки отобразить дерево некоего каталога на диске в cxVirtualTreeList.  
Нашел код для Treeview и переписал Treeview в cxVirtualTreeList но ошибка в одной строчке мешает компиляции.

Код:
 
implementation
 
{$R *.dfm}
{$R FileCtrl}
 
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.SpeedButton2Click(Sender: TObject);
const
  IconNames: array [0..6] of string = ('CLOSEDFOLDER', 'OPENFOLDER',
  'FLOPPY', 'HARD', 'NETWORK', 'CDROM', 'RAM');
var
  c: char;
  s: string;
  //node: TTreeNode;
  node: TcxTreeListNode;
  DriveType: integer;
  bm, mask: TBitmap;
  i: integer;
begin
  //TreeView1.Items.BeginUpdate;
  cxVirtualTreelist1.BeginUpdate;
 
  //TreeView1.Images := TImageList.CreateSize(16, 16);
  cxVirtualTreelist1.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);
    cxVirtualTreelist1.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);
    node := Form1.cxVirtualTreelist1.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;
  cxVirtualTreelist1.EndUpdate;
end;
 
procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
begin
//  TreeView1.Items.BeginUpdate;
  cxVirtualTreelist1.BeginUpdate;
  node.DeleteChildren;
  NextLevel(node);
//  TreeView1.Items.EndUpdate;
  cxVirtualTreelist1.EndUpdate;
end;
 

Всего записей: 1 | Зарегистр. 09-10-2023 | Отправлено: 16:17 10-10-2023 | Исправлено: SVlad84, 16:23 10-10-2023
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru