Глобальные объекты Delphi

Объект Application как посредник между программой и операционной системой Windows. Получение списка принтеров, доступных в системе. Объект Clipboard как область межпрограммного обмена данными Windows, которая инкапсулирует свойства для работы с буфером.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 28.10.2011
Размер файла 37,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

6

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Application

2. Screen

3. Printer

4. Clipboard

Заключение

Список литературы

Введение

Delphi - это комбинация нескольких важнейших технологий:

Высокопроизводительный компилятор в машинный код

Объектно-ориентированная модель компонент

Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов

Масштабируемые средства для построения баз данных

Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре «клиент - сервер». Этот компилятор является самым быстрым в на стоящее время в мире, его скорость компиляции составляет свыше ста двадцати тысяч строк в минуту на компьютере 486 DX33. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в тоже время обеспечивает качество кода, характерного для компилятора 3GL. Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на Си или ручного написания кода (хотя это возможно).

В процессе построения приложения разработчик выбирает их палитры компонент, делающие крупные мазки кистью. Еще до компиляции он видит результаты свой работы - после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. В этом смысле проектирование в Delphi мало чем отличается от проектирования в проектирующей среде, однако после выполнения компиляции мы получим код , который исполняется в десять - двадцать раз быстрее, чем то же самое сделанное при помощи интерпретатора. В Delphi компиляция производится непосредственно в родной машинный код, в то время как существуют компиляторы, превращающие программу в так называемый р - код, который затем интерпретируется виртуальной р - машиной.

C любой запущенной программой автоматически связываются четыре глобальных объекта: Application (программа), Screen (экран), Printer (принтер) и Clipboard (область межпрограммного обмена данными).

1. Application

Объект Application класса TApplication, расположенного в модуле Forms, инкапсулирует важнейшие свойства и методы программы как таковой. Он создается автоматически и доступен любой программе. Объект не помещен в палитру компонентов, поэтому его свойства недоступны на этапе конструирования, но становятся доступными при прогоне программы Некоторые свойства программы могут устанавливаться с помощью менеджера проекта (опция Project/Options и Application). Иерархия наследования: TObject > TPersistent > TComponent > TApplication.

Application является посредником между программой и операционной системой Windows. C его помощью создается главная и последующие формы, реализуется цикл обработки сообщений и исключительных ситуаций, реализуется контекстно-зависимая справочная служба и т.д.

Свойства Application:

property Active: Boolean;

Содержит True, если любое окно программы имеет фокус ввода.

property ExeName: string;

Содержит полное имя (с маршрутом поиска) исполняемого файла программы.

property HelpFile: string;

Определяет имя файла справочной службы.

property Hint: string;

Содержит длинную часть оперативной подсказки.

property HintColor: TColor;

Определяет цвет фона ярлычка оперативной подсказки.

property HintHidePause: Integer;

Определяет паузу (в миллисекундах) от момента появления ярлычка до его исчезновения.

property HintPause: Integer;

Определяет паузу (в миллисекундах) от момента остановки указателя мыши до появления ярлычка.

property HintShortPause: Integer;

Определяет паузу (в миллисекундах) появления ярлычка при переходе с одного компонента на другой.

property Icon: TIcon;

Определяет пиктограмму программы.

property MainForm: TForm;

Определяет главное окно программы.

property ShowHint: Boolean;

Разрешает/запрещает показ ярлычков для всех окон программы.

property ShowMainForm: Boolean;

Разрешает/запрещает показ главного окна в момент старта программы.

property Terminated: Boolean;

Содержит True, если программа должна прекратить работу. Используется в приложениях с интенсивным счетом для контроля необходимости прекращения работы.

property Title: string;

Определяет текст под пиктограммой минимизированной программы.

Методы Application:

procedure BringToFront;

Помещает окно, которое было активным в последний раз, поверх остальных окон.

procedure CancelHint;

Запрещает показ ярлычков оперативной подсказки.

procedure CreateForm(FormClass: TFormClass; var References);

Создает объект - окно: вызывает конструктор класса FormClass и связывает его значение с переменной Reference.

procedure HandleException (Sender: TObject);

Осуществляет умалчиваемую обработку ИС. Используется при разработке новых компонентов.

procedure HandleMessage;

Приостанавливает работу программы до тех пор, пока не будут обработаны все сообщения, после чего создает событие OnIdle.

