Читаем Виртуальная библиотека Delphi полностью

Создайте Bitmap и используйте свойство canvas класса TBitmap. Пример создает Bitmap, рисует на его canvas'е, выводит этот canvas на форму и освобождает bitmap.

Пример:

procedure TForm1.Button1Click(Sender: TObject);

var bm : TBitmap;

begin

 bm := TBitmap.Create;

 bm.Width := 100;

 bm.Height := 100;

 bm.Canvas.Brush.Color := clRed;

 bm.Canvas.FillRect(Rect(0, 0, 100, 100));

 bm.Canvas.MoveTo(0, 0);

 bm.Canvas.LineTo(100, 100);

 Form1.Canvas.StretchDraw(Form1.ClientRect,Bm);

 bm.Free;

end;

Вопрос:

В некоторых видео режимах прозрачная часть glyph'а стандартного TBitBtn становится видной. Как этого избежать?

Ответ:

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

Пример:

function InitStdBitBtn(BitBtn : TBitBtn; kind : TBitBtnKind) : bool;

var

 Bm1 : TBitmap;

 Bm2 : TBitmap;

begin

 Result := false;

 if Kind = bkCustom then exit;

 Bm1 := TBitmap.Create;

 case Kind of

 bkOK : Bm1.Handle := LoadBitmap(hInstance, 'BBOK');

 bkCancel : Bm1.Handle := LoadBitmap(hInstance, 'BBCANCEL');

 bkHelp : Bm1.Handle := LoadBitmap(hInstance, 'BBHELP');

 bkYes : Bm1.Handle := LoadBitmap(hInstance, 'BBYES');

 bkNo : Bm1.Handle := LoadBitmap(hInstance, 'BBNO');

 bkClose : Bm1.Handle := LoadBitmap(hInstance, 'BBCLOSE');

 bkAbort : Bm1.Handle := LoadBitmap(hInstance, 'BBABORT');

 bkRetry : Bm1.Handle := LoadBitmap(hInstance, 'BBRETRY');

 bkIgnore : Bm1.Handle := LoadBitmap(hInstance, 'BBIGNORE');

 bkAll : Bm1.Handle := LoadBitmap(hInstance, 'BBALL');

 end;

 Bm2 := TBitmap.Create;

 Bm2.Width := Bm1.Width;

 Bm2.Height := Bm1.Height;

 Bm2.Canvas.Brush.Color := ClBtnFace;

 Bm2.Canvas.BrushCopy(Rect(0, 0, bm2.Width, bm2.Height), Bm1, Rect(0, 0, Bm1.width, Bm1.Height), Bm1.canvas.pixels[0,0]);

 Bm1.Free;

 LockWindowUpdate(BitBtn.Parent.Handle);

 BitBtn.Kind := kind;

 BitBtn.Glyph.Assign(bm2);

 LockWindowUpdate(0);

 Bm2.Free;

 Result := true;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

 InitStdBitBtn(BitBtn1, bkOk);

end;

Вопрос:

Создание PolyPolygon используя массив точек?

Ответ:

Polygon — метод компонента TCanvas получает в качестве параметра динамический массив точек. Функция PolyPolygon() из Windows GDI получает указатель на массив точек.

Пример:

procedure TForm1.Button1Click(Sender: TObject);

var

 ptArray : array[0..9] of TPOINT;

 PtCounts : array[0..1] of integer;

begin

 PtArray[0] := Point(0, 0);

 PtArray[1] := Point(0, 100);

 PtArray[2] := Point(100, 100);

 PtArray[3] := Point(100, 0);

 PtArray[4] := Point(0, 0);

 PtCounts[0] := 5;

 PtArray[5] := Point(25, 25);

 PtArray[6] := Point(25, 75);

 PtArray[7] := Point(75, 75);

 PtArray[8] := Point(75, 25);

 PtArray[9] := Point(25, 25);

 PtCounts[1] := 5;

 PolyPolygon(Form1.Canvas.Handle, PtArray,PtCounts,2);

end;

Вопрос:

Как создать невизуальный компонент без иконки, которая изображается в палитре компонентов в "design-time" (вроде TField)?

Ответ:

Невизуальные компоненты без иконки удобны для субкомпонентов, связанных с какими-то другими компонентами. Создайте компонент как обычно, но используйте RegisterNoIcon вместо RegisterComponent.

Вопрос:

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных