Дидактические возможности Delphi.

Среда программирования Delphi

Интерфейс среды программирования Delphi

В первую очередь Delphi предназначен для профессионалов-разработчиков корпоративных информационных систем. Может быть, здесь следует пояснить, что конкретно имеется в виду. Не секрет, что некоторые удачные продукты, предназначенные для скоростной разработки приложений (RAD - rapid application development) прекрасно работают при изготовлении достаточно простых приложений, однако, разработчик сталкивается с непредвиденными сложностями, когда пытается сделать что-то действительно сложное. Бывает, что в продукте вскрываются присущие ему ограничения только по прошествии некоторого времени. Delphi такие ограничения не присущи. Хорошее доказательство тому - это тот факт, что сам Delphi разработан на Delphi. Можете делать выводы. Однако Delphi предназначен не только для программистов-профессионалов. Я читал в электронной конференции совершенно неожиданные для меня письма, где учителя, врачи, преподаватели ВУЗов, бизнесмены, все те, кто используют компьютер с чисто прикладной целью, рассказывали о том, что приобрели Delphi for Windows для того, чтобы быстро решить какие-то свои задачи, не привлекая для этого программистов со стороны. В большинстве случаев им это удается. Поразительный факт - журнал Visual Basic Magazine присудил свою премию Delphi for Windows. Руководители предприятий, планирующие выделение средств на приобретение программных продуктов, должны быть уверены в том, что планируемые инвестиции окупятся. Поэтому одним из оцениваемых факторов должен быть вопрос - а легко ли найти специалиста по Delphi и сколько будет стоить его обучение, сколько времени специалист затратит на овладение продуктом. Ответ здесь получить весьма просто - любой программист на паскале способен практически сразу профессионально освоить Delphi. Специалисту, ранее использовавшему другие программные продукты, придется труднее, однако самое первое работающее приложение он сможет написать в течение первого же часа работы на Delphi.

Структура среды программирования

Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows. К примеру, Borland Pascal for Windows 7.0, Borland C++ 4.0, Word for Windows, Program Manager - это все MDI приложения и выглядят по-другому, чем Delphi. MDI (Multiple Document Interface) - определяет особый способ управления нескольких дочерних окон внутри одного большого окна. Если Вы используете SDI приложение типа Delphi, то уже знаете, что перед началом работы лучше минимизировать другие приложения, чтобы их окна не загромождали рабочее пространство. Если нужно переключиться на другое приложение, то просто щелкните мышкой на системную кнопку минимизации Delphi. Вместе с главным окном свернутся все остальные окна среды программирования, освободив место для работы других программ.

Главные составные части среды программирования

Ниже перечислены основные составные части Delphi:

  1. Дизайнер Форм (Form Designer)
  2. Окно Редактора Исходного Текста (Editor Window)
  3. Палитра Компонент (Component Palette)
  4. Инспектор Объектов (Object Inspector)
  5. Справочник (On-line help)

Дизайнер Форм в Delphi столь интуитивно понятен и прост в использовании, что создание визуального интерфейса превращается в детскую игру. Дизайнер Форм первоначально состоит из одного пустого окна, которое Вы заполняете всевозможными объектами, выбранными на Палитре Компонент. Несмотря на всю важность Дизайнера Форм, местом, где программисты проводят основное время является Редактор. Логика является движущей силой программы и Редактор - то место, где Вы ее “кодируете”. Палитра Компонент позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов, и потом второй раз - на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши. Палитра Компонент использует постраничную группировку объектов. Внизу Палитры находится набор закладок - Standard, Additional, Dialogs и т.д. Если Вы щелкнете мышью на одну из закладок, то Вы можете перейти на следующую страницу Палитры Компонент. Принцип разбиения на страницы широко используется в среде программирования Delphi и его легко можно использовать в своей программе. (На странице Additional есть компоненты для организации страниц с закладками сверху и снизу). Слева от Дизайнера Форм Вы можете видеть Инспектор Объектов. Заметьте, что информация в Инспекторе Объектов меняется в зависимости от объекта, выбранного на форме. Важно понять, что каждый компонент является настоящим объектом, и Вы можете менять его вид и поведение с помощью Инспектора Объектов. Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств, вторая - список событий. Если нужно изменить что-нибудь, связанное с определенным компонентом, то Вы обычно делаете это в Инспекторе Объектов. К примеру, Вы можете изменить имя и размер компонента TLabel, изменяя свойства Caption, Left, Top, Height, и Width. Последняя важная часть среды Delphi - Справочник (on-line help). Для доступа к этому инструменту нужно просто выбрать в системном меню пункт Help и затем Contents. На экране появится Справочник. Справочник является контекстно-зависимым; при нажатии клавиши F1, Вы получите подсказку, соответствующую текущей ситуации. Например, находясь в Инспекторе Объектов, выберите какое-нибудь свойство и нажмите F1 - Вы получите справку о назначении данного свойства. Если в любой момент работы в среде Delphi возникает неясность или затруднение - жмите F1 и необходимая информация появится на экране.

