Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Некоторые приемы работы с формами
Если из одной формы (например, Form1) производится вызов методом Show или Showmodal другой формы (Form2), то в команде Uses в модуле вызывающей формы (Unit1) нужно добавить имя подключаемого модуля вызываемой формы (Uses Unit2). Обычно при выполнении приложения Delphi обнаруживает эту ситуацию и выводит диалоговое окна с запросом на подключение модуля. Можно пользователю самому, не дожидаясь запроса, выполнить это командой File/Uses Unit. Для закрытия окон используются методы Hide и Close. При вызове метода Show вызванное немодальное окно появляется на экране и работает вместе с вызывающим окном, и управление передается сразу команде, следующей за Show. При выполнении метода ShowModal вызванное модальное (диалоговое) окно (п.2.2.1) появляется на экране, и управление передается команде, следующей за ShowModal, только после закрытия модального окна. Перед закрытием модального окна пользователь должен поместить результат работы в свойство ModalResult этого окна. Некоторые стандартные диалоговые окна и кнопки (п.2.3.4.2) сами помещают значения в виде именованных констант mr<имя кнопки> (mrYes, mrNo, mrOK, mrCancel, mrNone (окно не закрывается), mrAbort, mrRetry, mrIgnore, mrAll, mrNoToAll, mYesToAll). Метод Close всегда помещает в ModalResult значение mrCancel. Пример вызова и закрытия модального окна Form2 из окна Form1: Procedure TForm1.Button1Click(Sender: TObject); //вызов окна Form2 Begin Form2.ShowModal; Label1.Caption:=inttostr(Form2.modalresult); End; Procedure TForm2.Button1Click(Sender: TObject); //закрытие окна Form2 Begin Close; ModalResult:=mrOK; {возврат результата 1 (mrOK)} End; Существуют два режима создания форм: автоматический при старте приложения (существенно замедляет время загрузки приложения и загружает память) и динамический в процессе выполнения программы. Эти режимы устанавливаются командой Project/Options/Form. В поле Auto ‑ Create forms находятся автоматически создаваемые формы, а в поле Available form переносятся пользователем динамически создаваемые. Программно форму можно создать двумя методами : Create (п.2.1.9) и CreateForm (п.2.2.1.2). Пример динамически создаваемой модальной формы Form3: Procedure TForm2.Button1Click(Sender: TObject); Begin If Not Assigned (Form3) Then Form3:=TForm3.Create(Self);//создание //или If Not Assigned (Form3) Then Application.CreateForm(TForm3,Form3); Form3.Caption:=’Запрос на продолжение работы’; //заголовок Form3 Form3.Icon.LoadFromFile(‘Car.ico’); //загрузка иконки If Form3.ShowModal=mrCancel Then Form1.Show;{возвращение}End; Приложение (Application)
Данным объектом является само выполняемое приложение и предназначено для связи приложения с Windows. Используя свойства, метод и события можно настроить приложение в целом. Свойства Active ‑ приложение активно (True). CurrentHelpFile ‑ имя справочного файла (.Hlp). ExeName ‑ полное имя исполняемого файла (.Exe). Handle ‑ идентификатор программы или окна объекта в системе Windows. HelpFile ‑ имя справочного файла по умолчанию. Hint, HintColor ‑ текст и цвет всплывающей подсказки. HintHidePause,HintPause,HintShortPause ‑ интервал в миллисекундах, по истечении которого убирается, всегда появляется и появляется подсказка соответственно. HintShortCuts ‑ вывод в подсказке клавиши быстрого доступа (True). Icon ‑ значок для идентификации приложения в Windows. MainForm:TForm ‑ имя главной формы. ShowMainForm ‑ главной формой считается форма, указанная при проектировании приложения (True). Иначе ‑ устанавливается новая главная форма через свойство MainForm со свойством Visible. Terminated ‑ имеет значение True, если Windows заканчивает выполнение приложения. Title ‑ заголовок приложения на кнопке панели задач. Методы ActivateHint(C:TPoint) ‑ отображает всплывающую подсказку в указанной точке экрана. BringToFont ‑ перемещает активное окно поверх всех окон. CancelHint ‑ убирает всплывающую подсказку. HelpCommand(C:Word,D:LongInt):Boolean ‑ доступ к функции (C ‑ код функции) Windows, работающей со справочной системой. HelpContext(C:THelpContext):Boolean ‑ отображает раздел справки. Hint ‑ возвращает длинную часть всплывающей подсказки (п. 2.1.7.10). Minimize ‑ все окна приложения свертываются. NormalizeAllTopMosts ‑ переводит все окна (NormalizeTopMosts ‑ исключая окно главной формы) из состояния «всегда поверх» в обычный. ProcessMessages/HandleMessage ‑ прерывает работу для обработки всех/следующего сообщения Windows. Используется против монополизации процессора при длительных вычислениях (в циклах). Restore ‑ восстанавливает все свернутые окна. RestoreTopMosts ‑ перевод всех окон в состояние «всегда поверх». ShowException(E:Exception) ‑ вывод окна с сообщением об ошибке. Terminate ‑ завершение выполнения приложения. Пример работы со справочной системой: Application.HelpFile:=’Инструкция.hlp’; //имя справочного файла
Application.HelpCommand(Help_Finder,0); //поиск справочного файла Application.HelpContext(DataNotFound); //вызов конкретного раздела Пример завершения работы приложения при возникновении ошибки: Procedure TForm1.AppException(Sender:TObject;E:Exception);//обработчик Begin Application.ShowException(E); Application.Terminate; End; Procedure TForm1.FormCreate(Sender:TObject);//при создании формы Begin Application.OnException:=AppException;{указание обработчика}End; События OnActivate/OnDeactivate/OnException ‑активизация/деактивизация/ошибка. OnHelp ‑ запрос на выдачу справки. OnHint ‑ указатель на объекте, способном выдать справку (п.2.1.7.10). OnIdle ‑ пауза в работе приложения (ожидается ввод данных). Параметр ‑ переменная Done=True задает останов обработчика, пока не будет обработано очередное сообщение Windows. OnMessage ‑ получено системное сообщение от Windows. OnMinimize/OnRestore ‑ приложение свернуто/развернуто. OnShortCut ‑ нажата клавиша пользователем (предшествует всем OnKey). OnShowHint ‑ готовится вывод всплывающей подсказки. Для использования событий приложения лучше использовать компонент ApplicationEvents (п. 2.3.8.6). Экран (Screen) Свойства ActiveControl/ ActiveForm ‑ объект/форма, имеющий фокус. Можно менять свойства формы. Пример. Screen.ActiveForm:=clGreen; //зеленый цвет фона формы Cursor ‑ текущая форма указателя мышки в приложении (п.2.1.7.9). Пример. Screen.Cursor:=crHourglass; // указатель ‑ песочные часы. FormCount ‑ число форм на экране. DeskTopWidth, DeskTopHeight ‑ ширина и высота стола в пикселях. DeskTopLeft,DeskTopTop ‑ левая и верхняя координаты стола. Fonts ‑ массив имен шрифтов вывода текста на экран, без шрифтов принтера (Edit1.Font.Name:=Screen.Fonts[0]). Width, Height ‑ ширина и высота экрана в пикселях. HintFont,IconFont,MenuFont ‑ шрифт подсказки, подписи под значком в окне выбора файла и пунктов меню соответственно. Monitors, MonitorCount ‑ массив мониторов и их число. PixelsPerInch ‑ число пикселей на один дюйм экрана. Методы EnableAlign/DisableAlign ‑ разрешение/запрет выравнивания форм по размерам экрана. Realign ‑ переупорядочение формы в зависимости от свойства Align. ResetFonts ‑ обновление списка текущих шрифтов. События OnActiveControlChange ‑ перемещение фокуса в текущей форме. OnActiveFormChange ‑ перемещение фокуса на новую форму. Принтер (Printer) Для работы с принтером следует подключить модуль Printers. Свойства Aborted ‑ печать досрочно прекращена (True). Capabilties ‑ настройка режима печати. Canvas ‑ канва принтера для создания изображения на бумаге. Copies ‑ указывает число требуемых копий документа. Fonts ‑ массив имен шрифтов вывода текста на печать Пример: Label1.Caption:=Printer.Fonts[0]. Orientation ‑ указывает ориентацию листа бумаги: poPortrait (вертикальная), poLandscap (горизонтальная). Page Width, PageHeight ‑ ширина и высота листа в пикселях принтера. PageNumber ‑ номер выводимой страницы документа. Printers ‑ массив доступных принтеров. PrinterIndex ‑ номер принтера из массива Printers. Handle ‑ идентификатор принтера в системе Windows. Printing ‑ принтер занят печатью документа (True). Title ‑ содержит имя задания на печать. Методы Abort, Begin, End, NewPage ‑ досрочно прекратить, начать, закончить печать документа и перейти на следующий лист соответственно. Refresh ‑ обновление массива шрифтов и принтеров. GetPrinter(Device,Driver,Port:PChar;Var DeviceMode:Thandle) ‑ получение информации о текущем принтере. SetPrinter(Device,Driver,Port:PChar; Var DeviceMode:Thandle) ‑ указанный принтер становится текущим.
2.2.5. Буфер обмена Windows (Clipboard) Для работы с буфером обмена следует подключить модуль Clipbrd. Свойства AsText ‑ содержимое буфера в виде строки (Clipboard:=’Иванов’). FormatCount,Formats ‑ число форматов данных буфера в массиве Formats. Методы Assign(S:Tpersistent), Clear ‑ копировать объект в буфер и, наоборот, восстановить, очистить буфер соответственно. Пример: Clipboard.Assign (Bitmap2); Bitmap2.Assign(Clipboard); GetComponent(O,P:TComponent):TComponent ‑ вставка из буфера в объект (O) с родителем (P, обычно форма или контейнер). SetComponent(O:TComponent) ‑ запись в буфер объекта (O). Пример. Clipboard.SetComponent(Button2); //копирование Button2 Clipboard.GetComponent(Self,GroupBox1); //восстан. Button2 в GroupBox1 GetTextBuf(S,N:Integer):Integer ‑ вывести данные из буфера в S. SetTextBuf(S) ‑ вывести данные S в буфер. HasFormat(F:Word):Boolean ‑ возвращает True, если данные в буфере формата F: cf_Text (текст), cf_Bitmap (точечное изображение), cf_MetaFilePict (графический метафайл), cf_Picture (объект типа Picture), cf_Component (другой стандартный объект). Open/Close ‑ открытие/закрытие буфера обмена при записи данных в несколько приемов в виде стека: Open/Close увеличивает/уменьшает на единицу счетчик блокировок буфера и открывает/закрывает его, если счетчик равен нулю. После закрытия новая запись удаляет старые данные. Списки (TList) Списки используются для автоматизации процедур создания динамических структур из элементов различных типов [1.9). Список ‑ это массив нетипизированных указателей на объекты, размещенные в динамической памяти. Потомки этого объекта входят в различные визуальные компоненты. Определение типа pPointerList имеет вид: Type pPointerList=^ TPointerList; TPpointerList=Array[0..MaxListSize] Of Pointer; Свойства Capacity ‑ допустимое число указателей в списке (всегда больше Count). Count ‑ фактическое точное число элементов в списке. Items(I:Integer):Pointer ‑ возвращает указатель на I‑й элемент. 2.2.6.2. Методы Add(Item:Pointer):Integer ‑ добавляет элемент в конец списка и возвращает его номер. Clear ‑ очистка списка без освобождения памяти. Delete(N) ‑ удаление N‑го элемента из списка. Exchange(N1,N2) ‑ меняются местами значения под номерами N1 и N2. Expand ‑ расширение памяти для списка (увеличение Capasity на 16). First/Last:Pointer ‑ возвращает указатель на первый/последний элемент. IndexOf(Item:Pointer):Integer ‑ возвращает номер элемента Item. Insert(N,Item:Pointer) ‑ вставляет элемент в позицию N (список при необходимости расширяется). Move(N1,N2) ‑ перемещает элемент с позиции N1 в позицию N2.
Pack ‑ удаляет пустые элементы в конце списка. Remove(Item:Pointer):Integer ‑ удаляет элемент Item, возвращая его номер. Sort(Compare:TlistSortCompare) ‑ сортирует список функцией пользователя Compare, которая имеет два параметра ‑ указателя U1, U2 (Pointer) и возвращает целое число (Integer) со значениями: отрицательное число (^U1<^U), ноль (^U1=^U) и строго положительное число (^U1>^U). Схема создания списка Var Spisok:TList; Element:Pointer; Znahenie:<нужный тип данного>; Begin Spisok:=TList.Create; //создание пустого списка Element:=New(Znahenie); //выделяем память (п.1.9.1) ... Spisok.Add(Znahenie); //добавляем элемент к списку ... Spisok.Remove(Element); //удаляем элемент из списка ... Dispose(Element); //удаляем элемент из памяти (п.1.9.1) ... Spisok.Free; //удаляем весь список Пример функции сравнения двух вещественных чисел типа Double и сортировки списка чисел: Type pd=^Double; //тип указателя на вещественный тип Double Function Sravnenie (u1,u2:Pointer):Integer; //функция сравнения двух чисел Begin If pd(u1)^<pd(u2)^ Then Result:=‑1 Else If pd(u1)^=pd(u2)^ Then Result:=0 Else Result:=1 End; ... Var SpisokHisel:TList;...SpisokHisel:=TList.Create; //создание списка ... SpisokHisel.Sort(Sravnenie); //сортировка списка чисел SpisokHisel
|
||||||||
Последнее изменение этой страницы: 2017-02-08; просмотров: 307; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.143.228.40 (0.036 с.) |