Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Exe1592
1 / 1 / 2
Регистрация: 07.02.2018
Сообщений: 85
1

ComboBox и связь с файлом

03.07.2018, 09:22. Просмотров 889. Ответов 19
Метки нет (Все метки)

Здравствуйте уважаемые пользователи форума, прошу помочь в одном вопросе по реализации.
Имеется 2 компонента ComboBox и нужна реализация в первом компоненте чтобы можно было выбрать папку с диска 'C' и это отображалось в компоненте, а во втором выбор названия файла из этой папки. Код ниже рабочий но отображает лишь строки которые содержатся там. А нужно только имя файла, если пользователь его выбирает то отображается дерево в Treelist с содержанием! Спасибо
Delphi
1
2
3
4
5
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Items.LoadFromFile('C:\CATIASET\SETTINGS\STANDARD\DRAFTING\ESKD.XML');
ComboBox1.Items.Add('ESKD');
end;
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2018, 09:22
Ответы с готовыми решениями:

Связь с combobox
Здравствуйте у меня возникла следующая сложность: Нужно связать 2 ComboBox и в зависимости какое...

Связь combobox
Здравствуйте все. Скажите, пожалуйста, как связать два combobox-a так: есть два значения-1,2(это...

Соединение combobox с текстовым файлом
Как связатьcombobox с текстовым файлом?

Связь 2-ух ComboBox c button
Как связать 2 ComboBox c button что бы в Memo выводило то что я захочу? Подскажите пожалуйста.

Связь между ListBox, Edit, ComboBox
Граждане нужна Ваша помощь!!! При Вводе текста в Edit В зависимости какой ListBox выбран в...

19
D1973
Модератор
4338 / 3128 / 1489
Регистрация: 21.01.2014
Сообщений: 13,367
Записей в блоге: 3
Завершенные тесты: 1
03.07.2018, 09:52 2
А чем не угодили Shell... компоненты: ShellComboBox, ShellTreeView, ShellListView?

Добавлено через 2 минуты
Цитата Сообщение от Exe1592 Посмотреть сообщение
Код ниже рабочий
Дык он не делает ничего, кроме как загружает в айтемы содержимое какого-то xml-файла и в конце добавляет еще строку 'ESKD' При чем тут файлы и папки?
0
Exe1592
1 / 1 / 2
Регистрация: 07.02.2018
Сообщений: 85
03.07.2018, 09:56  [ТС] 3
Немного разобрался
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.ComboBox1Change(Sender: TObject);
var
  s: TStringList;
  i: integer;
begin
  ComboBox2.Clear;
  s := Tstringlist.Create;
  s.LoadFromFile('ESKD.xml');
  for i := 0 to s.Count - 1 do
    ComboBox2.Items.Add(s.strings[i]);
  s.Free;
    //ComboBox1.Items.LoadFromFile('C:\CATIASET\SETTINGS\STANDARD\drafting\ESKD.xml');
end;
Но опять таки он загружает файл из папки "Debug" а должен загружать из корня папки диска C:
0
D1973
Модератор
4338 / 3128 / 1489
Регистрация: 21.01.2014
Сообщений: 13,367
Записей в блоге: 3
Завершенные тесты: 1
03.07.2018, 10:03 4
Delphi
1
s.LoadFromFile('c:\ESKD.xml');
Будет загружать из "корня папки диска C:" если он там есть...
0
03.07.2018, 10:03
Exe1592
1 / 1 / 2
Регистрация: 07.02.2018
Сообщений: 85
03.07.2018, 10:05  [ТС] 5
Понял.Спасибо. Это то и так понятно.
Но там есть еще папка "Категория" в первом комбо нужно чтобы открывалась именно она, а во втором чтобы был выбор на открытие файла которые содержатся в папке, при открытие файла второго комбо чтобы содержание загружалось в TreeList или TreeView в виде дерева, ну или как то так
0
D1973
Модератор
4338 / 3128 / 1489
Регистрация: 21.01.2014
Сообщений: 13,367
Записей в блоге: 3
Завершенные тесты: 1
03.07.2018, 10:19 6
Цитата Сообщение от Exe1592 Посмотреть сообщение
Это то и так понятно
А вот мне, если честно, совершенно не понятно, что надо сделать и что Вы пытаетесь до нас донести... При чем тут какая-то папка "Категория", где и у кого она вообще есть? И черт бы с ним, но папка не может "открыться в первом комбо". Вы можете отобразить в айтемах комбобокса список файлов, которые содержатся в некоторой папке - это да. Но при чем тогда загрузка какого-то xml-файла?
Что такое "открытие файла второго комбо"? Какое содержание должно загружаться в TreeView?
Exe1592, Вы не спешите, сформулируйте задачу так, чтобы было понятно не только Вам - и все нормализуется. Грамотная формулировка вопроса - более 50% ответа, так что глядишь, и сами решение найдете.
0
Exe1592
1 / 1 / 2
Регистрация: 07.02.2018
Сообщений: 85
03.07.2018, 10:26  [ТС] 7
Прошу прощения за некорректный вопрос.
А что именно непонятно? Непонятно что такое папка в операционной системе?
Или непонятно что она должна быть выбрана в первом компоненте ComboBox? Может быть непонятно что во втором ComboBox должен быть выбран один из файлов содержащих в папке после выбора?
0
D1973
Модератор
4338 / 3128 / 1489
Регистрация: 21.01.2014
Сообщений: 13,367
Записей в блоге: 3
Завершенные тесты: 1
03.07.2018, 10:39 8
Цитата Сообщение от Exe1592 Посмотреть сообщение
Непонятно что такое папка в операционной системе?
Смешно, да...
Цитата Сообщение от Exe1592 Посмотреть сообщение
Или непонятно что она должна быть выбрана в первом компоненте ComboBox?
Именно! Нельзя выбрать в Комбобоксе какую-то папку! Можно заполнить Комбобокс именами папок и выбрать какой-то элемент, который будет содержать полный путь к какой-то папке - не более того.
Цитата Сообщение от Exe1592 Посмотреть сообщение
Может быть непонятно что во втором ComboBox должен быть выбран один из файлов содержащих в папке после выбора?
В том то и дело, что ничерта понятно не было! Объяснили бы сразу ясно и понятно, что в первый комбобокс требуется загрузить список папок диска С:, при выборе какого-то айтема - во второй комбобокс загрузить список файлов, которые находятся по пути, указанном в первом комбобоксе - все было бы ясно и понятно. А этот Ваш словесный понос (извините за выражение) из первого поста ничего подобного собой не подразумевал.
Вот только теперь объясните, при чем тут какой-то файл "ESKD.xml", пример с которым Вы приводили и который загружали в Items своего комбобокса?
0
Exe1592
1 / 1 / 2
Регистрация: 07.02.2018
Сообщений: 85
03.07.2018, 10:40  [ТС] 9
Нужно сделать чтобы этот путь папки "Drafting" был открыт в первом комбо
а во втором комбо возможность выбора файла "ESKD"
СООТВЕТСТВЕННО при выборе этого файла чтобы информация из него прогружалась в дерево компонента TreeList, TreeView и т.д
Все.Что может быть непонятного?)
0
Миниатюры
ComboBox и связь с файлом  
Exe1592
1 / 1 / 2
Регистрация: 07.02.2018
Сообщений: 85
03.07.2018, 10:43  [ТС] 10
Как это причем файл? Он то и нужен!!!!

