Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: CL | DM;

Вниз

Встевить рисунок в StatusBar   Найти похожие ветки 

 
Fenix ©   (2006-03-16 12:18) [0]

Доброго времени суток.
Мне нужно вставить рисунок в статус бар..
StatusBar1.Canvas.Draw(Rect.Left, Rect.Top, icon);

мне нужно вставить рисунок из Imagelist, но как его перевести в формат TGraphic?


 
balepa ©   (2006-03-16 12:32) [1]


> но как его перевести в формат TGraphic?

var
 g: TGraphic;
begin
 g:= TGraphic.Create;
 g:= Image1.Picture.Graphic;
 image2.Picture.Graphic:= g;
end;


 
balepa ©   (2006-03-16 12:33) [2]

var
g: TGraphic;
begin
g:= TGraphic.Create;
g:= Image1.Picture.Graphic;
Statusbar1.Canvas.Draw(1,1,g);
end;
тока рисунок поменьше


 
Fenix ©   (2006-03-16 12:53) [3]

С Image то все ясно... мне надо из imagelist взять этот рисунок... допустим у рисунка индекс 25. Как мне его перевести в TGraphic?


 
balepa ©   (2006-03-16 13:02) [4]

var
g: TGraphic;
b: TBitMap;
begin
g:= TGraphic.Create;
b:= TBitmap.Create;
ImageList1.GetBitmap(0,b);
g:= b;
Statusbar1.Canvas.Draw(1,1,g);


 
balepa ©   (2006-03-16 13:04) [5]

можно и так
var
b: TBitMap;
begin
b:= TBitmap.Create;
ImageList1.GetBitmap(0,b);
Statusbar1.Canvas.Draw(1,1,b);
p.s. TBitmap = class(TGraphic)


 
Fenix ©   (2006-03-16 13:18) [6]

пишу так:

в глобальных объявляю:
var
b: TBitMap;
.....
Затем при создании формы:
ImageList1.GetBitmap(3,b);
......
Потом в StatusBar1->OnDrawPanel:
StatusBar1.Canvas.Draw(Rect.Left, Rect.Top, b);

но не прорисовываеться иконка... в чем может быть ошибка?


 
balepa ©   (2006-03-16 13:34) [7]

Occurs when a status panel needs to be redrawn.

Delphi syntax:

property OnDrawPanel: TDrawPanelEvent;

C++ syntax:

__property TDrawPanelEvent OnDrawPanel = {read=FOnDrawPanel, write
=FOnDrawPanel};

Description

The OnDrawPanel event occurs when a status panel needs to be redisplayed—for example, when the user resizes the status bar. OnDrawPanel occurs only if the status panel’s Style property is set to psOwnerDraw.


 
balepa ©   (2006-03-16 13:51) [8]

Наверно еще b.Free надо  делать


 
Fenix ©   (2006-03-16 14:06) [9]

мне надо b освобождать в самом конце программы... Так что ошибка в чемто другом... Пытался обнавлять XtatusBar1.refresh. но тоже ничего не дает :(


 
balepa ©   (2006-03-17 06:07) [10]

Description

The OnDrawPanel event occurs when a status panel needs to be redisplayed—for example, when the user resizes the status bar. OnDrawPanel occurs only if the status panel’s Style property is set to psOwnerDraw.


 
balepa ©   (2006-03-17 06:44) [11]

Не ставь XtatusBar1.refresh в StatusBar1.OnDrawPanel
У тебя хоть одна панель есть то?



Страницы: 1 вся ветка

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.054 c
15-1142060103
Карелин Артем
2006-03-11 09:55
2006.04.02
Рефакторинг проекта. Что посоветуете использовать?


15-1141980677
Бульбаш
2006-03-10 11:51
2006.04.02
Delphi и Web


15-1141722985
superoberon
2006-03-07 12:16
2006.04.02
Shelltreeview


5-1128672402
H010d Freeze
2005-10-07 12:06
2006.04.02
Проблемы с сохранением свойств субкомпонента


15-1142062536
zac
2006-03-11 10:35
2006.04.02
микрофон