function HelpCommand (Command: Word; Data: Longint): Boolean;

Посылает справочной службе команду Command и параметр Data.

function HelpContext(Context: THelpContext): Boolean;

Вызывает раздел Context справочной службы и возвращает True, если такой раздел существует.

function HelpJump(const JumpID: string): Boolean;

Вызывает раздел справочной службы по его имени JumpID и возвращает True, если такой раздел существует.

procedure HideHint;

Убирает текущий ярлычок оперативной подсказки.

procedure HookMainWindow (Hook:TWindowHook) ;

Регистрирует функцию для перехвата сообщений Windows. TWindowHook=function(var Message:TMessage):Boolean of object;

function MessageBox(Text, Caption: PChar; Flags: Longint): Integer;

Создает и показывает диалоговое окно с текстом и кнопками: Text - сообщение в окне; Caption - заголовок окна. Назначение Flags и возвращаемое значение см. ниже.

procedure Minimize;

Минимизирует программу до пиктограммы.

procedure NormalizeTopMosts;

Приостанавливает действие стиля fsTopMost для всех окон программы.

procedure NormalizeAllTopMosts;

Распространяет действие NormalizeTopMosts на главное окно программы.

procedure ProcessMessages;

То же, что HandleMessage, но не создает событие OnIdle.

procedure Restore;

Восстанавливает первоначальные размеры всех окон программы до ее минимизации.

procedure RestoreTopMosts;

Восстанавливает действие стиля fsTopMost для всех окон программы.

procedure Run;

Запускает цикл получения и обработки сообщений Windоws.

procedure ShowException (E: Exception) ;

Реализует умалчиваемую обработку исключительных ситуаций.

procedure Terminate;

Завершает работу программы.

procedure UnhookMainWindow (Hook:TWindowHook);

Удаляет перехватчик сообщений, ранее установленный методом HookMainWindow.

С помощью методов HandleException и ProcessMessages программа может временно приостановить свою работу до тех пор, пока не будут обработаны все предназначенные ей сообщения Windows. Это бывает необходимо для обновления видимых компонентов в процессе отображения длительного по времени цикла работы. Если, например, программа изменит текст метки или состояние компонента ProgressBar, сообщение об этом поступит в очередь сообщений и останется в ней, пока не закончится текущая работа. Вызов HandleException или ProcessMessages в этом случае позволит метке или ProgressBar действительно обновить свой вид и отобразить новую фазу процесса. Разница между методами HandleException и ProcessMessages состоит в том, что первый после очистки очереди сообщений вызывает обработчик фонового события OnIdle, а второй не делает этого. Назначение события OnIdle см. после описания событий объекта Application. (Idle [?аidl] - незанятый).

Функция MessageBox дает удобное средство вывода на экран небольшого сообщения. Параметр Flags может быть произвольной комбинацией следующих значений:

mb_AbortRetryIgnore В окно вставляются кнопки Abort, Retry, Ignore.

mb_ApplModal Пользователь должен закрыть это окно, перед тем как продолжить работу с окном, его породившим; однако он может переходить в другие окна и работать с ними. Этот признак берется по умолчанию, если не определены ни mb_SystemModal ни mb_TaskModal.

mb_DefBiitton1 Кнопкой по умолчанию является кнопка 1.

mb_DefBntton2 Кнопкой по умолчанию является кнопка 2.

mb_DefButton3 Кнопкой по умолчанию является кнопка 3.

mb_DefBiitton4 Кнопкой по умолчанию является кнопка 4.

mb_Help Вставляется кнопка Help.

mb_IconAsterisk В окно вставляется пиктограмма в виде строчной буквы i в кружке.

mb_IconExclamation В окно вставляется пиктограмма в виде знака восклицания.

mb_IconHand В окно вставляется пиктограмма в виде знака Stop.

mb_Iconlnformation To же, что и mb_IconAsterisk.

mb_IconQuestion В окно вставляется пиктограмма в виде знака вопроса.

mb_IconStop To же, что и mb_IconHand.

mb_Ok В окно вставляется кнопка Ok.

mb_OkCancel В окно вставляются кнопки Ok и Cancel.

mb_RetryCancel В окно вставляются кнопки Retry и Cancel.

mb_SystemModal Все программы приостанавливают свою работу, пока пользователь не закроет это окно.