Дополнительные элементы

В данном разделе внимание фокусируется на трех инструментах, которые можно воспринимать как вспомогательные для среды программирования:
Меню (Menu System);
Панель с кнопками для быстрого доступа (SpeedBar);
Редактор картинок (Image Editor).
Меню предоставляет быстрый и гибкий интерфейс к среде Delphi, потому что может управляться по набору “горячих клавиш”. Это удобно еще и потому, что здесь используются слова или короткие фразы, более точные и понятные, нежели иконки или пиктограммы. Вы можете использовать меню для выполнения широкого круга задач; скорее всего, для наиболее общих задач вроде открытия и закрытия файлов, управления отладчиком или настройкой среды программирования. SpeedBar находится непосредственно под меню, слева от Палитры Компонент. SpeedBar выполняет много из того, что можно сделать через меню. Если задержать мышь над любой из иконок на SpeedBar, то Вы увидите что, появится подсказка, объясняющая назначение данной иконки. Редактор Картинок работает аналогично программе Paintbrush из Windows. Вы можете получить доступ к этому модулю выбрав пункт меню Tools | Image Editor. А теперь нужно рассмотреть те элементы, которые программист на Delphi использует в повседневной жизни.

Инструментальные средства

В дополнение к инструментам, обсуждавшимся выше, существуют пять средств, поставляемых вместе с Delphi. Эти инструментальные средства:
Встроенный отладчик
Внешний отладчик (поставляется отдельно)
Компилятор командной строки
WinSight
WinSpector
Данные инструменты собраны в отдельную категорию не потому, что они менее важны, чем другие, но потому, что они играют достаточно абстрактную техническую роль в программировании. Чтобы стать сильным программистом на Delphi, Вам необходимо знать, как использовать отладчик Delphi. Отладчик позволяет Вам пройти пошагово по исходному тексту программы, выполняя по одной строке за раз, и открыть просмотровое окно (Watch), в котором будут отражаться текущие значения переменных программы. Встроенный отладчик, который наиболее важен из пяти вышеперечисленных инструментов, работает в том же окне, что и Редактор. Внешний отладчик делает все, что делает встроенный и кое-что еще. Он более быстр и мощен, чем встроенный. Однако он не так удобен в использовании, главным образом из-за необходимости покидать среду Delphi.

Стандартные компоненты

