Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в 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;




Наверх

Титульная страница Поиск, карта сайта Написать письмо