Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Вниз

ProgressBar to StatusBar   Найти похожие ветки 

 
alikvp   (2004-12-02 14:55) [0]

Мне удалось поместить ProgressBar в StatusBar - в Ваших FAQ
мне удалось найти подсказку. Но проблема в том, что я не могу
ни в одну из панелей StatusBara занести любую текстовую информацию сразу перед работой ProgressBara или в процессе
работы ProgressBara. Более того, делаю Label на форме, дабы не
привязываться к StatusBary, но все равно во время работы
ProgressBara в ней ничего не видно. Если кто-нибудь сталкивался с этим, пожалуйста, подскажите - в чем мои ошибки.
(Delphi 7, Windows XP). Заранее лагодарен В.Алик.


 
grom   (2004-12-02 19:25) [1]

unit Main;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   StatusBar1: TStatusBar;
   Timer1: TTimer;
   procedure StatusBar1DrawPanel(StatusBar: TStatusBar;
     Panel: TStatusPanel; const Rect: TRect);
   procedure Button1Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
 private
   { Private declarations }
  Percent: Integer;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
 Panel: TStatusPanel; const Rect: TRect);
var s: String;
   TH: Integer;
   Rec: TRect;
   X: Integer;
   Y: Integer;
begin
 S := Format("%u%%",[Percent]);
 TH := (Rect.Right - Rect.Left) * Percent div 100;
 X := ((Rect.Right - Rect.Left) + StatusBar.Canvas.Font.Height * Length(s)) div 2;
 Y := ((Rect.Bottom - Rect.Top)-(StatusBar.Canvas.Font.size div 2))  div 2 ;

 StatusBar1.Canvas.Brush.Color := clWhite;
 Rec := Classes.Rect(Th,Rect.Top,Rect.Right,Rect.Bottom);
 StatusBar.Canvas.TextRect(Rec,x,y,s);
 {ðèñîâàíèå íå çàïîëíåííîé ÷àñòè ëèíåéêè}
 StatusBar.Canvas.Font.Color := StatusBar.Canvas.Brush.Color;
 StatusBar.Canvas.Brush.Color :=  clNavy;
 Rec := Classes.Rect(Rect.Left,Rect.Top,TH,Rect.Bottom);
 StatusBar.Canvas.TextRect(Rec,x,y,S);
 {ðèñîâàíèå íå çàïîëíåííîé ÷àñòè ëèíåéêè}
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := True;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if Timer1.Enabled then
 Timer1.Enabled := not Timer1.Enabled;
Percent := 0;
StatusBar1.Invalidate;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled := False;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Percent = 100 then
 Percent := 0;
Percent := Percent + 1;
StatusBar1.Invalidate;
end;

end.
может это вам поможет


 
alikvp   (2004-12-07 17:26) [2]

Спасибо за программку. Но она не решает проблему, т.е., даже при такой организации ProgressBara поместить текст в одну из свободных панелей StatusBara не получается. Буду думать.
Еще раз, Спасибо!
    В.Алик


 
Александр Иванов ©   (2004-12-07 17:41) [3]

Я специально проверил, правда изменение Прогрессбара происходило по таймеру. Все работает. В первой панели находится


 
Александр Иванов ©   (2004-12-07 17:41) [4]

Я специально проверил, правда изменение Прогрессбара происходило по таймеру. Все работает. В первой панели находится ProgressBar, ф во второй я вывожу позицию.



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

Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.038 c
14-1101885880
raymond
2004-12-01 10:24
2004.12.19
Адвминистрирование компьютерного класса (ищу программу)...


1-1101900153
Larisa
2004-12-01 14:22
2004.12.19
Подскажите, пожалуйста, как динамически добавить


1-1102182353
DNT
2004-12-04 20:45
2004.12.19
Delphi 6,7,8


3-1100685372
Highlander
2004-11-17 12:56
2004.12.19
Подключение к БД IB/FB по локалке


14-1100958626
Nikolay M.
2004-11-20 16:50
2004.12.19
В ноутбуках кто разбирается?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский