![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перерисовка StatusBar [D7, XP]
так себе © (2007-02-10 16:24:00)На форме 2 Radiobuttin'а. В зависимости какой из них выбран должен выводиться текст в StatusBar. делал так:
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
if Radiobutton1.Checked then
begin
with StatusBar1.Canvas do
begin
FillRect(rect);
Font.Color := clRed;
TextOut(rect.Left, Rect.Top, ' Долг');
end;
end else
begin
with StatusBar1.Canvas do
begin
FillRect(rect);
Font.Color := clgreen;
TextOut(rect.Left, Rect.Top, ' Переплата');
end;
end;
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
StatusBar1.OnDrawPanel := StatusBar1DrawPanel;
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
StatusBar1.OnDrawPanel := StatusBar1DrawPanel;
end;
В зависимости от того какой RadioButton вкючен перед запуском приложения - тот текс и выводится.
Однако при переключении RadioButton'ов смена выводимого текста не происходит. Что не так?
Johnmen (2007-02-10 20:54:00) [1]
> так себе (10.02.07 16:24)
А зачем конструкции типа
begin;?
begin;
...
end;
end;
Loginov Dmitry (2007-02-10 16:41:00) [2]
procedure TForm1.RadioButton1Click(Sender: TObject);
const
Values: array[0..1] of string = ('Долг', 'Переплата');
begin
StatusBar1.SimpleText := Values[TRadioButton(Sender).Tag];
end;
так себе (2007-02-10 16:38:00) [3]
> Вызови в онкликах процедуру обновления статусбара.
StatusBar1.Refresh
Спасибо, сразу и не сообразил
ANB (2007-02-10 16:27:00) [4]
> StatusBar1.OnDrawPanel := StatusBar1DrawPanel;
Что мы хотели сделать этими операторами ???
Вызови в онкликах процедуру обновления статусбара.