![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ImageList у TaskBar [Delphi, KOL, Windows]
Soloton © (2009-09-21 08:44:00)Здравствуйте!
Задал при помощи MCK пустой ImageList для ToolBar. Программно из ресурсов подгружаю изображения. Если изображение в ресурсах нашлось, сую его в ImageList. На кнопках остаются надписи. Как от них избавится, если изображение есть в ресурсе и оставить, если его нет?
D[u]fa (2009-09-23 11:52:00) [1]О багах лучше писать сюда. После проверки добавлю на свн
Soloton (2009-09-23 09:46:00) [2]Попробовал разобраться сам.
В файле 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-22 09:05:00) [3]МСК создает код типа SendMessage(..., TB_SETIMAGELIST, .., ...)
Soloton (2009-09-21 15:38:00) [4]ImageList заполняю через MCK, в редакторе форм.
Правильно ли я понял, что MCK не создаёт код типаToolbar1.ImageListNormal := ImageList1;?
Если да, то почему ещё никто не исправил, SVN же есть?
D[u]fa (2009-09-21 14:29:00) [5]Сейчас могу сказать только то что Toolbar1.ImageListNormal. не соотв. SendMessage(Toolbar1.Handle, TB_GETIMAGELIST, 0, 0)
сам на это напоролся давно.. Установил ImageList для тулбара через мск? в редакторе форм?
Можно попробовать после этого в коде обращаться не к Toolbar1.ImageListNormal.Count а к листу напрямую, либо Toolbar1.ImageListNormal присвоить
Soloton (2009-09-21 09:17:00) [6]Пробовал так:
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