|
Программирование >> Элементы языков с и с++
Как формировать список строк На этапе разработки приложения можно сформировать так называемый отладочный список, который в дальнейшем (когда приложение будет эксплуатироваться) неудобно поддерживать в актуальном состоянии, т. к. требуется корректировка списка и перекомпиляция приложения. Но, тем не менее, для отладочных работ список надо сформировать. Это делается с помошью ре-дашра текста, окно которого открывается, если щелкнуть на кнопке с многоточием в поле свойства компонента items. Д1Я производственных же нужд требуется создать функцию, которая бы за-Ф)жала текстовый файл в компонент (мы разбираем только случай, когда злементами ListBox являются текстовые строки), или воспользоваться возможностями данной среды разработки (что и рассмотрим для начала). В качестве источника данных выберем базу данных MS Access, которая поставляется с современными операционными системами и поэтому не вызовет проблем при реальной эксплуатации. Для проведения эксперимента создадим ВД под названием Библиотека, в которой есть таблица Авторы. Вот к ней мы и подключимся, чтобы выдать в ListBox одну колонку этой таблицы (фамилии авторов). Работа начинается с диалогового окна ListBox Tasks, которое открывается, если компонент ListBox активизировать (найти в его верхнем правом углу маленькую черную стрелку и нажать ее мышью). Далее ход подключения к ВД станет ясен из комментариев к рис. 11.52-11.61. Но, как оказалось, сделано еще полдела: выборка из сформированного списка- это непростая задача. Дело в том, что формат сформированных строк отличается от формата string. Кроме того, при щелчке на такой строке она начинает вести себя неадекватно: перемещается в начало списка. Чтобы дол-гоне разбираться с ситуацией, которая связана с изучением дополнительных классов, оставим этот пример просто как иллюстрацию возможности под-пючения к БД и организации просмотра ее элементов. Для нашей же задачи вернемся к первому способу: создадим функцию, которая станет загружать текстовые строки из обыкновенного текстового файла, подготовленного известным и простейшим инструментом - программой блокнот или программой Word. После создания такой программы применим ее для зафузки строк и попробуем вывести (по щелчку мыши на строке) отмеченную строку в компонент TextBox. Вид приложения в режиме дизайна показан на рис. 11.62, текст приложения - в листинге 11.6. Результат работы приложения приведен на рис. 11.63. Нажали на эту кнопку )(>ц< >и *7 Нажали , на эту I Source Строка 1 Стропа 2 Строка 3 I кнопку ListBoH Tasks 121 Use data bound items Data Binding Mode Data Source [(none) DisplayMember [ VAje Member Г Selected Value [(nonel Data Source Configuration Wizard Choose a Data Source Type where will the application get data from? f < rev-.:u;- 1 Ne t > i I Finish J [ Cancel Теперь надо нажать на эту кнопку Откроется это окно, в котором надо выбрать этот элемент Затем нажать эту кнопку Рис. 11.52. Шаг 1 подключения к БД Листинг 11.6 Фрагмент h-файла Forml.h private: / <sumraary> функция: загружает из файла текстовые строки в ListBox void LoadFtomFile(char *File, ListBox lb) (рипоненты, создающие интерфейс между пользователем и приложением 349 I char s[300]; ПЬЕ *fp; int i; i=0; lb->Items->Clear () ; if(! (fp=fopen (File, r ))) MessageBox::Show( Ошибка открытия файла , Приложение 54 , MessageBoxButtons::OK,MessageBoxIcon::Asterisk); return; while (!feof(fp)) I fgets(s,300,fp); String dd = gcnew String (s); /*этот способ конвертирования не удаляет последний управляющий символ, который надо удалить:*/ int j=dd->Length-l; dd=dd->Substring (О, j ); lb->Items->Add (dd); i++; [ / Required designer variable. JI/ </з1Ш1гпагу> [ Обработчики событий private: System: :Void buttonl Click (System: zObject sender, [ System:: EventArgs e) this->Close (); private: System::Void listBoxl Click(System: :Object sender. System: :EventArgs e)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |