Вниз
Скачать: CL | DM;

Можно ли как нибудь в статус бар положить прогресс бар?   Найти похожие ветки 

← →
siliks   (2003-01-19 01:25) [0]

Можно ли как нибудь в статус бар положить прогресс бар?


← →
Nick_N_A ©   (2003-01-19 06:49) [1]

По-секрету говоря в любой TWinControl можно ложить что угодно,
но иногда бывают проблемы с прорисовкой.

Client1.Parent:=Site1;
Client1.Left=0;
Client1.Top=0;



← →
Song ©   (2003-01-19 10:43) [2]

With TProgressBar.Create(Self) Do Parent:=StatusBar1;


← →
siliks   (2003-01-20 03:08) [3]

хмм. если честно, то я не совсем понял. Попробовал - у меня не получилось. То есть прогресс бар куда-то исчезает, но на статус баре ее тоже не видно .


← →
Nick_N_A ©   (2003-01-20 06:40) [4]

При создании компонента нужно еще: Visible:=true;
У тебя случай сложнее:

#панели=0;
StatusBar1.panels[#панели].style:=psOwnerDraw;{Object Inspector}

procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
Var
cn:TCanvas;
begin
cn:=TCanvas.Create;
cn.Handle:=GetDC(ProgressBar1.Handle);{У ProgressBar1 отсутствует Canvas, но мы его получили через hWnd}
if panel.Index=0{#панели} then
StatusBar1.Canvas.CopyRect(ProgressBar1.ClientRect,cn,
Classes.rect(3,3,100,15){координаты, должны совпадать с
координатами видимой части твоей секции с #панели}
);
cn.Handle:=0;
cn.Free;
end;



← →
Паша ©   (2003-01-20 13:31) [5]

Нашел как-то такую штуку, вроде работает:

{
ALStatusBar v1.0

(C)1999 Andrew Leigh
http://www.alphalink.com.au/~leigh/components
}
unit ALStatusBar;

interface

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

type
TALStatusBar = class(TStatusBar)
public
constructor Create(AOwner: TComponent); override;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents("ALComps", [TALStatusBar]);
end;

{ TALStatusBar }

constructor TALStatusBar.Create(AOwner: TComponent);
begin
inherited;

ControlStyle := ControlStyle + [csAcceptsControls];
end;

end.


← →
han_malign ©   (2003-01-20 13:45) [6]

ну дак можно и без лишних компонентов -
with StatusBar1 do ControlStyle := ControlStyle + [csAcceptsControls];


← →
Паша ©   (2003-01-20 15:02) [7]

Можно, только в дизайнере ничего не выйдет, надо ручками писать


← →
Calm ©   (2003-01-20 15:09) [8]

> При создании компонента нужно еще: Visible:=true;

Что-то я не видел компонентов, которые при создании в run-time появлялись невидимыми. Но это так, к слову...

Когда работал под D5, использовал замечательную библиотеку компонентов Raize. Так там со строкой состояния можно было делатль почти все что угодно в design-time. Но под D6 не могу найти эти компоненты :(


← →
Игорь Шевченко ©   (2003-01-20 15:34) [9]

Свои две копейки...
procedure TfrmMain.HideProgress;
begin
ProgressBar1.Visible := false;
ssBar.Invalidate();
end;


procedure TfrmMain.ShowProgress;
var I : Integer;
R : TRect;
begin
SetRect(R, 0, 0, 0, 0);
for I:=0 to Pred(ssBar.Panels.Count) do
Inc(R.Left, ssBar.Panels[I].Width);
R.Right := ssBar.ClientWidth;
if WindowState <> wsMaximized then
Dec(R.Right, ssBar.ClientHeight);
R.Top := 3;
R.Bottom := ssBar.ClientHeight;
with ProgressBar1 do begin
BoundsRect := R;
Parent := ssBar;
Visible := True;
end;
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.012 c
1-96760
zavisalych
2003-01-22 10:26
2003.01.30
Баг в компиляторе? неверное присвоение локалькой переменной


1-96694
URZA
2003-01-21 13:48
2003.01.30
WinRaR


6-96903
sera
2002-12-03 11:06
2003.01.30
Как получить список компов из Active Directory


1-96655
tru
2003-01-20 13:50
2003.01.30
Memo горизонтально.


1-96719
Robb
2003-01-22 11:24
2003.01.30
Как реализовать что-то типа компонента Dialogs




   Наверх