mb_TaskModal Приостанавливается работа во всех окнах данной программы до тех пор, пока пользователь не закроет это окно.

mb_YesNo В окно вставляются кнопки Yes, No.

mb_YesNoCancel В окно вставляются кнопки Yes, No, Cancel.

Функция MessageBox возвращает такие значения:

idAbort

Была нажата кнопка Abort.

idNo

Была нажата кнопка No.

idCancel

Была нажата кнопка Cancel.

idRetry

Была нажата кнопка Retry.

idIgnore

Была нажата кнопка Ignore.

idYes

Была нажата кнопка Yes.

idOk

Была нажата кнопка Ok.

Для объекта Application определены следующие события:

property OnActivate: TNotifyEvent;

Возникает, когда программа получает фокус ввода.

property OnDeactivate: TNotifyEvent;

Возникает, когда программа теряет фокус ввода.

TExceptionEvent = procedure (Sender: TObject; E: Exception) of object;

property OnException: TExceptionEvent;

Обработчик этого события реализует умалчиваемую обработку исключительных ситуации.

THelpEvent = function (Command: Word; Data: Longint; var CallHelp: Boolean): Boolean of object;

property OnHelp: THelpEvent;

Возникает при каждом обращении к справочной службе.

property OnHint: TNotifyEvent;

Возникает при необходимости отобразить длинную часть оперативной подсказки.

TIdleEvent = procedure (Sender: TObject; var Done: Boolean) of object;

property OnIdle: TidleEvent;

Обработчик этого события реализует фоновую работу (см. ниже пояснения).

TMessageEvent = procedure (var Msg: TMsg; var Handled: Boolean) of object;

property OnMessage: TMessageEvent;

Возникает при получении программой сообщения Windows. С помощью обработчика этого события можно обработать несколько или все сообщения до того, как их получит активная форма.

property OnMinimize: TNotifyEvent;

Возникает при минимизации программы.

property OnRestore: TNotifyEvent;

Возникает при восстановлении программой первоначальных размеров после ее минимизации.

property OnShowHint: TShowHintEvent;

Возникает при необходимости отобразить окно с ярлычком оперативной подсказки.

Событие OnIdle возникает, когда программа обнаруживает, что ее очередь сообщений пуста. Обработчик этого события может незаметно для пользователя выполнить вспомогательную работу, например, проверить орфографию у только что введенного слова, обработать статистические данные. Важно помнить, что выполняемая в обработчике работа не может занимать много времени, иначе программа перестанет реагировать на запросы пользователя. Если фоновая работа отнимает много времени, ее следует разбить на сравнительно небольшие фрагменты или периодически вызывать в ней метод HandleMessage. Обработчик в параметре Done сообщает о необходимости продолжить фоновую работу (Done=False) или о ее завершении (Done=True). В первом случае программа просмотрит очередь сообщений и после ее очистки вернет управлению обработчику OnClick. Во втором случае программа будет ожидать поступления новых сообщений.

Для события OnShowHint определены такие типы:

type

THintInfo = record

HintControl: TControl;

HintPos: TPoint;

HintMaxWidth: Integer;

HintColor: TColor;

CursorRect: TRect;

CursorPos: TPoint;

ReshowTimeout: Integer;

HideTimeout: Integer;

HintStr: string;

end;

TShowHintEvent=procedure(var HintStr:string;var CanShow:Boolean;var HintInfo:THintInfo) of object;

В параметре HintStr обработчик получает текст, который должен содержать ярлычок, а в параметре HintInfo - дополнительную информацию, в том числе: HintControl - элемент, для которого выводится ярлычок; HintPos - координаты верхнего левого угла ярлычка; HintMaxWidth - максимальная ширина окна; HintColor - цвет окна; CursorRect - прямоугольник, в котором должен оставаться указатель мыши, чтобы появился ярлычок; CursorPos - текущее положение указателя мыши; ReshowTimeout - задержка в миллисекундах от момента возникновения события до появления ярлычка; HideTimeout - время показа ярлычка в миллисекундах.

2. Screen

Объект Screen класса TScreen, расположенного в модуле Forms, создается автоматически и инкапсулирует свойства и методы, упрощающие работу с дисплеем ПК. Иерархия наследования: TObject > TPersistent > TComponent > TScreen. В частности, с его помощью оперативно изменяется вид используемого программой курсора. Как правило, программа устанавливает указатель в виде песочных часов перед началом длинной по времени работы и восстанавливает умалчиваемую форму после ее завершения. Для этого используется свойство Cursor объекта Screen.