Для дальнейшего знакомства со средой программирования Delphi потребуется рассказать о составе первой страницы Палитры Компонент. На первой странице Палитры Компонент размещены 14 объектов определенно важных для использования. Мало кто обойдется длительное время без кнопок, списков, окон ввода и т.д. Все эти объекты такая же часть Windows, как мышь или окно. Набор и порядок компонент на каждой странице являются конфигурируемыми. Так, Вы можете добавить к имеющимся компонентам новые, изменить их количество и порядок. Стандартные компоненты Delphi перечислены ниже с некоторыми комментариями по их применению. При изучении данных компонент было бы полезно иметь под рукой компьютер с тем, чтобы посмотреть, как они работают и как ими манипулировать. TMainMenu позволяет Вам поместить главное меню в программу. При помещении TMainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: (1) помещение TMainMenu на форму, (2) вызов Дизайнера Меню через свойство Items в Инспекторе Объектов, (3) определение пунктов меню в Дизайнере Меню. TPopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши. TLabel служит для отображения текста на экране. Вы можете изменить шрифт и цвет метки, если дважды щелкнете на свойство Font в Инспекторе Объектов. Вы увидите, что это легко сделать и во время выполнения программы, написав всего одну строчку кода. TEdit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы. TMemo - иная форма TEdit. Подразумевает работу с большими текстами. TMemo может переносить слова, сохранять в Clipboard фрагменты текста и восстанавливать их, и другие основные функции редактора. TMemo имеет ограничения на объем текста в 32Кб, это составляет 10-20 страниц. (Есть VBX и “родные” компоненты Delphi, где этот предел снят). TButton позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом (подчеркнуто то, что нужно написать вручную):


procedure TForm1.Button1Click(Sender: TObject);
begin
MessageDlg('Are you there?', mtConfirmation, mbYesNoCancel, 0);
end;

TCheckBox отображает строку текста с маленьким окошком рядом. В окошке можно поставить отметку, которая означает, что что-то выбрано. Например, если посмотреть окно диалога настроек компилятора (пункт меню Options | Project, страница Compiler), то можно увидеть, что оно состоит преимущественно из CheckBox’ов. TRadioButton позволяет выбрать только одну опцию из нескольких. Если Вы опять откроете диалог Options | Project и выберете страницу Linker Options, то Вы можете видеть, что секции Map file и Link buffer file состоят из наборов RadioButton. TListBox нужен для показа прокручиваемого списка. Классический пример ListBox’а в среде Windows - выбор файла из списка в пункте меню File | Open многих приложений. Названия файлов или директорий и находятся в ListBox’е. TComboBox во многом напоминает ListBox, за исключением того, что позволяет водить информацию в маленьком поле ввода сверху ListBox. Есть несколько типов ComboBox, но наиболее популярен выпадающий вниз (drop-down combo box), который можно видеть внизу окна диалога выбора файла. TScrollbar - полоса прокрутки, появляется автоматически в объектах редактирования, ListBox’ах при необходимости прокрутки текста для просмотра. TGroupBox используется для визуальных целей и для указания Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB). TPanel - управляющий элемент, похожий на TGroupBox, используется в декоративных целях. Чтобы использовать TPanel, просто поместите его на форму и затем положите другие компоненты на него. Теперь при перемещении TPanel будут передвигаться и эти компоненты. TPanel используется также для создания линейки инструментов и окна статуса. TScrollBox представляет место на форме, которое можно скроллировать в вертикальном и горизонтальном направлениях. Пока Вы в явном виде не отключите эту возможность, форма сама по себе действует так же. Однако, могут быть случаи, когда понадобится прокручивать только часть формы. В таких случаях используется TScrollBox. Это полный список объектов на первой странице Палитры Компонент. Если Вам нужна дополнительная информация, то выберите на Палитре объект и нажмите клавишу F1 - появится Справочник с полным описанием данного объекта. Остальное связано с построением пользовательского интерфейса: размещению объектов на форме, настройке их свойств и написанию обработчиков событий. А также созданию приложений, работающих с базами данных. Итак, очевидно, что пользователь является замыкающим звеном системы управления, т.е. субъектом управления, а программа является объектом управления. Рациональная организация труда пользователей является одним из важнейших факторов, определяющих эффективное функционирование системы в целом. До появления операционных систем семейства Windows пользователь вёл управление, «не видя» реального объекта. Между реальным объектом управления и пользователем находилась информационная модель объекта (средства отображения информации). Поэтому возникала проблема проектирования не только средств отображения информации, но и средств взаимодействия пользователя с техническими средствами программы, т.е. проблема проектирования системы, которая имеет название интерфейс пользователя.

Возможности среды программирования Delphi

