- •Введение
- •Основные концепции объектно-ориентированного программирования
- •Принципы ооп
- •Архитектура программы при ооп
- •Объектно-ориентированные языки програм-мирования
- •Описание класса в Object Pascal
- •События и реакция на них
- •Интегрированная среда разработки
- •Интегрированная среда разработки Delphi 7: 1 – главное окно; 2 - окно Дерева объектов; 3 – окно Инспектора объектов; 4 – окно Проводника кода; 5 – окно Конструктора форм; 6 – окно Редактора кода
- •Характеристика проекта Delphi
- •Компиляция и выполнение проекта
- •Знакомство со средой программирования
- •Компонент Lable
- •Компонент Label
- •Инспектор объектов
- •Компонент Edit
- •Компонент Edit
- •Компоненты Button, BitBtn, SpeedButton
- •Примеры кнопок Button, BitBtn и SpeedButton
- •Пример приложения
- •Форма с размещенными на ней компонентами
- •Компоненты для работы с текстом
- •Строковый редактор
- •Пример работы с компонентом Memo
- •Компонент RichEdit
- •Примеры форматирования текста в компоненте RichEdit
- •Списки строк
- •Компонент ListBox
- •Пример работы со списками строк
- •Компонент ComboBox
- •Переключатели
- •Компонент CheckBox
- •Пример работы с независимыми переключателями
- •Компоненты RadioButton и RadioGroup
- •Пример работы с группой зависимых переключателей
- •Объединение элементов управления. Компонент Panel
- •Примеры различного оформления рамки панелей
- •Компоненты OpenDialog и SaveDialog
- •Диалоговое окно открытия файла
- •Редактор фильтра
- •Работа с меню
- •Компонент MainMenu
- •Конструктор меню
- •Компонент PopupMenu
- •Пример контекстного меню
- •Работа с базами данных
- •Средства для работы с базами данных
- •Создание баз данных с помощью Database Desktop
- •Окно выбора формата таблицы
- •Окно определения структуры таблицы
- •Пример структуры таблицы
- •Пример заполненной таблицы
- •Создание псевдонимов бд в bde Administrator
- •Диалоговое окно создания псевдонима бд
- •Главное окно Администратора bde
- •Компоненты для работы с бд
- •Пример приложения
- •Форма с компонентами Table, DataSource и dbGrid
- •Редактор полей таблицы
- •Пример таблицы с измененными свойствами
- •Работа с графикой
- •Пример работы с графикой
- •Лабораторное задание
- •Указания по оформлению отчета
- •Контрольные вопросы
- •Заключение
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
Компоненты для работы с текстом
Общие указания по выполнению лабораторной работы
Цель работы
Изучение методов работы с компонентами, предназначенными для обработки многострочных текстов; получение навыков использования основных свойств, методов и событий этих компонентов.
Используемое оборудование и программное обеспечение
Для выполнения лабораторной работы требуется ПЭВМ типа IBM PC с ОС Windows 2000 и выше, среда разработки Borland Delphi 7 или Borland C++ Builder.
Домашнее задание и методические указания по его выполнению
Многострочные редакторы текста
Компонент Memo
Для работы с многострочным текстом Delphi и C++ Builder предоставляют несколько компонентов. Наиболее часто используемыми являются Memo и RichEdit. Сначала рассмотрим работу с компонентом Memo .
Для доступа ко всему содержимому многострочного редактора используется свойство Text строкового типа. В этом случае все содержимое компонента Memo представляется одной строкой, а конец каждой строки, вставляемый при нажатии клавиши <Enter>, записывается двумя кодами #13#10.
Для работы с отдельными строками используется свойство Lines типа TStrings. Данный класс является базовым для выполнения операций со строковыми данными и предоставляет соответствующие свойства и методы.
К каждой строке многострочного редактора можно получить доступ по ее номеру в массиве Lines. Отсчет элементов списка начинается с нуля. Для обращения к первому элементу нужно указать Lines[0], ко второму - Lines[1] и т.д. При операциях с отдельными строкам программист должен контролировать номера строк в редакторе и не допускать обращения к несуществующему элементу.
При конструировании приложения изменение списка строк выполняется с помощью строкового редактора String List Editor (рис. 8). Его вызов выполняется через Инспектор объектов нажатием кнопки с многоточием в поле свойства Lines.
Строковый редактор
Свойство Count типа integer задает число элементов в списке. Поскольку первый элемент списка имеет нулевой номер, то номер последнего элемента равен Count – 1.
Например, присвоим элементам редактора Memo новые значения:
// - - - - Object Pascal - - - -
for i := 0 to Memo1.Lines.Count do
Memo1.Lines[i] := 'Строка № ' + IntToStr(i);
// - - - - - - - C++ - - - - - - -
for (int i = 0; i < Memo1->Lines->Count; i++)
Memo1->Lines->Strings[i] = "Строка №" + IntToStr(i);
Результат работы программы показан на рис. 9.
Пример работы с компонентом Memo
Методы Add и Insert служат для добавления строк в многострочный редактор. Функция Add(s: string): integer добавляет строку s в конец текста, а в качестве результата возвращает положение нового элемента в списке. Процедура Insert(index: integer; s: string) вставляет строку s на позицию с номером index. При этом строки, находившиеся до операции вставки в указанной позиции и ниже, смещаются вниз.
Для удаления элементов из Memo используются методы Delete и Clear. Метод Delete(index: integer) удаляет элемент с номером index.
Метод Clear очищает многострочный редактор, удаляя все его элементы.
Примеры использования методов Memo:
// - - - - Object Pascal - - - -
Memo1.Lines.Add('Новая строка');
Memo1.Lines.Delete(4);
Memo1.Clear;
// - - - - - - - C++ - - - - - - -
Memo1->Lines->Add("Новая строка");
Memo1->Lines->Delete(4);
Memo1->Clear();
Процедура Move(cur_index, new_index: integer) перемещает элемент с позиции с номером cur_index в позицию с номером new_index.
Поиск элемента в редакторе можно выполнить с помощью метода IndexOf. Функция IndexOf(s: string): integer определяет, содержится ли строка s в редакторе. В случае успешного поиска функция возвращает номер позиции найденной строки, а в случае, если строковый элемент не найден, то возвращается значение –1.
Класс TStrings имеет методы SaveToFile и LoadFromFile, позволяющие непосредственно работать с текстовыми файлами. Эти методы предоставляют возможность сохранения строк из редактора в текстовом файле на диске и последующего чтения строк из этого файла.
Процедура SaveToFile(file_name) сохраняет строковые элементы в файл file_name. В последующем сохраненные строки можно извлечь из файла, используя метод LoadFromFile.
Процедура LoadFromFile(file_name) заполняет Memo содержимым указанного текстового файла, при этом предыдущее содержимое стирается.
Например, сохраним текст из Memo1 в файл file1 и загрузим в редактор файл file2:
// - - - - Object Pascal - - - -
Memo1.Lines.SaveToFile('file1.txt');
Memo1.Lines.LoadFromFile('file2.txt');
// - - - - - - - C++ - - - - - - -
Memo1->Lines->SaveToFile("file1");
Memo1->Lines->LoadFromFile("file2.txt");