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

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

Не отрисовывается 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]

код секретный?


Наверх

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