Анализ опыта внедрения в школах, вузах и различных предприятиях, компьютерных программ учебного назначения показывает, что важным фактором, препятствующим их широкому применению, является неполное соответствие предлагаемого материала идеям и методам преподавания той или иной дисциплины. Многие педагоги проявляют значительную осторожность в использовании обучающих программ и педагогических программных средств. Идеальным решением этой проблемы является полный учет требований пользователя (преподавателя), что практически недостижимо. В настоящее время в сфере разработки обучающих и других учебных программ доминируют интересы и предпочтения производителя, то есть программистов-разработчиков компьютерных программ. В печати и на конференциях различного уровня не раз высказывалось мнение, что современному педагогу, скорее нужен не диск с полным мультимедийным курсом по предмету, а некоторые элементарные кирпичики, которые он мог бы использовать в качестве красочных иллюстраций своих идей и методов и которые более органично вписались бы в традицию использования наглядных пособий, подбираемых педагогом для своего занятия. В связи с этим представляется целесообразным создание не законченной обучающей продукции, а своеобразных электронных конструкторов - инструментальных программных средств (авторских систем) для создания педагогом собственных приложений. Одним из таких инструментальных средств является Delphi. Однако, имеется крайне мало литературы начального уровня, предназначенной для освоения Delphi применительно к использованию в учебном процессе. Профессиональным программистам такие задачки, как мини-калькулятор или учебный графический редактор, неинтересны — им, скорее, подавай примеры работы с базами данных по технологии "клиент-сервер". А учителю это как раз совсем не нужно. Delphi можно изучать и использовать на нескольких уровнях: Работа с визуальными объективами практически без программирования. Использование готовых компонентов системы с написанием на их основе собственного программного кода. Создание собственных компонентов на языке Паскаль и включение их в палитру компонентов Delphi в качестве стандартных. Разработка законченных Windows-приложений. Для школьного курса более чем достаточно первого уровня (задачи второго уровня можно решать в курсе профильной школы и на факультативах). Не так давно программирование, ориентированное на объекты и события, казалось непрофессионалам большой экзотикой. Однако даже после прихода Windows 95/98 такой стиль создания программ пока фактически не востребован в реальной школьной практике. Приведу пример проведения занятий по созданию приложений Windows с группами школьников, углубленно изучающими информатику. Для работы была выбрана среда визуального конструирования программ Delphi3. Школьники, приступившие к изучению и применению Delphi, уже достаточно хорошо работали в Windows 95 и приложениях. Поэтому интегрированная среда разработки Delphi воспринималась учениками совершенно естественно. Конструирование форм с различными визуальными компонентами (хорошо знакомыми элементами управления Windows) и работа с инспектором объектов по установлению свойств объектов вызывала у школьников неподдельный интерес. Одновременно создавались первые приложения, в которых свойства объектов можно изменять в программном режиме. Весьма живо воспринималось применяемое преподавателями образное сравнение: мы проектируем Windows'кого робота, создаем заготовки его частей, программируем его реакции на те или иные действия пользователя, в процессе компиляции Delphi собирает робота и запускает его в работу. Теперь надо определить, получился ли робот, таким, как мы хотели. Получая практический опыт конструирования событийно-управляемых объектно-ориентированных программ, школьники выходили затем с помощью преподавателя на уровень соответствующих теоретических обобщений. Ряд школьников с эмпирическим стилем мышления успешно конструировали весьма интересные приложения, ограничиваясь минимальным применением базовых управляющих структур при разработке процедур. В то же время за этими структурами они видели теперь не средства для организации трудно воспринимаемых абстрактных вычислений, а средства для обучения Windows'кого робота, то есть средства решения очень интересной задачи. Школьники с развитым теоретическим стилем мышления, освободившись от рутины организации интерфейса Турбо Паскаля и жестких рамок его возможностей, выходили на разработку серьезных развитых проектов с использованием разнообразных компонентов Delphi и хорошей проработкой кода процедур. По моему мнению, современные технологии конструирования приложений Windows на Delphi во многом более доступны школьникам, чем традиционное программирование, вызывают большой интерес, способствуют раскрытию творческого потенциала ученика и обладают замечательными дидактическими возможностями.