Screen.Cursor := crHourGlass;

// Выполняем длительную работу:

// Восстанавливаем умалчиваемую форму:

Screen.Cursor := crDefault;

Свойства объекта Screen:

property ActiveControl: TWinControl;

Содержит ссылку на элемент с фокусом ввода.

property ActiveForm: TForm;

Содержит ссылку на окно с фокусом ввода.

property Cursor: TCursor;

Определяет текущий указатель мыши для окон программы.

property Cursors[Index.: Integer]: HCursor;

Открывает доступ к одному из зарегистрированных указателей мыши по его индексу.

property Fonts: TStrings;

Содержит список имен всех экранных шрифтов.

property FormCount: Integer;

Содержит общее количество показываемых на экране окон программы.

property Forms[Index: Integer]: TForm;

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

property Height: Integer;

Содержит высоту экрана в пикселях.

property IconFont: TFont;

Определяет шрифт для надписи ниже пиктограммы минимизированной программы.

property PixelsPerInch: Integer;

Содержит разрешающую способность экрана в пикселях на линейный дюйм.

property Width: Integer;

Содержит ширину экрана в пикселях.

Индексы зарегистрированных курсоров:

crDefault 0

crSizeNESW -6

crDrag -12

crNo -18

crNone -1 Нет

crSizeNS -7

crNoDrop -13

crAppStart -19

crArrow -2

crSizeNWSE -8

crHSplit -14

crHelp -20

crCross -3

crSizeWE -9

crVSplit -15

crHandPoint -21

crIBeam -4 I

crUpArrow -10

crMultiDrag -16

crSize -5

crHourGlass -11

crSQLWait -17 SQL

С объектом Screen связаны два события:

property OnActiveControlChange: TNotifyEvent;

Возникает при переходе фокуса ввода от одного элемента к другому.

property OnActiveFormChange: TNotifyEvent;

Возникает при переходе фокуса ввода от одной формы к другой.

3. Printer

Объект Printer класса TPrinter автоматически создается, если в программе указана ссылка на модуль Printers. Этот объект предоставляет программисту все необходимое для того, чтобы научить программу выводить данные на один из подключенных к ПК принтеров. Иерархия наследования: TObject > TPrinter. Вывод на принтер в Windows ничем не отличается от вывода на экран: в распоряжение программиста предоставляется свойство Canvas объекта Printer, содержащее набор чертежных инструментов и методы, свойственные классу TCanvas.

Свойства объекта Printer.

property Aborted: Boolean;

Содержит True, если выполнение предыдущего задания на печать было досрочно прекращено.

property Canvas: TCanvas;

Канва принтера - основной инструмент создания изображения на листе бумаги.

property Copies: Integer;

Указывает требуемое количество копий документа.

property Fonts: TStrings;

Содержит список всех доступных принтеру шрифтов. TrueType-шрифты могут входить в список даже, если принтер их не поддерживает. Модуль GDI позволяет выводить такие шрифты, преобразовывая их в графические образы.

TPrinterOrientation = (poPortrait, poLandscape);

property Orientation: TPrinterOrientation;

Определяет ориентацию листа бумаги: poPortrait - вертикальная; poLandscape - горизонтальная.

property PageHeight: Integer;

Содержит высоту листа бумаги в пикселях принтера.

property PageNumber: Integer;

Содержит номер печатаемой страницы документа.

property PageWidth: Integer;

Содержит ширину листа бумаги в пикселях принтера.

property PrinterIndex: Integer;

Содержит индекс умалчиваемого принтера.

property Printers: TStrings;

Содержит список всех доступных принтеров.

property Printing: Boolean;

Содержит True, если принтер занят печатью.

property Title: string;

Содержит имя задания на печать.

Все свойства объекта Printer доступны только во время выполнения программы. Значения свойств Canvas, Fonts, Orientation, PageHeight, PageNumber, PageWidth, Printers изменять во время выполнения программы нельзя.

Методы объекта Printer:

procedure Abort;

Аварийно завершает вывод на устройство печати. Данные в буфере принтера теряются.

procedure BeginDoc;

Посылает информацию на принтер.

procedure EndDoc;

Завершает работу с документом и начинает непосредственный процесс печати.

procedure NewPage;