Добавлено через 1 минуту
Или я по вашему за место нужного файла должен "воздух" прогружать???
0
D1973
Модератор
4338 / 3128 / 1489
Регистрация: 21.01.2014
Сообщений: 13,367
Записей в блоге: 3
Завершенные тесты: 1
03.07.2018, 10:43 11
Лучший ответ Сообщение было отмечено Exe1592 как решение

Решение

Ну вот это понятно, не то, что раньше...
Но тут я опять Вам предлагаю использовать компоненты ShellComboBox и ShellListView...
0
Exe1592
1 / 1 / 2
Регистрация: 07.02.2018
Сообщений: 85
03.07.2018, 10:44  [ТС] 12
А подробнее про них МОЖНО ? Никогда с ними не работал
0
D1973
Модератор
4338 / 3128 / 1489
Регистрация: 21.01.2014
Сообщений: 13,367
Записей в блоге: 3
Завершенные тесты: 1
03.07.2018, 10:44 13
Цитата Сообщение от Exe1592 Посмотреть сообщение
за место нужного файла должен "воздух" прогружать???
Повторяю еще раз: зачем грузить содержимое файла в выпадающий список комбобокса?
0
Exe1592
1 / 1 / 2
Регистрация: 07.02.2018
Сообщений: 85
03.07.2018, 10:48  [ТС] 14
чтобы наглядно понять как работает, прозрение человеку не сразу приходит, сами понимать должны!
А вообще содержимое должно прогружаться как и писал в TreeList с возможностью исправления в этом файле размера. Но исправление уже будет производиться непосредственно в TreeList и изменяться в файле ESKD
Объяснил доходчиво?
0
D1973
Модератор
4338 / 3128 / 1489
Регистрация: 21.01.2014
Сообщений: 13,367
Записей в блоге: 3
Завершенные тесты: 1
03.07.2018, 11:23 15
Цитата Сообщение от Exe1592 Посмотреть сообщение
А подробнее про них МОЖНО
А в гугле забанили? Читайте абзац "современные файловые компоненты" (да, когда-то они были "современными")