Обзор приложений созданных в среде Delphi

Требования к средам визуального программирования

Основные требования, которым должна удовлетворять среда визуального конструирования алгоритмов:

  1. Среда должна быть разработана для функционирования в наиболее популярной из современных операционных систем, которая поддерживает графический интерфейс с пользователем. Это даст возможность изучать основы алгоритмизации, используя значительное количество компьютерной техники, которой укомплектованы средние школы. На данный момент - это операционные системы семейства Windows фирмы Microsoft.
  2. Среда должна быть разработана с соблюдением общих стандартов для современных программных продуктов. Это обеспечит удобство и простоту работы с элементами управления среды: меню, панелями инструментов и т.п., и даст возможность закрепить основные навыки работы пользователя с программными средствами.
  3. Среда должна быть простой и мощной. Простота освоения и пользования средой, возможности конструирования широкого класса алгоритмов с использованием всех доступных на сегодняшний момент ресурсов мультимедийных компьютеров.
  4. Для предоставления алгоритмов необходимо выбрать форму, которая должна удовлетворять двум основным критериям: быть наглядной и понятной для пользователя и быть удобной для реализации в графической оболочке операционной системы. Кроме этого, форма предоставления, в силу возможностей, должна быть наиболее приближенной к содержанию алгоритма, а не к синтаксису алгоритмических структур, который используется в этом представлении.
  5. Методы, при помощи которых конструируются алгоритмы в среде, должны основываться на методах создания программного обеспечения при помощи современных средств разработки, в основе которых лежит объектный подход и визуализация. Это, по нашему мнению, даст возможность ученикам при необходимости, например, при изучении основ современного программирования в классах с углубленным изучением информатики или факультативно, быстрее освоить технологию визуального программирования.
  6. Одной из главных задач является создание среды, ориентированной на выделение смыслового содержания решаемой задачи, а не на изучение алгоритмических структур конкретного представления. "Невзирая на то, что разработка каждого нового алгоритма требует своего подхода, тем не менее существуют определенные общие приемы и этапы этого рода деятельности". Поэтому в среде должна быть реализована унификация алгоритмических структур как конструкций, которые содержатся в любых алгоритмах, а не только алгоритмах определенного класса. В роли таких унифицированных структур целесообразно использовать такие стандартные алгоритмические конструкции: следование, разветвление, повторение и вызов подпрограммы.
  7. Действия, которые относятся к решению определенной задачи, должны быть определенными по смысловому содержанию, и организованы в виде отдельного блока (подпрограммы). Например, если необходимо проиграть какой-нибудь звуковой файл, то и смысл этой конструкции должен быть - "проиграть звуковой файл с определенным именем".
  8. В среде структура алгоритма должна быть представлена в графической форме при помощи определенного "графического" синтаксиса. Наряду с этим для обозначения идентификаторов, названий методов графически-визуальных объектов возможное использование текстового синтаксиса. Такого рода синтаксис нельзя "изъять" полностью, поскольку он является внешним по отношению к алгоритмическому представлению. Но такой "внешний" синтаксис основывается на понятиях, известных ученикам по собственному опыту, приобретенному при изучении других школьных предметов, и его применение не должно вызывать значительных трудностей.
  9. В среде пользователю должна быть предоставлена возможность свободно менять синтаксис текстово-символьных команд (там, где это целесообразно). Например, изменить символ арифметического сложения '+' на какой-то другой вряд ли стоит с точки зрения ясности и унификации, а вот выбрать название для действия изъятия в символьной строке - "стереть" или "delete" - целиком зависит от желания пользователя.
  10. Как известно, каждый алгоритм работает с определенным набором данных, которые обрабатываются при помощи некоторых методов. Собственно, алгоритм - это процесс преобразования входных данных в выходные. Поэтому следует предусмотреть явное разграничение между данными и методами их обработки. Это не противоречит парадигме процедурного программирования. Достаточно только вспомнить известную "формулу" Н. Вирта "алгоритмы + данные = программа". При этом, данные логично сделать строго типизированными, как того требуют правила современных языков программирования, и разместить их отдельно, например в виде таблицы, доступ к которой можно быстро получить в любой момент конструирование алгоритма.

