Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.30;
Скачать: 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 вся ветка

Текущий архив: 2003.01.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.036 c
3-96618
Viktor1
2003-01-14 05:22
2003.01.30
Какую базу лучше всего использовать на CD?


1-96877
jiura
2003-01-21 12:50
2003.01.30
MDI!!!


4-97080
markers
2002-12-14 16:55
2003.01.30
Как сделать?


3-96535
lutikh
2003-01-10 22:22
2003.01.30
Кнопка НАЙТИ ДАЛЕЕ в TFindDialog


3-96538
Makhanev A.S.
2003-01-14 16:20
2003.01.30
Задача: