- •Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования delphi6»
- •6.100301 "Судовождение",
- •6.100302 "Эксплуатация судовых энергетических установок"
- •6.092201 "Электрические системы и комплексы транспортных средств",
- •Введение
- •Глава 1. Интегрированная среда Delphi. Принципы работы
- •1.1. Интегрированная среда Delphi
- •1.2. Принципы визуального программирования
- •Val(Edit1.Text,k1,sign);
- •Val(Edit2.Text,k2,sign);
- •Val(MaskEdit1.Text,r1,sig);
- •Val(МaskEdit2.Text,r2,sig);
- •1.3. Событийно-управляемые программы
- •1.4. Составление программ обработки массивов
- •I :integer;
- •I, j :integer;
- •1.5. Вывод на печать
- •Глава 2. Общие свойства компонентов
- •2.1. Иерархия компонентов
- •2.2. Имена и собственники компонентов
- •2.3. Родительские и дочерние компоненты
- •2.4. Положение, размеры и оформление компонентов
- •2.5.Указатели мыши
- •2.3. Окно редактора с готовым изображением указателя
- •2.6. Реакция на события от мыши и клавиатуры
- •2.6.1. События от мыши
- •2.6.2. События от клавиатуры
- •2.6.3. Клавиатура в ms-dos и Windows
- •2.6.4. Фокус ввода
- •2.7. Механизм действий Action
- •2.8. Иинтерфейс Drag&Drop
- •2.9. Иинтерфейс Drag&Dock
- •2.10. Поддержка справочной службы
- •2.11. Поддержка Сом
- •2.12. Свойства разного назначения
- •Глава 3. Использование компонентов общего назначения
- •3.1. Компоненты страницы Standard
- •3.1.1. TFrame - рама и шаблоны компонентов
- •6) Окно регистрации рамы в палитре компонентов
- •3.1.2. Создание шаблонов без рам
- •3.1.3. TMainMenu - главное меню формы (программы)
- •3.1.4. TPopupMenu - вспомогательное (локальное) меню
- •3.1.5. TLabel - метка для отображения текста
- •3.1.6. TEdit - ввод и отображение строки
- •3.1.7. TMemo - ввод и отображение текста
- •3.1.8. TButton - кнопка
- •3.1.9. TCheckBox - независимый переключатель
- •3.11. Компонент tCheckBox - независимый переключатель
- •3.1.10. TRadioButton - зависимые переключатели
- •3.1.11. TListBox - список выбора
- •3.1.12. TComboBox – комбинированный или раскрывающийся список выбора
- •3.1.13. TScrollBar - управление значением величины
- •3.1.14. TGroupBox - панель группирования
- •3.1.15. TRadioGroup - группа зависимых переключателей
- •3.1.16. TPanel - панель
- •3.1.17. TActionList - механизм действий
- •3.2. Компоненты страницы Аdditional
- •3.2.1. TBitBtn - кнопка с изображением
- •3.2.2. TSpeedButton - кнопка для инструментальных панелей
- •3.2.3. TMaskEdit - специальный редактор
- •3.2.4. TStringGrid - таблица строк
- •3.2.5. TDrawGrid - произвольная таблица
- •3.2.6. TImage - отображение картинок
- •3.2.7. TShape - стандартная фигура
- •3.2.8. TBevel - кромка
- •3.2.9. TScrollBox - панель с прокруткой
- •3.2.10. TСheckListBox - группа независимых переключателей
- •3.2.11. TSplitter - компонент для изменения размеров
- •3.2.12. TStaticText - метка для отображения текста
- •3.2.13. TControlBar - инструментальная панель
- •3.2.14. TApplicationEvents - обработчик сообщений Windows
- •3.2.15. TValueListEditor - специализированный редактор строк
- •3.2.16. TLabelEdit - однострочный редактор с меткой
- •3.2.17. TColorBox - список выбора цвета
- •3.2.18. TChart - построитель графиков
- •3.2.19. TActionManager - менеджер действий
- •3.2.20. TActionMainMenuBar - полоса меню для действий
- •3.2.21. TActionTollBar - полоса кнопок для действий
- •3.2.22. TCustomizeDIg - диалог настройки интерфейса
- •Глава 4. Многодокументный и однодокументный интерфейсы (mdi и sdi)
- •4.1. Mdi и sdi: сравнение
- •4.2. Разработка mdi—приложений
- •4.2.1. Разработка главного и информационного окон
- •4.2.2. Использование стандартных диалоговых окон
- •If OpenDialog1.Execute then
- •4.2.3. Разработка диалогового окна
- •Var dlg6:tokRightDlg;
- •X1,x2,x3:String;
- •If b1 or b2 then
- •4.2.4. Управление окнами
- •I:integer;
- •I:integer;
- •4.2.5. Работа с меню
- •Var tf5:tForm2;
- •4.3. Разработка sdi–приложения
- •4.3.1. Простое sdi–приложение
- •I,j :byte;
- •I,j :byte;
- •I,j :byte;
- •4.3.2. Управление окнами в sdi–приложениях
- •I :byte;
- •Var I :byte; ptr6 :tForm2;
- •I :byte;
- •Глава 5. Реализация алгоритмов решаемых задач на Delphi
- •5.1. Традиционный подход реализации алгоритмов на Delphi
- •5.2. Объектно-ориентированный подход
- •Val(Edit1.Text,k,sig);
- •Val(Edit2.Text,l,sig);
- •I,j :byte;
- •I,j :integer;
- •Inherited Create (Ni,Nj);
- •Val(Edit1.Text, p, sig1);
- •Val(Edit2.Text, q, sig2);
- •Val(Edit3.Text, r, sig3);
- •Vas :real;
- •Val(Edit4.Text,n,sig);
- •Глава 6. Тестирование и отладка приложений
- •6.1. Виды ошибок
- •6.2. Отладочные средства Delphi
- •6.3. Составление тестов
- •Глава 7. Исключительные ситуации
- •7.1. Обработка исключительных ситуаций
- •I, j, k : integer;
- •I:integer;
- •I, j, k : integer;
- •7.2. Обработка определенных исключительных ситуаций
- •Var I,j,k :shortint; p,q :real;
- •Заключение
- •Литература
- •Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования delphi6»
- •6.100301 "Судовождение",
- •6.100302 "Эксплуатация судовых энергетических установок"
- •6.092201 "Электрические системы и комплексы транспортных средств",
1.4. Составление программ обработки массивов
Поставим перед собой задачу составления простого приложения обработки массива, окно которого представлено на рис. 1.4.
Рис. 1.4. Окно приложения обработки массива
Для представления на форме приложения массивов используется компонент StringGrid с палитры Additional. Рассмотрим его основные свойства.
RowCount и ColCount задают количество (Количество, а не максимальное значение индекса!) строк и столбцов соответственно, по умолчанию они равны 5. Эти значения можно менять во время проектирования или во время работы приложения. В нашем примере ColCount=5 и RowCount=15.
FixedCols и FixedRows задают количество фиксированных столбцов и строк. По умолчанию они равны 1 (первый столбец слева и первая строка сверху, они показаны другим цветом). Фиксированные столбцы и строки не могут быть использованы для передачи данных, они используются для представления вспомогательной информации. В нашем примере сохраним стандартные значения и используем их для номеров строк и столбцов. Количество фиксированных строк и столбцов входит в общее их число.
Options – это перечень свойств, для нашего примера требуется менять свойство goEditing. По умолчанию таблица может быть используется только для вывода данных. Чтобы можно было ввести данные необходимо менять значение упомянутого свойства: заменить False на True.
Для ссылки на отдельные ячейки используется свойство Cells[i, j] , где на первом месте стоит номер столбца, а на втором – номер строки. Минимальные значения i, j равны нулю. Если использованы фиксированные строки и столбцы, то они как раз имеют номера 0.
Обратите внимание на то, как будет показан компонент StringGrid (рис.1.4.): в нашем случае по горизонтали для него выделено слишком много места, поэтому лишняя площадь останется пустой; по вертикали выделено слишком мало места, поэтому появилась полоса скроллинга. Номера строк двигаются вместе со своей строкой.
Кроме StrinGrid поместим на форму следующие компоненты: MainMenu, Button для текста «Ответ» и Label для вывода значения ответа. Меню имеет следующую структуру:
Выход Обработка
Выход обеспечит завершение приложения, Обработка – выполнение процедуры обработки массива.
Первая строка содержит номера столбцов, первый столбец – номера строк. Для их заполнения пишем следующую реализацию для события onCreate нашей единственной формы:
procedure TForm1.FormCreate(Sender: TObject);
var
I :integer;
begin
{ номера столбцов в первую строку }
for i:=1 to StringGrid1.ColCount - 1 do
StringGrid1.Cells[i,0]:=IntToStr(i);
{ номера строк в первый столбец}
for i:=1 to StringGrid1.RowCount - 1 do
StringGrid1.Cells[0,i]:=IntToStr(i);
end;
Приступаем к реализации обработки массива. Как и в строках редактирования (компоненты Edit и EditMask), элементы StringGrid по умолчанию имеют тип String, поэтому для обработки числовых данных необходимо предусмотреть их преобразование при вводе и при выводе. Кроме того, следует иметь в виду, что пустая строка в качестве значения элемента автоматически не равна нулю.
Реализация соответствующего пункта меню:
procedure TForm1.N2Click(Sender: TObject);
var