Методология создания приложений учебного назначения

Создание любого компьютерного приложения, а особенно курса по информатики, сегодня не мыслится без тщательно продуманного плана разработки. В настоящее время существует хорошо отработанная методология создания компьютерных обучающих систем. Как и всякая методология проектирования, она включает целый ряд последовательных этапов. Для создания обучающей программы необходимо:
Выбрать тип программы. На этом этапе определяются основные цели и задачи программы, а также средства её реализации.
Собрать подходящие исходные материалы — тексты, репродукции и иллюстрации, аудиозаписи, видеокассеты, компьютерные файлы. Полнота собранных материалов говорит о готовности к реализации программы и определяет уровень её качества.
Написать сценарий программы и взаимодействия преподавателя с ней, определяющий композицию всех собранных материалов. Здесь определяется вся логика программы. Сценарий описывает связи между слайдами, структуру и изменения на этих слайдах, а также звуковые и видеоэффекты.
Обработать собранные материалы на компьютере, подготовив их к включению в обучающую программу, т.е. создать и отредактировать текстовые, графические, анимационные, видео, звуковые сопровождения. Здесь используются как стандартные средства самой операционной системы, так и ставшие стандартными пакеты редактирования текстов (Microsoft Word), компьютерной графики и анимации (3D Studio, Adobe PhotoShop), видеомонтажа (Adobe Premiere), Web-мастеринга (Microsoft FrontPage), а также программы, поставляемые вместе с аудио- и видео платами.
Реализовать сценарий в виде действующей программы, внося необходимые изменения в материалы и сценарий в процессе опытной эксплуатации. Для авторов, не являющихся программистами, лучшим вариантом является использование таких средств визуального программирования, как Power Point из Microsoft Office, Macromedia Director, а также средства Web-мастеринга. Наконец, профессиональные программисты могут использовать системы программирования Visual C++, Visual Basic, Delphi, Java и др., но оптимальных сроков разработки они добьются, если будут их использовать в дополнение к перечисленным выше системам.
Подготовить методические материалы для пользователей программы — преподавателей. Такие материалы необходимы, так как пользователи программы, как правило, не обладают квалификацией её авторов.

Практическая часть

Создание простейших программ учебного назначения.

Проект "Подбор цвета"

Формирование цвета из отдельных компонент. Класс TColor, константы цвета, функция RGB Цвета объектов образуются смешением трех компонент — красной (red), зеленой (green) и синей {blue). Интенсивность каждой составляющей цвета может изменяться от 0 до 255. Комбинация (0, 0, 0) соответствует черному, а (255, 255, 255) — белому цвету. Почти у каждого визуального компонента есть свойство Color. До сих пор мы выбирали его значение из списка стандартных цветов, но ничто не мешает создать цвет из отдельных компонент. Для этого воспользуемся функцией RGB: Color:= RGB (red, green, blue); Можно создать также свою цветовую гамму, заранее заготовив цвета для различных визуальных объектов. Но использовать эти цвета можно будет только при создании соответствующего объекта на этапе выполнения программы (об этом поговорим немного позже). Для подбора цвета разработаем проект, позволяющий легко изменять цвет панели с помощью полос прокрутки — объектов класса TScrollBar. Поместим на форму панель и три полосы прокрутки (они также находятся на вкладке standard). Каждая полоса прокрутки будет отвечать за интенсивность одной из трех цветовых компонент. Крайнее левое положение ползунка должно соответствовать минимальному, а крайнее правое — максимальному значению интенсивности. Зададим для всех полос свойство Min=0, а свойство Мах=2 5 5. Настроим другие свойства: Kind — определяет размещение полосы — горизонтальное (sbHorizontal) или вертикальное (sbVertical); LargeChange—шаг перемещения ползунка при щелчке на самой полосе; SmallChange — шаг перемещения ползунка при щелчке на стрелке; Position — числовой эквивалент положения ползунка на полосе скроллинга,

