- •Абдулгалимов г. Л.
- •Часть 2. Компоненты delphi
- •1. Компоненты страницы standard
- •2. Компоненты страницы additional
- •3.Компоненты страницы win 32
- •4. Компоненты страницы system
- •5. Компоненты страницы samples
- •Введение
- •ЧасТь 1 . Практикум по программированию в delphi Запуск и начало работы в среде delphi
- •Работа 1. Создание надписей и установка кнопок на форме
- •Работа 2. Ввод и обработка произвольных текстовых и числовых данных.
- •Работа 3. Создание главного и вспомогательного меню. Использование зависимых и независимых переключателей.
- •Работа 4. Создание и обработка табличных данных. Использование кнопок с фиксацией и с изображением
- •Var I:integer;
- •Работа 5. Создание и просмотр рисунков
- •Работа 6. Работа со списками, фигурами и регуляторами
- •Задачи для самоконтроля
- •Часть 2. Компоненты delphi
- •1. Компоненты страницы standard
- •1.1. TFrame - рама и шаблоны компонентов
- •1.2. TMainMenu - главное меню формы (программы)
- •1.3. TPopupMenu - вспомогательное (локальное) меню
- •1.7. TButton - кнопка
- •1.8. TCheckBox - независимый переключатель
- •1.11. TComboBox - раскрывающийся список выбора
- •1.12. TScrollBar - управление значением величины
- •1.13. TGroupBox - панель группирования
- •1.15. TPanel – панель
- •2. Компоненты страницы additional
- •2.1. TBitBtn - кнопка с изображением
- •2.2. TSpeedButton - кнопка для инструментальных панелей
- •2.3. TMaskEdit - специальный редактор
- •2.4. TStringGrid - таблица строк
- •2.5. TDrawGrid - произвольная таблица
- •2.6. TImage - отображение картинок
- •2.7. TShape - стандартная фигура
- •2.8. TBevel - кромка
- •2.10. TСheckListBox - группа независимых переключателей
- •2.11. TSplitter - компонент для изменения размеров
- •2.12. TStaticText - метка для отображения текста
- •2.13. TControlBar - инструментальная панель
- •3. Компоненты страницы win32
- •3.1. TTabControl - набор закладок
- •3.2. TPageControl - набор страниц с закладками
- •3.3. TImageList - хранилище изображений
- •3.4. TRichEdit - ввод и отображение rtf-текста
- •3.8. THotKey - ввод акселератора
- •3.10. TDateTimePicker - ввод и отображение даты/времени
- •3.12. TTreeView - дерево иерархии
- •3.13. TListView - список просмотра
- •3.15. TStatusBar - информационная панель
- •3.16. TToolBar и ToolButton - инструментальная панель и ее кнопки
- •3.17. TCoolBar и tCoolBand - инструментальная панель и полосы для нее
- •3.18. TPageScroller - панель с прокруткой
- •4. Компоненты страницы system
- •4.1. TTimer - таймер
- •4.2. TPaintBox - окно для рисования
- •4.3. TMediaPlayer - медиаплейер
- •5. Компоненты страницы samples
- •5.1. TGauge - индикатор величины
- •5.2. TColorGrid - выбор или отображение цвета
- •5.3. TSpinButton - спаренная кнопка
- •5.4. TSpinEdit - редактор для ввода целого числа
- •5.5. TDirectoryOutLine - отображение структуры каталогов
- •5.6. TCalendar - ввод и отображение даты
- •Приложения
- •1. Процедуры и функции для работы со строками
- •2. Пиктографические кнопки
- •Литература
Работа 2. Ввод и обработка произвольных текстовых и числовых данных.
Для ввода и редактирования текста и чисел можно использовать однострочные и многострочные окна редактирования представляемые компонентами Edit и Memo. Основными свойствами этих компонентов, в которых содержатся вводимый и выводимый текст является: Text – для компонента Edit и Lines – для компонента Memo.
Пример 2. Создайте приложение, которое при нажатии кнопки перемножало бы два числа, введенных пользователем, и показывало бы результат умножения. Эти числа можете понимать как хотите: как длину двух сторон прямоугольника, и тогда результат - это площадь, или как текущий курс доллара и сумму в долларах, - тогда результатом будет рублевый эквивалент суммы и т. п.
Решение
При построении этого приложения мы используем новые типы компонентов - окна редактирования. Кроме того, для разнообразия, будем выводить результат в панель Panel. Сконструируем форму. Перенесите на нее со страницы Additional два окна редактирования с присоединенными к ним метками LabeledEdit, а со страницы Standard - одну панель Panel, одну кнопку Button и одну метку Label для надписи. Разместите все это примерно так, как показано на рисунке а). Так вы можете поступить, если работаете с Delphi 6 и 7. Если вы работаете с более ранними версиями, то в них компонента LabeledEdit нет. Поэтому, вместо двух компонентов LabeledEdit вам надо будет перенести на форму два окна редактирования Edit со страницы Standard и две метки. Начальный вид формы в этом случае показан на рисунке б).
а) б)
Измените надписи в метках компонентов LabeledEdit на что-то осмысленное. Например, на «Число 1», «Число 2», «Результат» или на «Ширина», «Высота», «Площадь» в зависимости от того, что вы хотите понимать под соответствующими числами. Для этого щелкните на символе «+» в свойстве EditLabel этих компонентов и измените надпись в свойстве Caption раскрывшихся списков свойств меток. Полезно задать для меток различные атрибуты шрифта, как вы это делали в предыдущей работе.
Если вы работаете с Delphi 4 или 5, то сделайте соответствующие надписи во введенных вами дополнительных метках.
Замените свойство Caption вашей кнопки, например, на «Расчет». Очистите свойство Caption у панели. В метке над панелью напишите «Результат». В свойстве Text (текст) окон редактирования задайте «1» - начальное значение текста.
Попробуйте изменить такие свойствами панели, как BevelInner и BevelOuter, которые определяют вид основного поля и рамки панели (утопленный - bvLowered или выпуклый - bvRaised). Например, можете установить ВеvеlInner = bvLowered и BevelOuter = bvRaised.
Осталось написать обработчик щелчка кнопки. Единственный оператор этого обработчика может иметь вид:
Panel1.Caption := FloatToStr (StrToFloat (LabeledEdit1.Text) * StrToFloat(LabeledEdit2.Text)) ;
или введите следующую строку, которая выведет математическая запись выполняемой операции:
Panel1.Caption := LabeledEdit1.Text + ' * '+ LabeledEdit2.Text + ' = ' + FloatToStr (StrToFloat (LabeledEdit1.Text) * StrToFloat(LabeledEdit2.Text)) ;
Для Delphi5 изменяются только имена окон: вместо LabeledEdit1 и LabeledEdit2 надо писать Edit1 и Edit2.
Попробуем проанализировать приведенный оператор. Начало его вам уже знакомо: вы присваиваете свойству Caption компонента Panel1 значение выражения, указанного в правой части оператора. Это выражение должно иметь тип строки текста. Начинается строка с текста, введенного пользователем в окно редактирования LabeledEdit1 - этот текст хранится в свойстве Text. Затем вы прибавляете к этому тексту символы «*». Знак «+» в выражениях для строк означает конкатенацию - сцепление двух строк символов. Затем аналогичным образом к строке добавляется текст второго окна редактирования и символ «=». После этого мы хотим вставить в строку результат перемножения двух целых чисел. Этот результат будет числом и, чтобы вставить его в текст, надо сначала преобразовать это число в строку. Эту операцию выполняет функция FloatToStr, которая преобразует заданный ей параметр типа действительного числа в строку символов. Осталось получить само произведение двух чисел. Но числа заданы пользователем в виде текстов - строк символов в окнах редактирования. Прежде, чем перемножать, эти строки надо перевести в числа. Эту операцию выполняет функция StrТoFloat, преобразующая символьное изображение числа в его значение типа действительного числа. Знак *, указанный между двумя вызовами функции StrToFloat, обозначает операцию умножения. Программа готова. Можете его сохранить, выполнив команду: File - Save All.
Упражнения
Реализуйте Пример 2 на ПК.
Внесите в Пример 2 следующие изменения:
а) кнопка выполняет операция сложения (а не умножение);
б) кнопка выполняет операция вычитание;
в) кнопка выполняет операция деления;
г) вместо компонента Panel установите компонент Memo, для вывода результатов (в программе слова: Panel1.Caption замените на: Memo1.Lines.Text ).
3. Составьте программу для вычисления объема цилиндра V для произвольных значений радиуса r и высоты h.
4. На форму установите не одну кнопку, а четыре - с надписями: + , - , * , / , для выполнения четырех арифметических действий. Для этих кнопок напишите обработчики их нажатия.
5. Составьте действующий микрокалькулятор наподобие изображенному на рисунке .