Буфер обмена 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 Список строк и объектов (TStringList) Объектом является список элементов. Каждый элемент содержит текстовую строку и объект любого класса, включая картинки. Строка может иметь вид: [<имя параметра>=]<значение>. Реализуется подобно спискам TList. Потомки этого объекта входят в различные визуальные компоненты (пример в п. 2.3.2.5).
Свойства Capacity ‑ допустимое число элементов в списке (всегда больше Count). CommaText ‑ объединяет все строки списка в одну строку с указанием разделителей: текст строки в кавычках и точка с запятой между строками. Count ‑ фактическое точное число элементов в списке. Duplicates ‑ наличие дубликатов строк: duIgnore (дубликат пропускается), duError (генерируется исключение EListError), duAccept (допускается). Nаmes[N] ‑ возвращается имя параметра N‑й строки. Objects[N]:TObject ‑ открывает доступ к объекту под номером N. Sorted ‑ строки сортируются в алфавитном порядке (True). Strings[N]:String ‑ возвращает строку под номером N. Text ‑ объединяет все строки списка в одну строку. Values(S) ‑ возвращает строку со значением параметра под именем S. События OnChange ‑ возникает после последнего изменения списка строк. OnChanging ‑ возникает до первого изменения списка строк. Методы Add(S):Integer ‑ добавляет строку в конец списка и возвращает еe номер. AddObject(S,O:TObject):Integer ‑ добавляет строку и объект в конец списка. AddStrings(Strings:TString) ‑ добавляет новый список Strings в конец списка Assign(Source:Tpersistent) ‑ уничтожает старый и загружает новый список. BeginUpdate ‑ устанавливает флаг начала обновления для запрета сортировки. Clear ‑ очистка списка с освобождением памяти. Delete(N) ‑ удаление N‑го элемента из списка и освобождение памяти. EndUpdate ‑ сбрасывает флаг начала обновления и сортирует список. Exchange(N1,N2) ‑ меняются местами значения под номерами N1 и N2. Find(S, Var N) ‑ возвращает номер строки S в параметре N. GetText ‑ объединяет все строки с одну строку. IndexOf(S):Integer ‑ возвращает номер строки или -1, если ее нет. IndexOfObject(AObject:TObject):Integer ‑ возвращает номер объекта или -1, если его нет. Insert(N,S) ‑ вставляет строку в позицию N. InsertObject(N,S,Aobject) ‑ вставляет строку и объект в позицию N. Move(N1,N2) ‑ перемещает строку с позиции N1 в позицию N2. SetText(T:PCHar) ‑ разгружает строки в единый массив. Графика Графические возможности реализуются инструментами: шрифтом, пером, кистью и канвой (холст, поверхность для рисования) и используются для рисования на форме и в графических компонентах.
Шрифт (TFont) Свойства Color:Tcolor ‑ цвет шрифта. Pithc ‑ расположение букв в тексте: fpFixed (одинаковая ширина букв), fpVariabel (переменная), fpDefault. Height, Name ‑ высота в пикселях и имя шрифта (MS Sans Serif). Size ‑ высота букв в пунктах (1/72 дюйма). Style ‑ стиль шрифта, комбинация констант: fsBold (жирный), fsItalic (курсив), fsUnderline (подчеркнутый), fsStrikeOut (перечеркнутый). Процедурой Assign(S:Tpersistent) свойства объекта S устанавливаются равными свойствам текущего шрифта. Перо (TPen) Компонент служит для вычерчивания линий. Свойства Mode ‑ способ взаимодействия линий с фоном: pmBlack (черные), pmWhite (белые), pmNop (линии не видны), pmNot (инверсия цвета фона), pmCopy (цвет пера), pmNotCopy (инверсия цвета пера), pmMergePenNot (комбинация цвета пера и инверсного цвета фона), pmMaskPenNot (комбинация общих цветов пера и инверсного цвета фона), pmMergeNotPen (комбинация инверсного цвета пера и фона), pmMaskNotPen (комбинация общих цветов инверсного цвета пера и фона), PmMerge (комбинация цветов пера и фона), PmNotMerge (инверсия цветов пера и фона), pmMask (общие цвета пера и фона), pmNotMask (инверсия общих цветов пера и фона), pmXor (объединение цветов пера и фона операцией Xor), pmNotXor (инверсия объединения цветов пера и фона операцией Xor). Style ‑ стиль линий: psSolid (сплошная), psDash (пунктирная), psDot (из точек), psDashDot (штрих‑пунктирная), psDahDotDot (штрих‑дважды‑пунктирная), psClear (очистка, цвета фона), psInsideFrame (разделитель фреймов). Width ‑ ширина линии в пикселях. Кисть (TBrush) Компонент служит для заполнения поверхности замкнутых фигур. Свойства Bitmap:TBitmap ‑ растровое изображение. Color:TColor ‑ цвет кисти. Style ‑ стиль кисти: bsSolid (сплошная), bsClear (очищает), bsBDiadonal (/), bsFDiagonal (\), bsCross (#), bsDiagCross (диагональные клетки), bsHorizontal (‑), bsVertical (|).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|