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

Вниз

ImageList у TaskBar   Найти похожие ветки 

 
Soloton ©   (2009-09-21 08:44) [0]

Здравствуйте!
Задал при помощи MCK пустой ImageList для ToolBar. Программно из ресурсов подгружаю изображения. Если изображение в ресурсах нашлось, сую его в ImageList. На кнопках остаются надписи. Как от них избавится, если изображение есть в ресурсе и оставить, если его нет?


 
Soloton ©   (2009-09-21 09:17) [1]

Пробовал так:
if (SendMessage(Toolbar1.Handle, TB_GETIMAGELIST, 0, 0) <> INVALID_HANDLE_VALUE) then
 if  (Toolbar1.ImageListNormal.Count > 0) then begin
   for i := 0 to ToolBar1.TBButtonCount-1 do begin
     if (ToolBar1.TBButtonImage[i] >= 0) and (Toolbar1.ImageListNormal.Count > ToolBar1.TBButtonImage[i]) then begin
       ToolBar1.TBButtonText[i] := "";
       end;
     end;
   end;

Но почему-то Toolbar1.ImageListNormal = nil
Хотя первое условие соблюдается и у ToolBar1 задан именно ImageListNormal


 
D[u]fa   (2009-09-21 14:29) [2]

Сейчас могу сказать только то что Toolbar1.ImageListNormal. не соотв. SendMessage(Toolbar1.Handle, TB_GETIMAGELIST, 0, 0)

сам на это напоролся давно.. Установил ImageList  для тулбара через мск? в редакторе форм?

Можно попробовать после этого в коде обращаться не к Toolbar1.ImageListNormal.Count а к листу напрямую, либо Toolbar1.ImageListNormal присвоить


 
Soloton ©   (2009-09-21 15:38) [3]

ImageList заполняю через MCK, в редакторе форм.
Правильно ли я понял, что MCK не создаёт код типа Toolbar1.ImageListNormal := ImageList1;?
Если да, то почему ещё никто не исправил, SVN же есть?


 
D[u]fa   (2009-09-22 09:05) [4]

МСК создает код типа SendMessage(..., TB_SETIMAGELIST, .., ...)


 
Soloton ©   (2009-09-23 09:46) [5]

Попробовал разобраться сам.
В файле mckCtrl.pas поменял код
 if ImageListNormal <> nil then
 begin
   SL.Add( Prefix + " " + AName + ".Perform( TB_SETIMAGELIST, 0, Result." +
           ImageListNormal.Name + ".Handle );" );
 end;
 if ImageListDisabled <> nil then
 begin
   SL.Add( Prefix + " " + AName + ".Perform( TB_SETDISABLEDIMAGELIST, 0, Result." +
           ImageListDisabled.Name + ".Handle );" );
 end;
 if ImageListHot <> nil then
 begin
   SL.Add( Prefix + " " + AName + ".Perform( TB_SETHOTIMAGELIST, 0, Result." +
           ImageListHot.Name + ".Handle );" );
 end;

на
 if ImageListNormal <> nil then
 begin
   SL.Add( Prefix + " " + AName + ".Perform( TB_SETIMAGELIST, 0, Result." +
           ImageListNormal.Name + ".Handle );" );
   SL.Add( Prefix + " " + AName + ".ImageListNormal := Result." +
           ImageListNormal.Name + ";" );
 end;
 if ImageListDisabled <> nil then
 begin
   SL.Add( Prefix + " " + AName + ".Perform( TB_SETDISABLEDIMAGELIST, 0, Result." +
           ImageListDisabled.Name + ".Handle );" );
   SL.Add( Prefix + " " + AName + ".ImageListDisabled := Result." +
           ImageListDisabled.Name + ";" );
 end;
 if ImageListHot <> nil then
 begin
   SL.Add( Prefix + " " + AName + ".Perform( TB_SETHOTIMAGELIST, 0, Result." +
           ImageListHot.Name + ".Handle );" );
   SL.Add( Prefix + " " + AName + ".ImageListHot := Result." +
           ImageListHot.Name + ";" );
 end;

Заработало, как и ожидалось, т.е. к Toolbar1.ImageList* теперь можно обращаться непосредственно. Верный ли код? Если да, то может включить его в офиц. исходники.

Offtipic: А как на SVN корректно загрузить? Есть баглист, если да, то где его найти? Кто вообще следит за SVN?
Прошу простить, если задал неправильный вопрос, я в OpenSoruce не силён


 
D[u]fa   (2009-09-23 11:52) [6]

О багах лучше писать сюда. После проверки добавлю на свн



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

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

Наверх




Память: 0.48 MB
Время: 0.005 c
6-1272172077
Владимир Павлович
2010-04-25 09:07
2014.08.31
Папка с куками для конкретного TWebbrowser


3-1300364942
OW
2011-03-17 15:29
2014.08.31
Позиционировать курсор после удаления и переоткрытия DS


2-1380574999
Delphi_Newbie
2013-10-01 01:03
2014.08.31
Устройства ввода


11-1252314935
Dy1
2009-09-07 13:15
2014.08.31
сжатие mdb


2-1380884262
Вася
2013-10-04 14:57
2014.08.31
как освободить память после вызова функции?