![](/user_photo/2706_HbeT2.jpg)
- •Методическое пособие для самостоятельных работ «Основы интегрированной среды программирования 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 "Электрические системы и комплексы транспортных средств",
2.5.Указатели мыши
При перемещении указателя мыши по экрану он может менять свою форму в зависимости от свойства Cursor компонента, над которым он расположен в данный момент:
property Cursor: TCursor;
type TCursor = -32768..+32767;
В Delphi предопределены стандартные указатели, показанные на рисунке 2.1.
Рис. 2.1. Стандартные курсоры Delphi
В практике программирования часто возникает необходимость изменения формы указателя для всех окон программы. Например, при выполнении достаточно длительного по времени процесса указатель мыши часто принимает вид crHourGlass, а после завершения процесса - восстанавливает свой первоначальный вид. Чтобы изменить форму указателя для всех окон программы одновременно, используется свойство Сursor у глобального объекта Screen, который автоматически создается для каждой программы:
Screen.Cursor := crHourGlass;
..... //Делаем длительную работу
Screen.Cursor := crDefault; // Восстанавливаем начальную
// форму указателя
Программист может создать и использовать нестандартный указатель. При этом он должен:
с помощью редактора изображений Delphi создать изображение указателя и разместить это изображение в ресурсном файле программы;
в работающей программе сначала загрузить указатель из ресурсного файла с помощью функции LoadCursor и зарегистрировать его в списке Cursors объекта Screen, а уже только после этого назначать нестандартный указатель свойствам Cursor компонентов или экрана.
Рассмотрим процесс создания и использования нестандартного указателя на следующем примере, в котором создается и используется указатель в виде окружности.
Выберите опцию меню Tools | Image Editor, чтобы загрузить редактор изображений Delphi.
В окне редактора сначала выберите File | New | Resource File, а затем - Resource | New | Cursor. Окно редактора к этому моменту должно иметь вид, показанный на рис. 2.2.
Рис. 2.2. Окно редактора изображений с заготовкой для указателя мыши
С помощью опции Resource | Rename обязательно измените стандартное имя ресурса Cursorl на любое другое, например, MYCURSOR. Вы можете даже написать прежнее имя Сursor1, но изменить умалчиваемое имя ресурса нужно обязательно, иначе функция LoadCursor не сможет извлечь указатель из ресурсного файла (это имя должно состоять из заглавных букв).
Дважды щелкните по ресурсу в списке ресурсов или выберите опцию Resource | Edit - на экране появится окно редактора с двумя пустыми полями, обведенными красными рамками. Левое поле предназначено для показа создаваемого указателя в крупном масштабе, правое показывает его в натуральную величину.
Выберите инструмент в форме окружности в левой части окна редактора, нажмите и удерживайте клавишу Shift, чтобы получилась правильная окружность, подведите указатель мыши в виде крестика несколько правее и ниже верхнего угла левого поля редактора, нажмите левую кнопку мыши и, удерживая кнопку и клавишу Shift нажатыми, переместите указатель несколько левее и выше правого нижнего угла поля, после чего отпустите кнопку и клавишу (см. рис. 2.3: на этом рисунке выбранный инструмент имеет вид вдавленной кнопки).
Щелкните мышью по заголовку Untitled1.res окна со списком ресурсов (или закройте окно с изображениями указателя кнопкой в его правом верхнем углу) и с помощью File | Save сохраните ресурсный файл под именем Cursor, после чего закройте редактор изображений.
Создайте новый проект с пустой формой и напишите такой обработчик события OnCreate для формы Form1:
{$R *.DFM} ($R Cursor.res}
procedure TForm1.FormCreate(Sender: TObject);
begin
// Регистрируем указатель:
Screen.Cursors[1] := LoadCursor(HInstance,'MYCURSOR');
// Используем его для клиентской части формы:
Cursor := 1 end;
Не забудьте указать комментарий {$R Cursor.res}, чтобы компоновщик пристыковал ресурсный файл Cursor.res к ресурсному файлу программы. После запуска программы вы увидите в клиентской части пустой формы нестандартный указатель. При регистрации указателя в Screen, Cursors индекс может быть любым числом в диапазоне от -32768 до +32767. Однако следует учитывать, что индексы в диапазоне от -22 до -1 включительно заняты стандартными указателями, показанными на рис. 2.2 (индексы -5 и -1 соответствуют указателю crNone), а индекс 0 всегда связан со стандартным указателем Windows и не может переопределяться.