Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 436; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.10 (0.01 с.) |