Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2011, 09:29   #11
P@radise
 
Регистрация: 30.05.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
for j:=0 to MatchesMask.items.count -1 do 
  MatchesMask.items.strings[j]:=extractfilename(MatchesMask.items.strings[j]);
MatchesMask.items.strings - не воспринимает. Пишет ошибку, 'boolean' does not contain a member named 'items'
P@radise вне форума Ответить с цитированием
Старый 02.06.2011, 10:01   #12
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

from
Код:
Sl.Add(Dir + str.Name);
to
Код:
Sl.Add(str.name);
Просто НЕ добавлять к имени этот путь (dir)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 02.06.2011, 13:27   #13
P@radise
 
Регистрация: 30.05.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
from
Код:
Sl.Add(Dir + str.Name);
to
Код:
Sl.Add(str.name);
Просто НЕ добавлять к имени этот путь (dir)
Спасибо за помощь!!

Цитата:
Сообщение от evg_m Посмотреть сообщение
И как после такого будешь различать что математика, а что физика. к какой группе относится, если информация о группе удалена.
Более того как запустить учебник, если ты не знаешь в какой он папке.
Я теперь понял о чем ты говорил

Можно как-нить реализовать, чтобы в ListBox записывались все файлы без пути к ним, и при этом еще и открывались???

Последний раз редактировалось P@radise; 02.06.2011 в 18:42.
P@radise вне форума Ответить с цитированием
Старый 02.06.2011, 20:34   #14
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

ДВА списка.
1.Невидимый (TstringList) полный список сканирования папок. с полными путями.
2. Список показа Tlistbox
копирование из StringList в Listbox нужных строк и запоминание при этом индекса строки в полном спсике.
Код:
for j:=0 to stringList.count-1 do begin
   if .... then  begin
    listbox.Items.Addobject(stringlist.strings[j], TObject(j)); 
//  TObject(j) 'это будет индекс в полном спсиске сохраненный вмете со строкой  Listbox
  end;
end;
при выборе в Listbox по сохранненому индексу обращаемся в полный список
Код:
j:=Listbox.itemIndex;
if j>=0 then begin
  n:=integer(listbox.Items.objects[j]); //достали индекс полного списка 
end
else n:=-1;
if n>=0 then 
  f:=stringList.strings[n]; // достали полный буть
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 03.06.2011, 12:41   #15
P@radise
 
Регистрация: 30.05.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
ДВА списка.

Код:
for j:=0 to stringList.count-1 do begin
   if .... then  begin
    listbox.Items.Addobject(stringlist.strings[j], TObject(j)); 
//  TObject(j) 'это будет индекс в полном спсиске сохраненный вмете со строкой  Listbox
  end;
end;
stringlist.strings[j] - здесь ругается. Пишу так:
Код:
Form2.listbox1.Items.Addobject(Form2.stringlist.Items.Strings[j], TObject(j));
а так списки просто дублируются и не доходит что писать в if .... then begin
P.S. Сорри, я новичок в этом еще
P@radise вне форума Ответить с цитированием
Старый 07.06.2011, 11:36   #16
P@radise
 
Регистрация: 30.05.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
ДВА списка.
1.Невидимый (TstringList) полный список сканирования папок. с полными путями.
2. Список показа Tlistbox
копирование из StringList в Listbox нужных строк и запоминание при этом индекса строки в полном спсике.
Код:
for j:=0 to stringList.count-1 do begin
   if .... then  begin
    listbox.Items.Addobject(stringlist.strings[j], TObject(j)); 
//  TObject(j) 'это будет индекс в полном списке сохраненный вместе со строкой  Listbox
  end;
end;
Поясните пожалуйста, куда вставить данный код.

в мою процедуру DirSearch (поиск файлов в папке и подпапках) или....? Я ее вызываю потом кнопкой
Код:
procedure DirSearch(Dir: string; Mask : string; SL: TStrings);
var str: TSearchRec;
begin
  Dir := IncludeTrailingBackslash(Dir);

  if FindFirst(Dir + '*.*', faAnyFile, str) = 0 then
    repeat
      Application.ProcessMessages;

      if (str.Attr and faDirectory) <> 0 then begin
        if (str.name <> '.') and (str.name <> '..') then
                DirSearch(Dir + (str.name), Mask, sl)
      end
      else
        if MatchesMask(ExtractFileName(str.Name), Mask) then
          Sl.Add(Dir + (str.Name));
    until FindNext(str) <> 0;
  FindClose(str);
end;
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Hide;
Form2.Show;
         DirSearch('C:\ЭБ', '*.exe', Form2.listbox1.Items);
Самостоятельно у меня ничего не получается, помогите плиииззз!!!
P@radise вне форума Ответить с цитированием
Старый 07.06.2011, 13:12   #17
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Поясните пожалуйста, куда вставить данный код.
код что делает?
ЗАПОЛНЯЕТ Listbox некими значениями из первоначального списка значит и вставлять его надо ТАМ где ХОТИМ и когда готовы формировать нужный нам список. видимо это ...
Цитата:
Я ее вызываю потом кнопкой
Для использования предварительно должен быть заполнен ИСХОДНЫЙ список StringList
Цитата:
в мою процедуру DirSearch (поиск файлов в папке и подпапках) или...
теперь должна заполнять не ListBox а наш StringList. А уж после этого по мере необходимости (по кнопочке) чистить и заполнять ListBox.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 07.06.2011, 13:27   #18
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

На будущее развитие проекта рекомендую прислушаться к данному совету.
Цитата:
В принципе можно предварительно создать каталог в отдельном файле, там же можно указать принадлежность к какой либо группе
каталог можно организовать с помощью ini файла примерно такой структуры
Код:
[наименование раздела]
наименование учебника в данном разделе = ссылка на файл учебника
Цитата:
[Математика]
первый класс =matem\book1.doc
второй класс =matem\book2.doc
[Русский язык]
первый класс =rus\book1.doc
второй класс =rus\book2.doc
[первый класс]
математика =matem\book1.doc
русский =rus\book1.doc
[второй класс]
математика =matem\book2.doc
русский =rus\book2.doc
а для работы использовать функционал TiniFile.
список разделов ReadSections
список учебников раздела ReadSection
конкретный учебник ReadString
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 07.06.2011 в 13:34.
evg_m вне форума Ответить с цитированием
Старый 07.06.2011, 15:12   #19
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

зачем усложнять все?

если стоит d2009 или выше, то проблем вообще не может быть...

используй TListView, там есть реальная группировка, можно создать пару колонок
в caption записать только имя во второй колонке с 0-ой шириной (если не хочешь чтобы видели) вписать полный путь к файлу...

P.S. я считаю это правильным решением, чем баловаться со списком и TListBox'ом
ZuBy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
количество имен открытых файлов Пользователь1 Microsoft Office Excel 1 24.04.2011 08:53
Открытие Excel из списка файлов ListBox anton555sleptsov Помощь студентам 2 16.11.2010 22:48
Получить список имен файлов на сайте syserg Работа с сетью в Delphi 8 28.03.2010 14:01
Список ListBox из файла и открытие файлов в браузере oduvan4ik Общие вопросы Delphi 3 02.03.2009 23:35
Перевод длинных имен файлов в короткие... ActiveX Помощь студентам 1 24.10.2008 16:47