Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 5
Всего онлайн: 5
Зарегистрировано юзеров: 7938
Комментариев на сайте: 698
Новый юзер: Henryfar



Последние комментарии
c
Dennisvoifs прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Пункт коммерческого учета цена, Ктп комплектные трансформаторные подстанции москва, Производство ктп москва и не только Вы найдете на нашем специализированном сайте: - Вам к нам!https://sviloguzov.ru/
Arthurneime прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
[img]https://masterfutures.ru/wp-content/uploads/2020/03/14-2.png[/img] Online trading is becoming increasingly popular, as more people learn of the earning potential of platforms such as Broker, a broker which caters to a significant audience of digital traders (12 million and counting). Known for their excellent user interface, as well as fast deposit and withdrawal times, Broker provides multiple features to help traders earn on the markets. This overview will outline just some of the key aspects traders can expect to enjoy whilst working with Broker broker. Online trading is becoming increasingly popular, as more people learn of the earning potential of platforms such as Broker, a broker which caters to a significant audience of digital traders (12 million and counting). Known for their excellent user interface, as well as fast deposit and withdrawal times, Broker provides multiple features to help traders earn on the markets. This overview will outline just some of the key aspects traders can expect to enjoy whilst working with Broker broker. Broker Broker is operated by a dedicated team, whose main priority has always been to provide the best possible user experience, and ultimately satisfaction. Whether experienced in trading or a newcomer, the platform is easy to use and very responsive. The education section deserves special mention, particularly for assisting traders to learn and implement new strategies – which can be tested on the platforms free demo Source: [url=https://bit.ly/35fv3B6/]Broker[/url] https://bit.ly/35fv3B6/ Tags: Broker

Как нарисовать рамку фокуса

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

Как нарисовать рамку фокуса вокруг активного компонента Для начала нужно создать объект TShape в событии OnCreate формы и придать ему свойства:

uses
    { ... }, ExtCtrls;
	
var
  Form1: TForm1;
  focusRect: TShape;

{ ... }

procedure TForm1.FormCreate(Sender: TObject);
begin
  focusRect := TShape.Create(self) ;
  focusRect.Shape := stRectangle;
  focusRect.Visible := false;
  focusRect.Brush.Style := bsClear;
  focusRect.Pen.Style := psDot;
  focusRect.Pen.Color := clRed;
  focusRect.Pen.Width := 1;

  Screen.OnActiveControlChange:= ActiveControlChange;
end;
Примечание: переменная focusRect типа TShape объявляется в объявлении переменной формы. Теперь, когда фокус переходит от одного управления к другому, мы также передвигаем рамку фокуса.

Мы будем использовать процедуру ActiveControlChange, обрабатывая событие OnActiveControlChange глобального объекта Screen.
  private
    { Private declarations }
    procedure ActiveControlChange(Sender: TObject);
	
{ ... }

procedure TForm1.ActiveControlChange(Sender: TObject);
begin
with focusRect do
 begin
    Parent := Screen.ActiveControl.Parent;

    Top := Screen.ActiveControl.Top - 2;
    Height := Screen.ActiveControl.Height + 4;
    Left := Screen.ActiveControl.Left - 2;
    Width := Screen.ActiveControl.Width + 4;

    Visible := true;
   end;
end;
Размеры объекта focusRect подстраиваются под размеры активного управления, как мы и написали выше в коде.

Ну и наконец, нужно освободить память при закрытии приложения. Никогда не забывайте делать это!
procedure TForm1.FormDestroy(Sender: TObject);
begin
  Screen.OnActiveControlChange:= nil;
  focusRect.Free;
end;

Вот и всё, Удачи!

Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 23 Июня 2014
Просмотров:


Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): Sancho [Новичок] Дата: 2014-06-29
Источник: www.thedelphi.ru Автор: Савельев Александр Опубликовано: 22 Июля 2014-------------------->ИЮЛЬ ЕЩЕ НЕ НАСТАЛ!!!!!!-----------))))))))))))) Просмотров: 7966




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2014-07-06
Sancho, спасибо, исправил ошибку