Исходный код:

Вы можете сразу скачать исходники рабочего примера в архиве ZIP.

Программа1. «Подбор цветов»
Основное событие для полосы скроллинга — перемещение ползунка (событие OnChange), при этом способ перемещения значения не имеет. Напишем отдельную процедуру изменения цвета панели:


procedure SetPanelColor;
var red,   green,  blue,  k  :  word;
begin
red  := Form1. ScrollBar1.Position;
if form1.rb1.Checked then
begin
k:=255 div 2;
if (red>=0) and(red<=k) then
Form1. ScrollBar1.Position:=0
else  Form1. ScrollBar1.Position:=255;
red  := Form1. ScrollBar1.Position;
Form1.Edit1.Text:=IntToStr(red div 255);
end
else
Form1.Edit1.Text:=IntToStr(red);
green:= Form1.ScrollBar2.Position;
if form1.rb1.Checked then
begin
k:=255 div 2;
if (green>=0) and(green<=k) then
Form1. ScrollBar2.Position:=0
else  Form1. ScrollBar2.Position:=255;
green:= Form1.ScrollBar2.Position;
Form1.Edit2.Text:=IntToStr(green div 255);
end
else
Form1.Edit2.Text:=IntToStr(green);
blue  := Form1.ScrollBar3.Position;
if form1.rb1.Checked then
begin
k:=255 div 2;
if (blue>=0) and(blue<=k) then
Form1. ScrollBar3.Position:=0
else  Form1. ScrollBar3.Position:=255;
blue  := Form1.ScrollBar3.Position;
Form1.Edit3.Text:=IntToStr(blue div 255);
end
else
Form1.Edit3.Text:=IntToStr(blue);
Form1.Panel1.Color  := RGB(red,   green,   blue);
end;

и будем ее вызывать в ответ на перемещение ползунка на любой полосе скроллинга:

procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
SetPanelColor;
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
SetPanelColor;
end;
procedure TForm1.ScrollBar3Change(Sender: TObject);
begin
SetPanelColor;
end;

Выбирая палитру из 8 цветов мы должны изменять положение ползунка так чтобы его движение равнялось 0 либо 255:

procedure TForm1.RB1Click(Sender: TObject);
begin
Form1.Caption:='Палитра из 8 цветов;
ScrollBar1.LargeChange:=255;
ScrollBar1.SmallChange:=255;
ScrollBar1.Position :=0;
ScrollBar2.LargeChange:=255;
ScrollBar2.SmallChange:=255;
ScrollBar2.Position :=0;
ScrollBar3.LargeChange:=255;
ScrollBar3.SmallChange:=255;
ScrollBar3.Position :=0;
end;

procedure TForm1.RB2Click(Sender: TObject);
begin
Form1.Caption:='Палитра из 256 цветов;
ScrollBar1.LargeChange:=1;
ScrollBar1.SmallChange:=1;
ScrollBar1.Position :=0;
ScrollBar2.LargeChange:=1;
ScrollBar2.Position :=0;
ScrollBar2.SmallChange:=1;
ScrollBar3.LargeChange:=1;
ScrollBar3.SmallChange:=1;
ScrollBar3.Position :=0;
end;

Проект готов, можем запустить и поработать с ним. Вариант оформления проекта приведен на рисунке: Палитра 8 цветов
Палитра 256 цветов
Данное приложение можно использовать на уроках информатики для закрепления материала «Представление графической информации в компьютере», наглядно показывая, что цвет хранится в виде числового кода. В наборе имеются палитры из 8 и 256 цветов.

Составные компоненты программы:
Панель (Panel) для отображения цвета;
3 полосы прокрутки (ScrollBar) для изменения цветовой гаммы (КЗС или КККЗЗЗСС);
2 переключателя (RadioButton) для выбора цветовой палитры;
3 текстовых поля (Edit) для вывода цветового кода;
Кнопка(BitBtn) для закрытия программы.


Google