Указывает на переход к новой странице документа, увеличивает на единицу значение свойства PageNumber и устанавливает значение свойства Pen принтерного контекста Canvas в (0, 0).

Пример управления некоторыми свойствами класса TPrinter:

procedure TForm1.FormCreate(Sender: TObject);

begin

Form1.ComboBoxl.Items := Printer.Printers; // Принтеры, определенные в системе

Form1.ComboBox2.Items := Printer.Fonts; // Шрифты, поддерживаемые принтерами

ComboBox1.ItemIndex := 0; // Установить на первый элемент

ComboBox2.ItemIndex := 0; // Установить на первый элемент

RadioButton1.Checked := True;

Printer.Orientation := poPortrait; // По умолчанию - ориентация Portrait

Edit1.Text := IntToStr(Printer.PageHeight); // Показать текущую высоту

Edit2.Text := IntToStr(Printer.PageWidth); // и ширину

ActiveControl := Edit3; // выбрать строку редактирования

end;

procedure TForm1.RadioButton1Click(Sender: TObject);

begin

if (Sender as TRadioButton).Checked then begin

if (Sender as TRadioButton).Caption = 'Portrait'

then Printer.Orientation := poPortrait

else Printer.Orientation := poLandscape;

end;

end;

procedure TForm1.Button1Click(Sender: TObJect);

begin

Printer.Title := Edit3.Text; // Установить заголовок страницы

end;

procedure TFormI.Button2Click(Sender: TObJect);

begin

// Непосредственный вывод информации на принтер,

Print; // например, вывод содержимого формы

end;

Пример использования метода Abort:

procedure TForm1.FormKeyDown(Sender: TObJect; var Key: Word; Shift: TShiftState);

begin

// Если во время печати нажата клавиша ESC

if (Key=VK_ESCAPE) and Printer.Printing then begin

Printer.Abort; // Прервать печать

MessageDlg('Вывод на принтер прерван', mtInformation, [mbOK], 0);

end;

end;

Получение списка принтеров, доступных в системе

Ниже показано, как заполнить список (TListBox) информацией о принтерах, доступных в системе. Это может быть полезно, если в системе доступно несколько принтеров, - пользователь может выбрать один из них.

procedure TForm1.FormCreate(Sender: TObject);

begin

ListBox1.Sorted := True;

ListBox1.Items := Printer.Printers //Заполнить список информацией

end;

Переключение режимов вывода информации

Ниже показано, как использовать свойство Orientation для переключения режимов вывода информации на устройство печати.

procedure TForm1.PortraitClick(Sender: TObject);

begin

Printer.Orientation := poPortrait; //Вывод вертикально

end;

procedure TForm1.LandscapeClick(Sender: TObject);

begin

Printer.Orientation := poLandscape; //Вывод горизонтально

end;

Базовые операции с принтером

Сначала вызывается метод BeginDoc. Затем выводится информация, а ее непосредственная распечатка начинается после вызова метода EndDoc:

begin

Printer.BeginDoc;

// Здесь происходит вывод информации на принтер, например,

// с помощью вызова Printer.Canvas.TextOut(X, Y, ' ');

// Сообщить пользователю

Labell.Caption := 'Печатаем страницу ' + IntToStr(Printer.PageNumber);

Printer.NewPage; // Новая страница

Printer.EndDoc; // Начать печать

end;

Вывод на принтер графического изображения:

begin

Printer.BeginDoc; //Начнем вывод информации

Printer.Canvas.Rectangle(10, 10, 200, 200); //Нарисуем прямоугольник

Printer.EndDoc; //Начнем печать

end;

Вывод текстовой информации

Для вывода на устройство печати содержимого редактора (класс типа TMemo) можно воспользоваться рядом процедур, определенных в модуле Printers. Сначала ассоциируем значение текстовой переменной с принтером. Для этого используется процедура AssignPrn. Например:

var

TextToPrint : System.Text;

begin

AssignPrn(TextToPrint); // Ассоциировать с принтером

Rewrite(TextToPrint); // Открыть файл

Отметим, что с принтером может быть ассоциирована только одна текстовая переменная. application clipboard программа принтер

Попытка ассоциации второй текстовой переменной приведет к возникновению ошибки.

После этого вызов стандартных процедур Write и Writeln приведет к выводу текста на устройство печати (точнее, в принтерный контекст, определенный свойством Canvas). Вывод содержимого редактора осуществляется с помощью стандартной процедуры Writeln:

