Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Определение выбранных объектов

Ответить
Настройки темы
C/C++ - Определение выбранных объектов

Пользователь


Сообщения: 54
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброе время суток.

Беспокою со следующим вопросом. Реализация делается в среде Borland C++ Builder 6.
В программе на нажатии на кнопке "Открыть" выходит диалоговое окно выбора файла или файлов. После этот файл (или файлы) я должен зачитать в объект Memo.
Вопрос:
Как мне определить какие файлы выбраны, чтобы дальше зачитать их в компонент Memo, так как есть вероятность того, что из 10 файлов могут быть выбраны, скажем 7 файлов.

Отправлено: 11:08, 26-02-2009

 

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Afon, не работал в Borland C++ Builder 6 но заинтересовал момент с этим диалогом "Открыть". По моему это стандартны системный, так что одинаково представлена реализация в многих средах. Разве в нём можно выделить более одного файла?
Лично такое встречал в этом диалоге только в Винампе, но там походу он по своему вызывается.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:22, 27-02-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата Afon:
Как мне определить какие файлы выбраны, чтобы дальше зачитать их в компонент Memo »
Это нужно скорее приложение MDI.

В Borland C++ Builder 6 выбрать Файл - Новый - Другое - вкладка Проэкт - MDI Application, но там тоже стандартный диалог, больше одного файла не выделяет, но если дописать некоторый код, то можно будет перетаскиванием файлов открывать их в более чем одном окне. Я когда-то учебный пример делал, по этим инструкциям:

1. Шаг 5 - Хранилище объектов.
2. Шаг 6 - Апгрейдим MDI проект.
3. Шаг 7 - Прием файлов Drag'n'Drop.

Цитата Admiral:
Лично такое встречал в этом диалоге только в Винампе »
В AkelPad тоже такое есть.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Последний раз редактировалось Drongo, 27-02-2009 в 15:32. Причина: Дополнил ответ...

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:49, 27-02-2009 | #3


Аватара для Alan85

Забанен


Сообщения: 463
Благодарности: 91

Профиль | Цитировать


OpenDialog выделяет более одного файла. Для это надо в его свойствах в Object Inspector -> Options -> ofAllowMultiSelect поставить значение true. А значения получать из OpenDialog1->Files. Вот часть моего исходника:
Код: Выделить весь код
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 if (OpenDialog1->Execute()) Memo1->Lines->AddStrings(OpenDialog1->Files);      
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:20, 27-02-2009 | #4


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Drongo, Alan85, спасибо буду знать. Впервые в средствах разработки с этим диалогом "Открыть" столкнулся в VB6. Опции позволяющей выделять более одного файла на сколько помню там не было.
Не работаю с AkelPad по этому Винамп единственный который показал данную возможность.

Отправлено: 20:16, 27-02-2009 | #5


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата Alan85:
OpenDialog выделяет более одного файла. Для это надо в его свойствах в Object Inspector -> Options -> ofAllowMultiSelect поставить значение true. А значения получать из OpenDialog1->Files. »
Да, действительно получилось.

Только у меня открывается не содержимое файла, а его полный путь.



Если сменить выделенный красным цветом код
Код: Выделить весь код
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   if (OpenDialog1->Execute()) Memo1->Lines->AddStrings(OpenDialog1->Files);      
}
на такой
Код: Выделить весь код
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   if (OpenDialog1->Execute()) Memo1->Lines->LoadFromFile(OpenDialog1->FileName);      
}
То открывается содержимое текстового файла и выделяется произвольное количество файлов. В любом случае автору нужно было выделять более чем один файл в OpenDialog'e. Но всё равно я запутался. Это наверное для каждого файла, чтобы открыть все выбраные, нужно создавать для каждого своё окно Memo, верно?

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 20:34, 27-02-2009 | #6


Аватара для Alan85

Забанен


Сообщения: 463
Благодарности: 91

Профиль | Цитировать


Список файлов которые выделили хранится в коллекции типа Tstrings. Чтобы открывать каждый по очереди надо обращаться по очереди к каждому ему значению...
Код: Выделить весь код
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 AnsiString fo;

 if (OpenDialog1->Execute())

    for (int i=0; i<=OpenDialog1->Files->Count-1;i++)
     {
        fo=(*OpenDialog1->Files)[i];
       Memo1->Lines->Add(fo);
     //чтото еще делаем...
     }
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:22, 27-02-2009 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Определение выбранных объектов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ошибка - Не могу "Включить DEP для всех программ и служб, кроме выбранных ниже" Jumby Microsoft Windows 2000/XP 9 12-10-2011 10:10
Использование com-объектов на примере CTIOS r35p3ct AutoIt 0 15-10-2009 14:33
Лесенка на границах объектов Den47 Видео и аудио: обработка и кодирование 7 04-06-2009 21:01
JS:Описание объектов и их свойств Guest Вебмастеру 4 10-10-2004 14:17
Перечисление объектов типов vasketsov Программирование и базы данных 3 24-04-2002 17:32




 
Переход