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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CheckListBox, Отображение и выбор файлов 
:(
    Опции темы
AyanTai
Дата 26.12.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток всем!
Проблема такая: выбираю нужную директорию SelectDirectory, как можно отобразить dbf файлы из этой директории в CheckListBox?
Просто не представляю как это сделать... smile  по поисковику ничего подобного не нашел((

procedure TForm1.btDirOut_ordClick(Sender: TObject);
var
tmp_path : string;
begin
  if SelectDirectory('Выберите диркторию', '', tmp_path) then
  begin
    Edit2.text:=tmp_path;
  end;
PM MAIL   Вверх
newalex
Дата 26.12.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код на билдере, но думаю идея понятна.

Код

 AnsiString Path = ExtractFilePath(Application->ExeName);
  SelectDirectory("Выберите папку","",Path);
  if (Path==NULL)
    return;

  TSearchRec DirInfo;
  Path = IncludeTrailingBackslash(Path);
  CheckListBox1->Items->Clear();

  int r = FindFirst(Path + "*.data", faAnyFile, DirInfo); // расширение твое тут вместо data
  while (r==0)
  {
     if (((DirInfo.Attr && faDirectory) != faDirectory) &&
        ((DirInfo.Attr && faVolumeID) != faVolumeID))
     {
        CheckListBox1->Items->Add(DirInfo.Name);
     }
     r = FindNext(DirInfo);
  }

 

Это сообщение отредактировал(а) newalex - 26.12.2008, 13:57
PM MAIL   Вверх
THandle
Дата 26.12.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 65
Всего: 372



Просто находишь все файлы с нужным расширением и добавляешь в CheckListBox.

Посмотри темы:
http://forum.vingrad.ru/sources/topic-205111.html
http://forum.vingrad.ru/forum/topic-238020.html

Вот этот код, думаю то что требуется:
http://forum.vingrad.ru/index.php?showtopi...t&p=1715688


PM   Вверх
AyanTai
Дата 27.12.2008, 05:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, сейчас гляну!
PM MAIL   Вверх
AyanTai
Дата 27.12.2008, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



все здорово -   smile 
спасибо ребята - сделал!
а как  сделать так: для ВСЕХ выбранных файлов в CheckListBox dbf выполнять некую процедуру...?

if CheckListBox1.selected[0] then <процедура>  - так этож для конкретного файла....а для всех сразу ?
PM MAIL   Вверх
THandle
Дата 27.12.2008, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 65
Всего: 372



AyanTai, хм... Ну объединяй все выбранные элементы в какой нибудь список(TStringList, массив...), или кто мешает поочередно, в цикле, для каждого по очереди вызывать нужную процедуру?smile
PM   Вверх
AyanTai
Дата 29.12.2008, 05:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



у меня просто будет много файлов... и надо будет их все поочередно загонять на одну и ту же процедуру...   smile 
PM MAIL   Вверх
AyanTai
Дата 29.12.2008, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вопрос: вот у меня в CheckListBox1 выводятся найденные файлы, я один файл отметил галочкой, есть у CheckListBox1 свойство чтоб выдавал имя отмеченного файла??? что-то похожее на OpenDialog1.FileName
PM MAIL   Вверх
THandle
Дата 29.12.2008, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 65
Всего: 372



Ну а чем просто не угодило брать каждый раз отмеченный галочкой файл?
Код


procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
  with CheckListBox1 do
    if Checked[ItemIndex] then
      Proc(Items[ItemIndex]);
end;


Proc тут - твоя процедура.


Цитата(AyanTai @  29.12.2008,  08:36 Найти цитируемый пост)
имя отмеченного файла??? что-то похожее на OpenDialog1.FileName 


http://forum.vingrad.ru/faq/topic-212851.html
PM   Вверх
AyanTai
Дата 29.12.2008, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



и как можно узнать количество отмеченных файлов в CheckListBox1?? просто хочу сделать цикл
For i:=0 to кол-во отмеченных do begin
       if CheckListBox1.selected[i] then
       тут надо вывести название выбранного файла....(((
        <процедуры..>
end;

Добавлено через 3 минуты и 14 секунд
THandle,  спасибо!! Респект! буду делать)
PM MAIL   Вверх
THandle
Дата 29.12.2008, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 65
Всего: 372



AyanTai, Количество выделенных ты никак не узнаешь smile (ну если сам не посчитаешь)

Для этого производится проверка на выделенность:

Цитата(AyanTai @  29.12.2008,  08:47 Найти цитируемый пост)
if CheckListBox1.selected[i] then


Код

var
  I: Integer;
begin
  for I := 0 to CheckListBox1.Items.Count - 1 do
    if CheckListBox1.Selected[I] then
      Proc();
end;


ну и with сюда для удобства:

Код

var
  I: Integer;
begin
  with CheckListBox1 do
    for I := 0 to Items.Count - 1 do
      if Selected[I] then
        Proc();
end;



А еще посмотри вот такой код(подсчет идет без цикла, прям во время нажатия), хотя тебе вряд ли пригодится тут этот вариант, но все же глянь:

http://forum.vingrad.ru/index.php?showtopi...t&p=1667962
PM   Вверх
AyanTai
Дата 29.12.2008, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



THandle,   ----  Спасибо!!!!
PM MAIL   Вверх
AyanTai
Дата 29.12.2008, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а чтоб получить имя файла надо будет так сделать:

procedure TForm1.Button2Click(Sender: TObject);            
var
  I: Integer;
begin
  with CheckListBox1 do
    for I := 0 to Items.Count - 1 do
      if Selected[I] then
       Form1.ADOTable1.TableName:=ExtractFileName(CheckListBox1.Selected[I]);
       Proc();
end;

????
PM MAIL   Вверх
THandle
Дата 29.12.2008, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 65
Всего: 372



AyanTai, в асе ответил smile

Код

Form1.ADOTable1.TableName:=ExtractFileName(CheckListBox1.Items[I]);

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

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

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

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

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


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

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


 




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


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

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