![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TabControl [D6]
Eric © (2005-12-14 08:29:00)Уважаемые,мастера.
Скажите, как перерисовать TabControl в зависимости,
если все в стиле FlatButtons, когда нажата кнопка, то эта кнопка
перерисосывает шрифт жирным, а не нажатые - остаются с нормальным
стилем шрифта.
Я пытался сделать, но не совсем знаю как.
procedure TMain_f.TabsDrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
AText: string;
r:Trect;
begin
with Control.Canvas do
begin
Control.Canvas.Brush.Color:=clbtnface;
Control.Canvas.FillRect(rect);
AText:=TTabControl(Control).Tabs[TabIndex];
{textout(rect.Left+2,rect.Top+2,atext); }
end;
with (Control as TCustomTabControl).Canvas do
begin
AText:=TTabControl(Control).Tabs[TabIndex];
(Control as TCustomTabControl).Canvas.Font.Style:=[];
textout(rect.Left+2,rect.Top+2,atext);
DrawTextEx(Control.Canvas.Handle, pchar(Atext),
length(atext), r, DT_WORD_ELLIPSIS, nil);
end;
if TabIndex < Tabs.Tabs.Count then
if Active = true then
if (Control as TCustomTabControl).Focused = true then
begin
if Application.MainForm.MDIChildCount > 0 then
AText:=TTabControl(Control).Tabs[TabIndex];
with (Control as TCustomTabControl).Canvas do
begin
(Control as TCustomTabControl).Canvas.Font.Style:=[fsbold];
AText:=TTabControl(Control).Tabs[TabIndex];
textout(rect.Left+2,rect.Top+2,atext);
DrawTextEx(Control.Canvas.Handle, pchar(Atext),
length(atext), r, DT_WORD_ELLIPSIS, nil);
end;
end;
Eric (2005-12-14 20:55:00) [1]надо чтобы нажатое состояние для одного tab выделяло кнопку жирным,
а для остальных tab кнопки в ненажатом состоянии были с обыкновенным шрифтом,
как в 1С Бухгалтерии.
umbra (2005-12-14 10:11:00) [2]а чего добиться то надо?