![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не отрисовывается Bitmap в ToolBar [Delphi, Windows]
Osmiy © (2009-07-15 04:51:00)Использую чистый KOL. Создаю ToolBar и Bitmap. В Bitmap загружаю изображение либо из файла, либо из ресурса. Добавлю к ToolBar либо на стадии его создания, либо после добавляю. В любом случае на кнопках изображается черные квадратики, даже если, что-то нарисовать вручную на Bitmap. Размер квадртиков совпадает с высотой загружаемого изображения. Само изображение в Bitmap присутствует, т.к. отображаеться на других контролах.
KOL 2.88, Turbo Delphi Explorer. В чем может быть дело?
Osmiy (2009-07-15 22:11:00) [1]Теперь получилось. Большое спасибо, Владимир Кладов.
Vladimir Kladov (2009-07-15 21:51:00) [2]
MTImage.PixelFormat := pf4bit;
сразу после загрузки. Выглядеть может некрасиво. Лучше держать в ресурсе, и использовать LoadMappedBitmapEx, как это делается в MCK. Но у вас же "продвинутый" Delphi. Все равно, на вашем месте, скачайте урезанный Delphi7, всего 40 Мб, поставьте MCK, и смотрите что он делает. Иногда помогает.
Osmiy (2009-07-15 18:59:00) [3]Код пока еще не секретный. Вот он:
Program GPRES;
uses
KOL;
const
MMS:array [0..3] of pchar=(
'File',
'Property',
'View',
'Help');
MTS: array [0..5] of pchar=(
' ',
' ',
' ',
' ',
' ',
' ');
TCS: array [0..2] of pchar=(
'1',
'2',
'3');
var
MForm:PControl;
MMenu:PMenu;
MTool:PControl;
MTImage:PBitmap;
Splitter:PControl;
Panel:PControl;
TabCalc:PControl;
begin
Applet:=NewApplet('Prog');
MForm:=NewForm(Applet,'Program');
MForm.StatusText[3]:='stat';
MMenu:=NewMenu(MForm,0,MMS,nil);
MTImage:=NewBitmap(0,0);
MTImage.LoadFromFile('open.bmp');
MTool:=NewToolBar(MForm,caTop,[tboTextBottom,tboNoDivider],MTImage.Handle,MTS,[0 ]);
MTool.Align:=caTop;
TabCalc:=NewTabControl(MForm,TCS,[tcoMultiline],nil,0);
TabCalc.Align:=caRight;
TabCalc.Width:=200;
Splitter:=NewSplitter(MForm,100,100).SetAlign(caRight);
Splitter.SecondControl:=TabCalc;
Splitter.HasBorder:=true;
Splitter.Flat:=true;
Panel:=NewPanel(MForm,esRaised);
Panel.Align:=caClient;
Run(Applet);
end.
mdw (2009-07-15 18:55:00) [4]
> Vladimir Kladov
+1
Vladimir Kladov (2009-07-15 17:30:00) [5]код секретный?