![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в StatusBar ;вывести иконку? [D5]
kserg@ukr.net © (2002-02-11 11:35:00)Спасибо
kserg@ukr.net (2002-02-12 12:51:00) [1]>Desdechado точно. Куда мои глаха глядели?
Всё заработало.
Извините за беспокойство...
Desdechado (2002-02-12 10:40:00) [2]похоже, ты забыл в панели статус-бара поставить psOwnerDraw
Юрий Жуков (2002-02-11 18:42:00) [3]Хм, да куда уж проще - в компоненте добавлена всего одна строчка кода, если ты заметил
kserg@ukr.net (2002-02-11 16:37:00) [4]> Юрий Жуков А что же так сложно?..
Юрий Жуков (2002-02-11 15:51:00) [5]Сделай себе компонет на который можно будет все что угодно положить
Например так:
unit AdvStatusBar;
interface
uses ComCtrls, Classes, Controls, Consts;
type
TAdvStatusBar = class(TStatusBar)
public
constructor Create(AOwner: TComponent); override;
end;
procedure Register;
implementation
constructor TAdvStatusBar.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle := ControlStyle + [csAcceptsControls, csOpaque];
end;
procedure Register;
begin
RegisterComponents("IR", [TAdvStatusBar]);
end;
end.
kserg@ukr.net (2002-02-11 15:06:00) [6]Нашел в хэлпе пример: перенёс, повторил, всё одно не работает...
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
with StatusBar1.Canvas do begin
Brush.Color := clRed;
FillRect(Rect);
Font.Color := clYellow;
ImageList1.Draw(StatusBar1.Canvas,Rect.Left,Rect.Top,Panel.Index);
TextOut(Rect.left + 30, Rect.top + 2, "Panel" + IntToStr(Panel.Index));
end;
end;
kserg@ukr.net (2002-02-11 15:03:00) [7]>Desdechado - уважаемый, всё сделал как у тебя, но иконка не рисуется... Что я не так делаю?
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
ImageList1.Draw( StatusBar.Canvas, Rect.Left, Rect.Top, 3 );
StatusBar.Canvas.FillRect( Rect );
end;
Desdechado (2002-02-11 13:56:00) [8]например, так:
procedure TfrmEdTermFeeding.feedStatusDrawPanel( StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect );
var
nImg: Integer;
begin
StatusBar.Canvas.FillRect( Rect );
ImageList2.Draw( StatusBar.Canvas, Rect.Left, Rect.Top, 3 );
end;