for Line := 0 to Memo1.Lines.Count-1 do Writeln(TextToPrint, Memo.Lines[Line]);

После того как вывод информации завершен, необходимо вызвать стандартную процедуру Close:

System.Close(TextToPrint);

Этот вызов эквивалентен вызову Printer.EndDoc. Для того чтобы текст на устройстве печати печатался тем же шрифтом, который используется для его отображения в редакторе, перед выводом информации на принтер необходимо выполнить следующее присваивание:

Printer.Canvas.Font := Memo1.Font;

Примечание. Для вывода текстовой информации можно также воспользоваться методом TextOut принтерного контекста (Canvas):

procedure Canvas.TextOut(X, Y: Integer; const Text: string);

Распечатка содержимого ASCII-файла с использованием функций модуля Printers:

procedure PrintFile(FileName : String);

var

F : TextFile;

S : String;

Row : Integer;

begin

AssignFile(F, FileName); Reset(F);

Row := 0;

Printer.BeginDoc;

while not EOF(F) do begin

Readln(F, S);

Printer.Canvas.Text0ut(0, Row, S)

// Получаем отрицательное значение PageHeight, поэтому вычитаем, а не прибавляем

Row := Row - Printer.PageHeight;

if Row >= Printer.PageHeight then Printer.NewPage;

end;

Printer.EndDoc; // начать печать

CloseFile(F);

end;

4. Clipboard

Объект Clipboard класса TClipboard - область межпрограммного обмена данными Windows (для краткости назовем ее буфером) - инкапсулирует методы и свойства для работы с буфером. Объект автоматически создается, если программа Delphi сослалась на модуль Clipbrd. Иерархия наследования: TObject > TPersistent > TClipboard.

Свойства объекта Clipboard:

property AsText: string;

Рассматривает содержимое буфера как текстовую строку длиной до 255 символов (формат CF_TEXT). Для обмена с буфером более длинными строками следует использовать его методы SetTextBuf и GetTextBuf.

property AsPicture: TPicture;

Рассматривает содержимое буфера как графическое изображение: объект типа TPicture, иконка, растровое изображение или метафайл (форматы CF_PICTURE, CF_BITMAP, CF_METAFILE).

property AsComponent: TPersistent;

Рассматривает содержимое буфера как компонент (формат CF_COMPONENT).

property FormatCount: Integer;

Возвращает общее количество форматов, определенных свойством Formats.

property Formats[Index: Integer]: Word;

Содержит список всех форматов данных, поддерживаемых областью обмена данными. Параметр Index свойства Formats позволяет перемещаться по списку поддерживаемых форматов.

С помощью свойств AsText, AsPicture и AsComponent можно размещать или извлекать из области обмена данными тексты, графические изображения и объекты. При этом в области обмена данными должна содержаться информация соответствующего формата, в противном случае произойдет ошибка. Чтобы проверить, содержится ли в области обмена данными информация в требуемом формате, можно использовать метод HasFormat, например:

if Clipboard.HasFormat(CF_TEXT)

then //Область обмена данными содержит информацию в виде текстовой строки

else // Область обмена данными содержит информацию в другом формате или

// вообще не содержит информации

Примечание. Форматы CF_PICTURE и CF_COMPONENT зарегистрированы как вызовы стандартной функции RegisterClipboardFormat:

CF_PICTURE := RegisterClipboardFormat('Delphi Picture');

CF_COMPONENT := RegisterClipboardFormat('Delphi Object');

Свойства AsText, AsPicture и AsComponent для извлечения и хранения данных используют стандартные функции GetClipboardData и SetClipboardData. Свойства FormatCount и Formats доступны только для чтения и только во время выполнения программы. Список поддерживаемых областью обмена данными форматов создается в момент инициализации приложения.

Методы объекта Clipboard:

procedure Assign (Source: TPersistent);

Копирует в буфер объект, указанный параметром Source. Если объект принадлежит классам TGraphic, TBitmap, TPicture или TMetafile, то в область обмена данными копируется графическое изображение соответствующего формата (см. примечание ниже).

procedure Сlear;

Очищает буфер. Очистка происходит автоматически при добавлении данных в область обмена.

procedure Close;

