:: MVP ::
|
|
:: RSS ::
|
|
|
Как изменить стандартный цвет ProgressBar?
// Способ первый
procedure TForm1.Button1Click(Sender: TObject);
begin
PostMessage( ProgressBar1.Handle, $0409, 0, clGreen );
end;
// Способ второй
uses
{...,} CommCtrl;
procedure TForm1.Button1Click(Sender: TObject);
begin
Progressbar1.Brush.Color := clTeal;
SendMessage( ProgressBar1.Handle, PBM_SETBARCOLOR, 0, clYellow );
end;
|
Как убрать рамку у ProgressBar?
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowRgn( ProgressBar1.Handle,
CreateRectRgn( 1, 1, ProgressBar1.Width-1,
ProgressBar1.Height-1 ), true );
end;
|
Как узнать значение ProgressBar в месте, по которому щелкнули мышью?
// Для горизонтального
procedure TForm1.ProgressBar1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
val: Int64;
begin
val := Round( X * ( ProgressBar1.Max - ProgressBar1.Min) / ProgressBar1.Width ) + ProgressBar1.Min;
end;
// Для вертикального
procedure TForm1.ProgressBar1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
val: Int64;
begin
val := ProgressBar1.Max - Round( Y * ( ProgressBar1.Max - ProgressBar1.Min ) / ProgressBar1.Height );
end;
|
Как сделать ProgressBar таким же, как на заставке Windows XP?
// Форма должна иметь манифест
type
TForm1 = class(TForm)
Button1: TButton;
ProgressBar1: TProgressBar;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
{...}
const
PBS_MARQUEE = $08;
PBM_SETMARQUEE = WM_USER + 10;
{...}
implementation
{...}
procedure TForm1.Button1Click(Sender: TObject);
var
FSpeed: Integer;
begin
FSpeed := 10;
SetWindowLong( ProgressBar1.Handle, GWL_STYLE,
GetWindowLong( ProgressBar1.Handle, GWL_STYLE ) or
PBS_MARQUEE );
// Включить
SendMessage( ProgressBar1.Handle, PBM_SETMARQUEE, 1, FSpeed );
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// Выключить
SendMessage( ProgressBar1.Handle, PBM_SETMARQUEE, 0, 0 );
end;
|
Как изменить позицию ProgressBar по щелчку мыши на нем?
// Для горизонтального
procedure TForm1.ProgressBar1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ProgressBar1.Position :=
Round( X * ( ProgressBar1.Max - ProgressBar1.Min ) / ProgressBar1.Width ) + ProgressBar1.Min;
end;
// Для вертикального
procedure TForm1.ProgressBar1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ProgressBar1.Position :=
ProgressBar1.Max - Round( Y * ( ProgressBar1.Max - ProgressBar1.Min ) / ProgressBar1.Height );
end;
|
При использовании материала - ссылка на сайт обязательна
|
|