Разработка прикладных программ для ОС Windows с помощью интегрированных сред Delphi/C++Builder
Первоначальные теоретические знания о функционировании ОС Windows и исследование практических основ создания приложений в системах Delphi/C++Builder. Механизм и основные этапы разработки простых Windows-приложений, основы программирования в нем.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 28.06.2009 |
Размер файла | 813,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Вследствие большого количества свойств и событий данного компонента отсылаем заинтересованных к книгам [5,8].
Нижеследующая процедура позволяет выбрать нужный видеофайл из заданных маской в свойстве Filter компонента OpenDialog1 (см. ниже) и проиграть его, сообщая об ошибке в случае возникновения оной
procedure TForm1. BitBtn1Cllck (Sender: TObject);
begin
OpenDialog1. Filter:= 'Все файлы|*.*|АVI/1-файлы|*.аvi|' +
`WAV-файлы|*.wav|МIDI-файлы|*.mid';
with MediaPlayer1 do
begin
try
if OpenDialog1. Execute then
FileName:=OpenDialog1. Filename;
Open;
except
MessageDlg (MediaPlayer1. ErrorMessage,
mtError, [mbOk], 0);
end;
end;
end;
5.12 Компоненг TDriveComboBox
Компонент TDriveComboBox (верхний в третьем слева столбце на рис. 6) является специализированным комбинированным списком (TComboBox) и служит для информации об имеющихся в системе устройствах прямого доступа и выбора необходимого. Список устройств заносится в компонент при инициализации оного, во время выполнения программы отображаются имя устройства, метка устройства (в квадратных скобках) и пиктограмма типа устройства (винчестер, сетевой диск, CD-ROM дисковод etc). Обычно данный компонент применяется в сочетании с нижеописанными TDirectoryListBox и TFileListBox и имеет специальные средствами связи с ними.
Имя текущего (выбранного пользователем) диска соответствует значению свойства Drive, а имя с меткой (как и показывается в списке) - в свойстве Text.
Обработчик значимого события OnChange может выглядеть так
var CurrentDrive: string;
…………………
procedure TForm1.0nDriveChange (Sender: TObject);
begin
CurrentDrive:=DriveComboBox1. Drive; {запомнить в переменной
CurrentDrive имя диска}
end;
5.13 Компонент TDirectoryListBox
Компонент TDirectoryListBox (второй сверху в третьем слева столбце на рис. 6) является специализированным списком (TListBox) и служит дня показа и выбора списка каталогов на текущем устройстве (устройство задается свойством Drive, каталог на нем - свойством Directory). Свойство DirLabel может быть установлено на реальное имя компонента TLabel (для визуализации выбранного каталога).
Полный путь к каталогу можно получить при помощи метода GetItemPath(Index), где Index - номер каталога в списке (начиная с 0).
При наличии на форме компонента TDriveComboBox можно связать его с TDirectoryListBox путем установки реального имени TDirectoryListBox в свойстве DirList компонента TDriveComboBox.
Значимое событие - OnChange.
5.14 Компонент TFileListBox
Компонент TFileListBox (третий сверху в третьем слева столбце на рис. 6) является специализированным списком (TListBox) и служит для показа и выбора файлов текущего каталога текущего устройства (устройство задается свойством Drive, каталог на нем - свойством Directory).
Свойство FileName содержит имя текущего файла, в свойстве Mask задается шаблон выбора файлов, фильтр файлов по атрибутам их реализуется соответствующей установкой свойства FileType. Свойство FileEdit может быть установлено на реальное имя компонента TEdit (для индикации выбранного файла).
Метод ApplyFilePath (Path:string) переустанавливает путь согласно строке Path (также переустанавливаются связанные TDriveComboBox и TDirectoryListBox).
Связать данный TFileListBox с установленным на форме TDirectoryListBox можно, установив свойство FileList компонента TDirectoryListBox на реальное имя компонента TFileListBox.
Значимое событие - OnChange.
5.15 Компонент BiSwitch
Компонент BiSwitch является VBX-компонентом (необходим доступ к файлу VBX.DLL), выполняет функцию двоичного переключателя (нажатие 'мышью') и расположен на странице VBX палитры компонентов (на рис. 6 - верхний в правой колонке).
Из свойств отметим TextPosition (задает расположение текста) и рOn (при pOn=TRUE исходное состояние переключателя включенное - отличается красной меткой, в противном случае - наоборот).
Представляющие особый интерес события OnOff и ОnОn возникают в случае выключения и включения переключателя соответственно.
VBX (Visual Basic eXtensions) - технология (основанная на Visual Basic - компонентах) объявлена Microsoft Corp. пройденным этапом в развитии компонентной архитектуры WINDOWS и не поддерживается в Delphi 2.0 и выше; вместо них используются элементы OCX/ActiveX. Таким образом, находящиеся на странице VBX ИС Delphi 1.0 компоненты BiSwitch, BiGauge, BiPict и ChartFX нельзя использовать при переходе на Delphi 2.0 / C++Builder.
5.16 Компонент TSpinEdit
Компонент TSpinEdit (второй сверху в правом крайнем столбце, страница Samples палитры компонентов) является удачной комбинацией TEdit и TSpinButton и служит для редактирования (возможно, даже без ввода чисел с клавиатуры) целой величины (свойство Value доступно по чтению и записи) путем щелка «мышью» по кнопкам со стрелками вверх / вниз.
Свойство Increment задает шаг изменения, a MinValue и MaxValue задают диапазон изменения управляемой величины, значение свойства ReadOnly=TRUE запрещает редактирование управляемой величины с клавиатуры.
Значимые события - OnClick и OnChange.
5.17 Компонент TDirectoryOutline
Компонент TDirectoryOutline (третий сверху в крайнем справа столбце на рис. 6, страница Samples палитры компонентов) служит для отображения дерева файлов и каталогов текущего диска (заменяя TDirectoryListBox и TFileListBox).
Значения текущего диска задаются в свойстве Drive, каталога - Directory. При TextCase=tcLowerCase происходит преобразование символов к нижнему регистру, при TextCase=tcUpperCase - к верхнему, при TextCase=tcAsIs (умолчание) - преобразования не происходит.
Пользователь путем двойного щелчка «мыши» имеет возможность разворачивать и сворачивать выбранные ветви дерева файловой структуры (при этом возникают события OnExpand и OnCollapse соответственно).
Другие значимые события - OnClick и OnChange.
Ниже приведены две функции, обрабатывающая событие OnClick компонента TDirectoryOutline (первая) и событие OnChange компонента DriveComboBox (вторая); обе настраивают компонент DirectoryOutline на показ файловой структуры выбранного диска.
procedure TForm1. DirectoryOutline1Click (Sender: TObject);
begin DirectoryOutLlne1. Drive:=DriveComboBox1. Drive;
end;
procedure TForm1. DriveComboBox1Change (Sender: TObject);
begin
DirectoryOutLine1. Drive:=DriveComboBox1. Drive;
end;
5.18 Компонент TGauge
Компонент TGauge (самый нижний в крайнем справа столбце на рис. 6, в палитре компонентов находится на странице Samples) моделирует индикатор, отражающий значение некоей величины в процентах; обычно применяется для динамического отображения процента выполнения длительно протекающего процесса (например, копирования данных).
Стиль компонента задается свойством Kind, возможные значения - gkText (текстовый вывод величины в процентах), gkHorizontalBar (вертикальное заполнение), gkVerticalBar (вертикальное заполнение), gkPie (отклонение 'стрелки спидометра', см. рис. 6) или gkNeeddle (заполнение сектора окружности).
Свойства MinValue, MaxValue, Progress и PercentDone определяют минимальное и максимальное значение шкалы измерения и текущее значение индикатора (абсолютное и относительное в процентах) соответственно, метод AddProgress (VaIue: longint) добавляет Value к Progress.
5.19 Компонент TImage
Компонент TImage (страница Additional палитры компонентов) предназначен для показа на форме изображения - карты битов (TBitmap), метафайла (TMetaFile) или иконки (TIcon).
Свойство Picture служит контейнером для графического объекта одного из перечисленных классов, булево свойство AutoSize=TRUE настраивает компонент по размерам содержащегося в нем графического объекта, при Stretch=TRUE изображение заполняет всю область компонента (масштабируясь при необходимости). При Stretch=FALSE и Center=TRUE изображение центрируется в пределах рабочей области (Center=FALSE размещает изображение в левой верхней части оной).
Чтение и сохранение на диск файла изображения достигается использованием функций Picture-контейнера LoadFromFile и SaveToFile соответственно.
Ниже приведен текст процедуры, позволяющей выбрать и продемонстрировать изображение из выбранного файла
procedure TForm1. BltBtn1Cllck (Sender: TObject);
begin
OpenDialogl. Filter:='Все файлы|***|ВМР-файлы|*.bmр|'+
WMF-файлы|*.wmf|IСО-файлы|*.iсо';
with Image1 do
begin
try
if OpenDialog1. Execute then
Picture. LoadFromFile (OpenDialog1. Filename);
except
MessageDlg ('Ошибка демонстрации изображения из файла ' + OpenDialog1. Filename,
mtError, [mbOk], 0);
end;
end;
end; {конец процедуры}
5.20 Стандартные диалоговые окна windows и их применение
В списке компонентов Delphi / C++Builder имеются объекты, позволяющие работать со стандартными окнами диалога WINDOWS; в DesignTime они представляются виде соответствующих пиктограмм (иконок), служащих для выбора компонента с целью редактирования его свойств и сообщений с помощью Object Inspector'a.
Находятся эти компоненты на странице Dialogs палитры компонентов и инициализируются (в частности, визуализируются в виде диалоговых окон) функцией Execute, возращающей TRUE в случае выбора файла или FALSE в случае отказа от выбора (нажатия кнопки Cancel); таким образом настоятельно рекомендуется пользоваться конструкцией вида (вместо ХХХХХ подставляется реальное имя компонента)
if XXXXX. Execute then
… что-то делать…
else
exit;
5.20.1 Компонент TOpenDialog
Компонент TOpenDialog служит для выбора файла с целью его последующей обработки (диалоговое окно компонента приведено на рис. 7).
Рис. 7. Диалоговое окно компонента TOpenDialog
В свойство Filter заносятся (с помощью специальной раскрывающейся панели Object Inspector'a) расширения файлов, соответствующие маске поиска (совместно с текстовым описанием каждой маски), свойство FilterIndex указывает, какая из масок будет текущей при появлении диалога на экране, в свойство Title заносится заголовок диалогового окна, в InitialDir - имя желаемого каталога (если пусто, отображается содержимое текущего каталога), свойство DefaultExt задает расширение файла по умолчанию.
Установка свойства FileEditStyle в fsEdit (умолчание) соответствует приведенному рисунку, вариант FileEditStyle=fsComboBox вызывает появление содержащего историю выбора файлов выпадающего списка.
Выбранный файл доступен в свойстве FileName, событий компонент не имеет.
5.20.2 Компонент TSaveDialog
Компонент TSaveDialog служит для выбора имени сохраняемого файла (диалоговое окно компонента приведено на рис. 8).
Свойства данного компонента повторяют таковые для TOpenDialog, событий нет.
Рис. 8. Диалоговое окно компонента TSaveDialog
5.20.3 Компонент TFontDialog
Компонент TFontDialog служит для выбора шрифта (очертания символов), выбранное значение содержится в свойстве Font (диалоговое окно компонента приведено на рис. 9).
Свойство Device определяет тип устройства, для которого выбираются шрифты. Options задает режимы диалоговой панели, MinFontSize и MaxFontSize ограничивают высоту выбираемых шрифтов. Например, в следующем примере показано, как отобразить список только TrueType-шрифтов и присвоить выбранный шрифт компоненту Memo_1 (т.е. изменить шрифт отображения строк в Memo_1)
procedure TForm1. BitBtn1Click (Sender: TObject);
begin
with FontDialog1 do
begin
Options:=[fdTrueTypeOnly]; {только TrueType фонты!}
if Execute then
Memo_1. Font:=Font; {собственно присваивание типа шрифта}
end;
end;
Рис. 9. Диалоговое окно компонента TFontDialog
Присваивание типа шрифта можно проводить в обработчике события OnApply, возникающего при нажатии кнопки Apply на данной панели (кнопка Apply появляется на панели только при назначении обработчика данного события).
5.20.4 Компонент TColorDialog
Компонент TColorDialog служит для выбора цвета, выбранное значение содержится в свойстве Color (диалоговое окно компонента приведено на рис. 10).
Например, в нижеследующем примере показано, как `перекрасить' форму Form1 в выбранный (заданный глобальной переменной Color) цвет
procedure TForm1. BitBtn1Click (Sender: TObject);
begin
with ColorDialog1 do
begin
If Execute then
Form1. Color:=Color;
end;
end;
Событий компонент TColorDialog не имеет.
Рис. 10. Диалоговое окно компонента TColorDialog
5.20.5 Компонент TPrintDialog
Компонент TPrintDialog служит для задания характеристик принтера, событий не имеет (диалоговое окно компонента приведено на рис. 11).
Рис. 11. Диалоговое окно компонента TPrintDialog
5.20.6 Компонент TPrintSetupDialog
Компонент TPrintSetupDialog служит для выбора текущего принтера и установки режимов его работы, событий не имеет (диалоговое окно компонента приведено на рис. 12).
Рис. 12. Диалоговое окно компонента TPrintSetupDialog
5.20.7 Компонент TFindDialog
Компонент TFindDialog служит для вывода стандартной панели ввода образца и инициализации процесса поиска его в последовательности символов (диалоговое окно компонента приведено на рис. 13).
Рис. 13. Диалоговое окно компонента TFindDialog
Искомый образец находится в свойстве FindText; при нажатии кнопки FindNext возникает событие OnFind, в обработчике которого и должен происходить собственно поиск по образцу.
5.20.8 Компонент TReplaceDialog
Компонент TReplaceDialog служит для вывода стандартной панели ввода образцов 'заменить что…' и 'заменить на…', инициализации процессов поиска первого в последовательности символов и замены на второй (диалоговое окно компонента приведено на рис. 14).
Искомый образец находится в свойстве FindText, образец для замены - в ReplaceText. При нажатии кнопки FindNext возникает событие OnFind, в обработчике которого должен происходить собственно поиск по образцу; при нажатии кнопок Replace или ReplaceAll возникает событие OnReplace, в обработчике которого должна происходить непосредственная замена.
Рис. 14. Диалоговое окно компонента TReplaceDialog
5.21 Дополнительные компоненты Delphi И C++Builder
Стандартная поставка Delphi и C++Builder включает около 200 штатных компонентов. Однако большая часть мощности указанных интегрированных сред заключается именно в возможности (практически неограниченного) наращивания функциональности ИС путем расширения числа компонентов. В настоящее время в мире (в т.ч. в сети InterNet) доступны тысячи компонент для Delphi и C++Builder, обеспечивающие практически любое возможное применение указанных ИС.
Любой (достаточно квалифицированный) пользователь Delphi / C++Builder может создать свой собственный компонент (при уверенности в нужности и востребованности последнего); для интересующихся рекомендуем книгу [12].
Ниже приведены некоторые WEB-адреса, представляющие интерес для разработчиков компонентов для Delphi и C++Builder
http://www.intersurf.com/infiniti
http://www.regatta.com
http://www.wol2wol.com
http://www.tpower.com
http://www.eshalon.com
Delphi версий выше 1.0 и C++Builder предоставляют (в стандартной поставке) множество компонентов, привычных (по визуальному представлению) пользователям WINDOWS'9x и WINDOWS'NT; данные компоненты расширяют функциональность вышеописанных и расположены на странице Win32 палитры компонентов.
Например, можно рекомендуется использование компонента TTreeView вместо TOutline, TProgressBar вместо TGauge и др. Вышеприведенный список не включает описания компонентов, необходимых для создания ActiveX-объектов и InterNet-приложений; рекомендуются работа [10] и др.
Для пользователей Delphi могут быть интересны издания, посвященные данной ИС
http://www.cobb.com/ddj/index.htm
http://www.informant.com/undu/index.htm
http:///www.members.aol.comdelphimag
http://www.teleport.com/~ol/djournal.shtml
http://www.informant.com/delphi/di_index.htm
Указанные WEB-сайты не могут, естественно, полностью представить информацию о Delphi в сети InterNet; заинтересованным рекомендуем произвести поиск в Сети (применяя соответствующие поисковые системы) по соответствующим ключевым словам.
Существует и более современный путь расширения библиотеки визуальных компонент - например, загрузка дополнительных компонент в виде ActiveX с WEB-адресов службы поддержки интегрированных сред Delphi и C++Builder.
5.22 Поддержка технологий DDE и OLE В Delphi И C++Builder
Поддержка стандартных для WINDOWS технологий DDE и OLE инкапсулирована в компонентах TDDEClientConv, TDDEClientItem, TDDEServerConv, TDDEServerItem и OLEContainer соответственно; поддержка OLEAutomation достигается с помощью эксперта Automation Object Expert (функции поддержки описаны в модуле OLE2.PAS), подробнее см. [8,10].
Заключение
Данное методическое руководство является фактически введением в предмет создания приложений с помощью Delphi / C++Builder и тем более WINDOWS-программирования вообще и позволяет пользователю освоить самые простые приемы разработки пользовательских программ для WINDOWS. Для повышения квалификации (чему практически нет ограничений) необходимо изучение литературных источников (часть из них приведена ниже) и, главное, постоянная практическая работа на ПЭВМ.
Список рекомендуемой литературы
1. Адлер М. Система WINDOWS: введение в программирование. Журнал МирПК', №5 и след., 1991. с. 3648.
2. Рубенкинг Н. Турбо-Паскаль для WINDOWS. - M., Мир, 1993. 536+552 с. (2 тома).
3. Фролов А.В., Фролов Г.В. Мультимедиа для WINDOWS. Руководство программиста. - M., Диалог-МИФИ, 1994. -284 с. (Библиотека системного программиста, т. 15).
4. Фролов А.В., Фролов Г.В. Программирование для WINDOWS'NT. Руководство программиста. - M., Диалог-МИФИ, 1997. -272/271 с. (Библиотека системного программиста, т. 26/27).
5. Федоров А.Г. Создание WINDOWS-приложений в среде Delphi. - M., КомпьютерПресс, 1995. -287 с.
6. Дантеманн Д., Мишел Д., Тейлор Д. Программирование в среде Delphi (пер. с англ.), DiaSoft Ltd., Киев, 1995. -608 с.
7. Матчо Дж., Фолкнер Д.Р. Delphi (справочный материал). - M., БИНОМ, 1995. -464 с.
8. Дарахвелидзе П.Г., Марков Е.П. Delphi - среда визуального программирования. - СПтб., BHV-Санкт-Петербург, 1997. -352 с.
9. 0 рлик С. Секреты Delphi на примерах. - M., БИНОМ, 1996. -316 с.
10. Федоров A.Г. Delphi 2.0 для всех. - M., КомпьютерПресс, 1997. -464 с.
11. Шамис В.А. Borland C++ Builder. Программирование на C++ без проблем. - M., Нолидж/Knowledge, 1997. -266 с.
12. Конопка Р. Создание оригинальных компонент в среде Delphi. - Киев, DiaSoft, 1996. -512 c.
13. Архангельский А.Я. Функции С++, С++Builder 5 и API Windows (справочное пособие). - M., Бином, 2000. -240 c.
Подобные документы
Разработка 32-разрядных приложений Windows с помощью системы виртуального объектно-ориентированного программирования Delphi. Работа с коммуникационными портами. Виртуальное проектирование Windows. Назначение контактов COM порта (разъём DB-9S.).
реферат [32,7 K], добавлен 28.08.2009Основы работы с многооконным графическим пользовательским интерфейсом операционной системы Windows95/NT. Основы работы с прикладными программами Windows и DOS. Разработка простого приложения для Windows при помощи средства разработки приложений DELPHI.
контрольная работа [281,0 K], добавлен 15.01.2009Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.
дипломная работа [3,6 M], добавлен 13.07.2011Изучение учебника и справочной подсистемы Windows 95/NT, получение навыков работы с "мышью", манипулирование окнами и значками программ и документов, запуска программ в системе Windows 95/NT. Разработка простого приложения для Windows при помощи Delphi.
контрольная работа [1,1 M], добавлен 15.01.2009Основные приемы работы в среде программирования Delphi. Особенности технологии создания простейших приложений. Работа с компонентами среды разработки приложений. Ввод, редактирование, выбор и вывод информации. Аспекты использования структуры ветвления.
методичка [619,9 K], добавлен 17.11.2011Теоретические основы написания Windows-приложений с использованием библиотеки MFC. Основы программирования под Windows. Проектирование приложений в среде Microsoft Visual C++. Описание логической структуры приложения, его функциональное назначение.
курсовая работа [1,3 M], добавлен 12.12.2011Проектирование, кодирование и отладка службы Windows: "Контроль приложений", осуществляющей контроль набора приложений и управление ими; разработка приложения, управляющего этой службой. Взаимодействие службы и приложения; тестирование и сопровождение.
курсовая работа [1,1 M], добавлен 22.05.2013Использование языка программирования Delphi для записи программ, представляющих собой последовательность инструкций. Классы и директивы в объектно-ориентированном программировании. Разработка демонстрационной программы. Процесс настройки Windows XP.
дипломная работа [917,4 K], добавлен 15.01.2014История создания. Windows 9x/NT. Операционная система Microsoft Windows. Преимущества и недостатки Windows. Некоторые клавиатурные комбинации Windows 9x и NT. Windows XP Professional. Наиболее совершенная защита.
реферат [19,3 K], добавлен 18.07.2004Общая характеристика операционных систем и приложений Windows. Разделение ресурсов, работа с окнами, назначение диска, видов памяти, системы сохранения и передачи данных. История возникновения приложений, их виды и особенности, порядок написания.
курс лекций [321,0 K], добавлен 24.06.2009