Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Затенение компонента определенным цветом

Delphi , Компоненты и Классы , Компоненты



Автор: [NIKEL]
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Функция рисует рамку(затенение) для определенного компонента,
определенным цветом с определенной шириной.

Зависимости: SysUtils
Автор:       [NIKEL], nikel@pisem.net, Norilsk
Copyright:   Some help
Дата:        15 сентября 2002 г.
***************************************************** }

procedure ShadeIt(f: TForm; c: TControl; Width: Integer; Color: TColor);
var
  rect: TRect;
  old: TColor;
begin
  if (c.Visible) then
  begin
    rect := c.BoundsRect;
    rect.Left := rect.Left + Width;
    rect.Top := rect.Top + Width;
    rect.Right := rect.Right + Width;
    rect.Bottom := rect.Bottom + Width;
    old := f.Canvas.Brush.Color;
    f.Canvas.Brush.Color := Color;
    f.Canvas.fillrect(rect);
    f.Canvas.Brush.Color := old;
  end;
end;

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

procedure TForm1.FormPaint(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to Self.ControlCount - 1 do
    ShadeIt(Self, Self.Controls[i], 3, clBlack);
end;

Программный код на Delphi, который создает процедуру под названием ShadeIt, которая рисует рамку (или тень) вокруг указанного контрола с заданной шириной и цветом.

Вот подробное описание кода:

  1. Процедура ShadeIt принимает четыре параметра:
  2. f: объект формы
  3. c: объект контрола
  4. Width: целое число, представляющее ширину рамки
  5. Color: значение типа TColor, представляющее цвет рамки

  6. Внутри процедуры:

    • Она проверяет, виден ли контрол (if c.Visible then)
      • Если контрол не виден, она ничего не делает и выходит из процедуры
    • Она рассчитывает новый прямоугольник, который включает в себя оригинальные границы контрола плюс заданная ширина на всех сторонах (верх, низ, левый, правый)
    • Она сохраняет текущий цвет кисти канваса формы (old := f.Canvas.Brush.Color)
    • Она устанавливает цвет кисти канваса в указанный цвет рамки (f.Canvas.Brush.Color := Color)
    • Она заливает новый прямоугольник указанным цветом рамки с помощью fillrect
    • Она восстанавливает оригинальный цвет кисти канваса (f.Canvas.Brush.Color := old)
  7. Пример использования в конце кода показывает, как использовать эту процедуру в обработчике события FormPaint формы.

Это полезно, если вы хотите создать custom border или контур вокруг конкретных контролов на вашей форме, и можно это сделать без необходимости ручного рисования каждой линии и кривой.

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


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Компоненты ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-07-14 23:49:02/0.0062901973724365/0