Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Плавающая палитра

Delphi , Программа и Интерфейс , Размеры и Положение

Плавающая палитра

На самоме деле для создания плавающей (floating) палитры вы можете использовать вышу форму. Хитрость заключается в том, чтобы убедиться, что окно палитры всегда появляется на "переднем плане" основного окна, а не сверху всех других окон. Этот эффект может быть достигнут перекрытием метода CreateParams вашей формы. Для примера,


procedure TForm2.CreateParams( var Params: TCreateParams );
begin
  inherited CreateParams( Params );
  with Params do
  begin
    Style := Style or ws_Overlapped;
    WndParent := Form1.Handle;
  end;
end;

Магия плаваюших палеток!

Этот код-снippet демонстрирует умелый способ создания плаваюшей палеты (также известной как перекрывающаяся окно), которая всегда появляется на верхнем уровне других окон, не закрываясь ими.

Вот разбивка кода:

  1. Метод CreateParams переопределен в классе TForm2.
  2. Вызов inherited CreateParams(Params) обеспечивает выполнение базовой реализации сначала, чтобы настроить необходимые параметры окна.
  3. Блок with Params do модифицирует стиль окна и устанавливает свойство WndParent в handle родительского формы (Form1.Handle). Это crucial для создания перекрывающегося окна.

Установка Style := Style or ws_Overlapped создает окно с стилем WS_OVERLAPPED, который позволяет ему перекрывать другие окна. Кроме того, указание ненулевого значения WndParent прикрепляет окно к родительскому форм и всегда делает его видимым на верхнем уровне.

Эта техника полезна, когда вам нужно создать палету или фloating-toolbar, который должен всегда оставаться видимым и доступным, даже если другие окна активны.

Альтернативное решение:

Если вы хотите создать плаваюшую палету без изменения метода CreateParams, вы можете использовать свойство TForm.Opacity для сделать палету полупрозрачной и позиционировать ее на верхнем уровне других окон с помощью свойств TForm.Left, TForm.Top и TForm.Width.

Например:

procedure TForm2.FormShow(Sender: TObject);
begin
  Self.Opacity := 0.5; // Make the palette semi-transparent
  Self.Left := 10;
  Self.Top := 10;
  Self.Width := 200;
end;

Эта APPROACH менее сложна и легче для реализации, но может не обеспечивать такой же уровень контроля над поведением палеты, как изменение метода CreateParams.

Плавающая палитра может быть создана с помощью переопределения метода CreateParams формы, добавив в него параметр ws_Overlapped и указав Handle родительской формы как WndParent.


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


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: Размеры и Положение ::


реклама



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

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 22:03:18/0.0045127868652344/2