Уменьшает на 1 счетчик блокировок буфера и закрывает буфер, если счетчик содержит 0. В системе ведется подсчет вызовов методов Open и Close, поэтому вызовы этих методов должны быть парными.

function GetTextBuf(Buffer: PChar; BufSize: Integer): Integer;

Копирует из Clipboard не более BufSize символов в текстовый буфер Buffer и возвращает действительное количество скопированных символов.

procedure HasFormat(Format: Word): Boolean;

Возвращает True, если буфер содержит данные в формате Format.

procedure Open;

Увеличивает на 1 счетчик блокировок буфера и открывает его, если он еще не был открыт. В вызове метода нет необходимости, если вы используете только один формат данных.

procedure SetTextBuf(Buffer: PChar);

Помещает в указанный компонент (Clipboard) содержимое текстового буфера Buffer. Таким компонентом может быть строка редактирования, редактор или список.

Чтобы поместить в буфер изображение, хранящееся, например, в объекте BitMap класса TBitMap, следует обратиться к методу Assign буфера: Clipboard.Assign(BitMap);

а для копирования изображения из буфера - к методу Assign объекта-приемника: BitMap.Assign(Clipboard);

Возможные значения параметра Format метода HasFormat:

Значение

Описание

CF_TEXT

Текстовая информация. Каждая строка заканчивается парой CR/LF, символ «0» указывает на конец текста

CF_BITMAP

Растровое изображение

CF_METAFILE

Метафайл

CF_PICTURE

Объект типа TPicture

CF_OBJECT

Объект типа TPersistent

Использование метода GetTextBuf

Метод GetTextBuf копирует текстовую информацию (число символов задается параметром BufSize) в буфер, указанный параметром Buffer, и возвращает число скопированных символов. В буфере будет находиться текст, заканчивающийся символом «0». Для того чтобы узнать, сколько символов занимает текст, используйте метод GetTextLen.

Обычно методы GetTextBuf и SetTextBuf используются только при работе со строками, размер которых превышает 255 символов. Например, для того чтобы поместить в объект типа TEdit текст, превышающий 255 символов, необходимо выполнить следующие действия:

var

Buffer : PChar,

Size : Byte;

begin

Size := Edit1.GetTextLen; // Размер строки в редакторе

Inc(Size); // Место для символа «0»

GetMem(Buffer, Size); // Создать буфер

Edit1.GetTextBuf(Buffer, Size); // Скопировать текст

Edit2.Text := StrPas(Buffer); // Преобразовать содержимое

FreeMeni(Buffer, Size); // Освободить память

end;

Область обмена данными и стандартные компоненты

Компоненты Edit и Memo имеют несколько методов для работы с областью обмена данными - CopyToClipboard, CutToClipboard и PasteFromClipboard.

Например, для того чтобы скопировать или вырезать текст из объекта типа TMemo в область обмена данными или из этой области в объект TMemo, необходимо выполнить следующие действия:

with Memo1 do begin

SelectAll; //Выделить весь текст

case EditCommand of

Ed_Copy : CopyToClipboard; // Скопировать в область обмена данными

Ed_Cut : CutToClipboard; // Вырезать в область обмена данными

Ed_Paste : PasteFromClipboard; // Скопировать из области обмена данными

end;

end;

Копирование содержимого области обмена данными в компонент типа TMemo:

procedure TFormI.Button1Click(Sender: TObject);

begin

if not Clipboard.HasFormat(CF_TEXT)

then MessageDlg('В Clipboard нет текста', mtInformation, [mbOK], 0)

else Memo1.PasteFromClipboard;

end;

Заключение

В ходе выполнения работы получены новые теоретические сведения о современном техническом и программном обеспечении офисной деятельности; привиты практические навыки работы с операционными системами, программными оболочками, разнообразными служебными и сервисными средствами; освоено применение офисного пакета Microsoft Office для автоматизации сбора, хранения, обработки и передачи информации.

Также были углублены и закреплены знания по алгоритмизации, программированию и решению в интегрированной визуальной среде программирования Delphi задач по экономике и управлению на предприятии.

Список литературы

1. Ахаян В., Горев А., Макашарипов С. Эффективная работа с СУБД. С-П.: ПИТЕР, 2002 г.

2. Ворощук А. Н. Основы ЦВМ и программирование. Главная редакция физико-математической литературы изд-ва “Наука”, М., 2003 г.

