Форум: "Основная";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];
ВнизМожно ли как нибудь в статус бар положить прогресс бар? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c