![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли в StatusBar изменить шрифт? [D5]
Alias © (2005-07-18 17:05:00)Можно ли в StatusBar изменить шрифт? Т.е. в StatusBar1.Panels[i].Text?
Если нет, как решить эту проблему? Засунуть туда TLabel? Как?
Big Joe (2005-07-18 17:58:00) [1]:-))
Alias (2005-07-18 17:50:00) [2]Большое спасибо!
Теперь похоже на правду. Осталось придумать как инициировать это событие если я хочу изменить текст.
begin...end (2005-07-18 17:43:00) [3]> Alias © (18.07.05 17:34) [2]
> Продемонстрируйте, пожалуйста, как мне сделать в
> Panel[1] текст красным, а в Panel[2] синим
Установите у нужных панелей свойство Style в psOwnerDraw и напишите такой обработчик OnDrawPanel:
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
with StatusBar.Canvas do
begin
case Panel.Index of
1: Font.Color := clRed;
2: Font.Color := clBlue
end;
TextOut(Rect.Left, Rect.Top, 'TEXT')
end;
end
Big Joe (2005-07-18 17:42:00) [4]// TStatusBar.Panels установить свойство Style в OwnerDraw.
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
if Panel = StatusBar.Panels[0] then
begin
StatusBar.Canvas.Font.Color := clRed;
StatusBar.Canvas.TextOut(Rect.Left, Rect.Top, 'Panel - 0')
end
else
begin
StatusBar.Canvas.Font.Color := clGreen;
StatusBar.Canvas.TextOut(Rect.Left, Rect.Top, 'Panel - 1');
end;
end;
Big Joe (2005-07-18 17:38:00) [5]Сейчас попробую далеко не уходи !!!
Alias (2005-07-18 17:34:00) [6]2Big Joe
Я прошу прощения, но не могли бы Вы разъяснить неразумному что делает данный пример? Выплняя этот код я не смог изменить начертание текста.
Продемонстрируйте, пожалуйста, как мне сделать в Panel[1] текст красным, а в Panel[2] синим...
Вот блин! Чувствую себя полным ламером...:(
Big Joe (2005-07-18 17:08:00) [7]With StatusBar1.Panels[1] do
begin
Text := Edit1.Text;
Canvas.Font.Size := StatusBar1.Font.Size;
Width := Canvas.TextWidth(Text) + 10;
end;