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

Как создать TrackBar, в котором вместо широкой белой полосы была бы тонкая линия

Delphi , Компоненты и Классы , Создание компонент

Как создать TrackBar, в котором вместо широкой белой полосы была бы тонкая линия


Попадают Гейтс, Клинтон и Гор в рай. Бог их и спрашивает:
- Ну во что вы верите? Клинтон:
- Ну я верю в демократию и т.д. Бог:
- Молодец, садись по мою правую руку, а ты Гор во что веришь? Гор:
- Ну я верю в то что есть проблема глобального потепления и экологии. Бог:
- Правильно веришь, садись по левую мою руку. Ну а во что веришь ты, Гейтс? Гейтс:
- Хе-хе, мне кажется я верю что вы сидите на моем месте.

В примере создается компонент, унаследованный от TTrackbar который переопределяет метод CreateParams и убират флаг TBS_ENABLESELRANGE из Style. Константа TBS_ENABLESELRANGE обьявленна в модуле CommCtrl.


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls,
  Forms, Dialogs, CommCtrl, ComCtrls, StdCtrls;

type
  TMyTrackBar = class(TTrackBar)
    procedure CreateParams(var Params: TCreateParams); override;
  end;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  MyTrackbar : TMyTrackbar;

implementation
{$R *.DFM}

procedure TMyTrackBar.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style and not TBS_ENABLESELRANGE;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MyTrackBar := TMyTrackbar.Create(Form1);
  MyTrackbar.Parent := Form1;
  MyTrackbar.Left := 100;
  MyTrackbar.Top := 100;
  MyTrackbar.Width := 150;
  MyTrackbar.Height := 45;
  MyTrackBar.Visible := true;
end;

end.

Передать контент на русский язык:

Чтобы создать TrackBar с тонкой линией вместо широкой белой полосы, вы можете переопределить метод CreateParams в вашем.custom классе TMyTrackBar и установить флаг стиля TSBS_THIN.

Вот пример изменения кода:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  CommCtrl, ComCtrls, StdCtrls;

type
  TMyTrackBar = class(TTrackBar)
    procedure CreateParams(var Params: TCreateParams); override;
  end;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  MyTrackbar: TMyTrackBar;

implementation

{$R *.DFM}

procedure TMyTrackBar.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style and not (TBS_ENABLESELRANGE or TBS_THICK) or TBS_THIN;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MyTrackbar := TMyTrackBar.Create(Form1);
  MyTrackbar.Parent := Form1;
  MyTrackbar.Left := 100;
  MyTrackbar.Top := 100;
  MyTrackbar.Width := 150;
  MyTrackbar.Height := 45;
  MyTrackbar.Visible := True;
end;

end.

В методе CreateParams мы устанавливаем стиль TBS_THIN, чтобы отобразить TrackBar с тонкой линией. Мы также очищаем флаги TBS_ENABLESELRANGE и TBS_THICK, чтобы обеспечить, что TrackBar отображается как одиночная линия.

Теперь, когда вы запустите ваше приложение и нажмете кнопку, оно должно отобразить TrackBar с тонкой линией вместо широкой белой полосы.

Создать TrackBar с тонкой линией вместо широкой белой полосы можно, переопределив метод CreateParams унаследованного от TTrackbar компонента, удалив из Style флаг TBS_ENABLESELRANGE.


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

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




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


:: Главная :: Создание компонент ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-04-10 19:54:36/0.0034449100494385/0