Добавлено через 13 минут
А вообще, зачем Вам там 2 комбобокса? Выбрать папку можно, используя функцию SelectDirectory, получить список файлов - TDirectory.GetFiles, после чего полученный список загрузить в айтемы комбобокса для выбора пользователем... Хотя, если у Вас используется конкретный файл, зачем вообще файл выбирать? Указали нужный каталог, проверили наличие этого файла - и вперед на загрузку...
А кстати, что это за компонент такой: TreeList? Я не сталкивался с таким ни в Delphi, ни в C++ Builder
0
Exe1592
1 / 1 / 2
Регистрация: 07.02.2018
Сообщений: 85
03.07.2018, 12:44  [ТС] 16
Не суть для чего это надо...
Но это принципиально,программа пишется по аналогии CATIA

Добавлено через 3 минуты
TreeList это компонент из каталога DevExpress
Информации тоже не особо много об этом.
Но факт остается фактом

Добавлено через 37 минут
Так все же что можно сделать чтобы реализовать?
0
krapotkin
3939 / 3299 / 1128
Регистрация: 14.04.2014
Сообщений: 15,813
Записей в блоге: 17
03.07.2018, 13:15 17
чаще всего достаточно вслух произносить желаемые действия )))

и решать задачу почастям
1.
-что вы хотите, чтобы было в начале?
-я хочу заполнить комбо бокс именами папок
-где находятся эти папки? на диске C? почему начинаем не с выбора диска например?

первую задачу решили?
0
D1973
Модератор
4338 / 3128 / 1489
Регистрация: 21.01.2014
Сообщений: 13,367
Записей в блоге: 3
Завершенные тесты: 1
03.07.2018, 14:38 18
Цитата Сообщение от krapotkin Посмотреть сообщение
где находятся эти папки? на диске C?
Судя по приведенному коду - там 4 уровня вложенности... Откуда начинать сканировать папки - непонятно...
0
Exe1592
1 / 1 / 2
Регистрация: 07.02.2018
Сообщений: 85
03.07.2018, 14:53  [ТС] 19
Вопрос решен. Единственное что остается сделать так это закрыть тему.
Решил путем жесткого присвоения пути каждого файла к своей категории.
С папками заморачиваться не стал, через Items просто названия перечислил...
0
krapotkin
3939 / 3299 / 1128
Регистрация: 14.04.2014
Сообщений: 15,813
Записей в блоге: 17
03.07.2018, 15:19 20
перечитал первый и последний пост
связи не нашел
нить беседы утеряна
увы
0
03.07.2018, 15:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2018, 15:19

Связь dataGridView с файлом
Как при нажатии на любую строчку в таблице datagridview сделать так, чтобы она связывалась с...

Связь ячейки Excel с doc-файлом
Такая проблема: как можно связать содержание ячейки Excel средствами VBA, с документом Word?...

Не удается наладить связь между h и cpp файлом
Добрый вечер! Моя программа состоит из двух файлов. Первый: MyForm.h - именно в нем располагается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru