Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> юзабили программы 
V
    Опции темы
uwannadie
  Дата 28.3.2010, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 5.6.2009
Где: Крым, Керчь

Репутация: нет
Всего: 1



пишу одну веселую программу.
в процессе работы программа сканирует выбранную пользователем папку и заполняет stringlist полными путями файлов в этой папке. в дальнейшем возникает необходимость разбить эти файлы по нескольким категориям, причем вручную.
Возник вопрос: каким образом это сделать в таком виде, чтобы не нагружать форму лишними компонентами и не особо загружать пользователя кучей манипуляций.
для случая в 2 категории использовал TJVCheckTreeView (то бишь галочка стоит - категория1, не стоит - категория2). 
Но что делать, если таких категорий 3,4,5? Подскажите, может кто-нибудь сталкивался с подобной проблемой?
--------------------
PM MAIL   Вверх
kami
Дата 28.3.2010, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



VirtualStringTree с ComboBox|SpinEdit в ячейках, отвечающих за категорию ?
PM MAIL WWW   Вверх
uwannadie
Дата 28.3.2010, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 5.6.2009
Где: Крым, Керчь

Репутация: нет
Всего: 1



Цитата(kami @ 28.3.2010,  22:46)
VirtualStringTree с ComboBox|SpinEdit в ячейках, отвечающих за категорию ?

VirtualStringTree - где можно найти по этому хелпы/доки/маны ? 

поиск рулит, нашел сайт разработчиков: http://soft-gems.net/

Это сообщение отредактировал(а) uwannadie - 28.3.2010, 23:14
--------------------
PM MAIL   Вверх
Dom
Дата 29.3.2010, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 7.8.2005

Репутация: 1
Всего: 4



Вот тут http://forum.vingrad.ru/forum/topic-97620.html + поиск по форуму = много интересного. smile
PM MAIL   Вверх
Akella
Дата 29.3.2010, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Можно использовать связку TMemoryTable с TDBGrid. Тут уже на много больше возможностей.

Это сообщение отредактировал(а) Akella - 29.3.2010, 11:17
PM MAIL   Вверх
uwannadie
Дата 30.3.2010, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 5.6.2009
Где: Крым, Керчь

Репутация: нет
Всего: 1



разобрался вроде как, спс всем, кто помог.

ну и на будущее (может кому пригодится) выложу то, что получилось:

Код

procedure FindFiles(directory: string; pTree: TVirtualStringTree; pNode: PVirtualNode);
var
  Mysearch: TSearchRec;
  FldrNode: PVirtualNode;
  FileData: PFileInfo;
begin
  if directory[Length(directory)] <> '\' then
    directory := directory + '\';
  if FindFirst(directory + '*.*', faDirectory, Mysearch) = 0 then
  begin
    repeat
      //поиск папок
      if ((Mysearch.Attr and faDirectory) = faDirectory) and (Mysearch.Name[1] <> '.') then
      begin
        if (Mysearch.Attr and faDirectory > 0) then
        begin
          pNode := pTree.AddChild(pNode,nil);
          FileData := pTree.GetNodeData(pNode);
          if Assigned(FileData) then
          with FileData^ do
          begin
            FileName := Directory + Mysearch.Name;
            TreeName := Mysearch.Name;
            FilePriority := fpNormal;
            ImageIndex := 0;
          end;
        end;
        FldrNode := pNode.Parent;
        FindFiles(directory + Mysearch.Name + '\', pTree, pNode);
        pNode := FldrNode;
      end;
    until FindNext(Mysearch) <> 0;
    FldrNode := pNode;
  if FindFirst(directory + '*.*', $23, Mysearch) = 0 then
  begin
    repeat
      //поиск файлов
      pNode := pTree.AddChild(FldrNode,nil);
      FileData := pTree.GetNodeData(pNode);
      if Assigned(FileData) then
      with FileData^ do
      begin
        FileName := Directory + Mysearch.Name;
        TreeName := Mysearch.Name;
        FilePriority := fpNormal;
        ImageIndex := 1;
      end;
    until FindNext(Mysearch) <> 0;
  end;
  FindClose(Mysearch);
  end;
end;


данные  в процессе поиска заносятся в структуру:

Код

type
  PFileInfo = ^TFileInfo;

  TFileInfo = record
    FileName: String; //полный путь к файлу
    TreeName: String; //имя узла в дереве
    FilePriority: TFilePriority; //служебная информация
    ImageIndex: Byte; //индекс картинки в imagelist-е
  end;



Это сообщение отредактировал(а) uwannadie - 1.4.2010, 22:15
--------------------
PM MAIL   Вверх
uwannadie
Дата 1.4.2010, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 5.6.2009
Где: Крым, Керчь

Репутация: нет
Всего: 1



возник еще 1 мелкий вопрос: в каком событии нужно обрабатывать следующее:
при изменении 2й колонки у ветки дерева, которая имеет наследников, необходимо изменить на аналогичное значение колонку у этих наследников (аналог чекбоксов: нажал у родителя - выделились все наследники).
--------------------
PM MAIL   Вверх
Akella
Дата 2.4.2010, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Модератор: один вопрос = 1 тема
PM MAIL   Вверх
uwannadie
Дата 2.4.2010, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 5.6.2009
Где: Крым, Керчь

Репутация: нет
Всего: 1



тему можно закрыть, разобрался уже
--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.