3. Вычислительные машины, системы и сети: Учебник/А.П. Пятибратов, С.Н. Беляев, Г.М. Козырева и др.; Под ред. проф. А.П. Пятибратова. - М.: Финансы и статистика, 2001 г.

4. Горев А., Макашарипов С., Владимиров Ю. Microsoft SQL Server для профессионалов. СПб.: Питер, 2003 г.

5. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. М., 2001 г.

6. Дарахвелидзе П., Марков Е. Программирование в Delphi. Спб, 2005 г.

7. Дейт К. Введение в системы баз данных. М: Наука, 2002 г.

8. Каган Б. М. Электронные вычислительные машины и системы: Учеб. пособие для вузов. - 2-е изд., перераб. и доп. М.: Энергоатомиздат, 2005 г.

9. Макдона Р. Основы микрокомпьютерных вычислений: Пер. с англ./ Т. Г. Никольской; Под ред. В.Ф. Шаньгина. М.: Высш. шк., 2002 г.

10. Мейер Б. Бодуэн К. Методы программирования. М., 2002 г.

11. Ахо А.В., Хопкрофт Д.Э., Ульман Д.Д. Структуры данных и алгоритмы. - М.: Издательский дом “Вильямс”, 2000.

12. Кнут В. Искусство программирования. Т.1. Основные алгоритмы. - 3-е изд. - Издательский дом “Вильямс”, 2000.

Размещено на Allbest.ru


Подобные документы

  • Windows как посредник пользователя и операционной системы, облегчая процесс общения между ними, история становления и развития ее первых версий. Функциональные особенности и отличия Windows 95/98/ME и Windows NT/2000/XP/Vista/7, их архитектурные решения.

    презентация [12,7 K], добавлен 23.10.2013

  • Методы и приемы работы в операционной системе Windows XP, часто используемой при работе с персональным компьютером. Средства по настройке и конфигурации операционной системы. Соответствие используемых аппаратных средств потребностям пользователя.

    курсовая работа [4,7 M], добавлен 15.07.2009

  • Правила формирования списка на рабочем листе. Что понимается под структурой списка. Как осуществляется ввод данных. Простая сортировка списка. Интерфейс и функции приложения PowerPoint. Создание, редактирование и форматирование текстового документа.

    лабораторная работа [25,1 K], добавлен 16.01.2015

  • Основные характеристики графики в операционной системе Windows, реализация объектно-ориентированной идеологии. Специфика и этапы разработки программного продукта, описывающего графический объект, на 32-битном ассемблере с использованием API-функции.

    курсовая работа [82,3 K], добавлен 18.05.2014

  • Основы работы с многооконным графическим пользовательским интерфейсом операционной системы Windows95/NT. Основы работы с прикладными программами Windows и DOS. Разработка простого приложения для Windows при помощи средства разработки приложений DELPHI.

    контрольная работа [281,0 K], добавлен 15.01.2009

  • Изучение учебника и справочной подсистемы Windows 95/NT, получение навыков работы с "мышью", манипулирование окнами и значками программ и документов, запуска программ в системе Windows 95/NT. Разработка простого приложения для Windows при помощи Delphi.

    контрольная работа [1,1 M], добавлен 15.01.2009

  • Общая характеристика и возможности сетевой операционной системы Windows 95. Объекты ОС, их классификация, разновидности. Правила работы с Word, создание и сохранение документов. Формирование и ввод данных в таблицах Excel. Форматирование дисков.

    контрольная работа [835,0 K], добавлен 25.02.2009

  • Знакомство с операционной системой Windows. Исследование её устройства, истории, возможностей, особенностей работы с ней для получения новых знаний. Описание наиболее использующихся и важных функций этой операционной системы, их практическое освоение.

    контрольная работа [2,9 M], добавлен 14.12.2009

  • Сущность основных аспектов эффективного функционирования в операционной системе Windows. Способ создания локальных сетей в операционной системе Windows XP, изучение их возможностей. Глобальная сеть Интернет в ОС Windows, структура и основные программы.

    курсовая работа [352,8 K], добавлен 15.02.2009

  • Общая характеристика и особенности операционной системы Windows 95, ее сетевые возможности, оценка преимуществ и недостатков. Сравнительная характеристика Windows 95, 98 и Millennium. Принципы работы и устройство принтеров, их части и назначение.

    курсовая работа [42,2 K], добавлен 05.03.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.