SQLRU.net
Разработка приложений баз данных

Начало » Программирование » Delphi » Стили и иконки в меню Delphi (при использовании стилей перестают работать диманически добавленные иконки в меню)
Стили и иконки в меню Delphi [сообщение #566] Tue, 13 September 2022 14:20 Переход к предыдущему сообщению
RusMikle в настоящее время не в онлайне  RusMikle
Сообщений: 18
Зарегистрирован: June 2022
Junior Member
Всем доброго времени суток,

есть меню которое наполняется ссылками на файлы.
Для красоты пунктам меню присваиваются иконки из дефолтных иконок винды на это расщирение файла.
Всё работало до тех пор пока не включили стили в программе.
Глубоко ещё не копал но возможно кто то уже столкнулся с подобным.
Код присвоения иконки пункту меню такой:
// получение самой иконки по расширению
  function _GetGenericFileIcon( AExtension: string ): TIcon;
  var
    AInfo: TSHFileInfo;
    AIcon: TIcon;
  begin
    if SHGetFileInfo( PChar( AExtension ), FILE_ATTRIBUTE_NORMAL, AInfo, SizeOf( AInfo ),
      SHGFI_SMALLICON or SHGFI_ICON or SHGFI_LARGEICON or SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES ) <> 0 then//
    begin
      AIcon := TIcon.Create;
      try
        AIcon.Transparent := True;
        AIcon.Handle := AInfo.hIcon;
        Result := AIcon;
      except
        AIcon.Free;
        Result := nil;
      end;
    end
    else
      Result := nil;
  end;
// присвоение иконки пункту меню
  procedure _AddFileItem( AFileMenuItem: TMenuItem; AFilePath: string);
  var lIcon: TIcon;
  begin
    AFileMenuItem.Hint := AFilePath;
    lIcon := _GetGenericFileIcon ( ExtractFileExt(AFilePath));
    if Assigned (lIcon) then begin
      try
        AFileMenuItem.Bitmap.Assign(lIcon);
      finally
        lIcon.Free;
      end;
    end;

    AMenuItem.Add(AFileMenuItem);
  end;
  • Вложение: mitIcon.png
    (Размер: 19.93KB, Загружено 894 раза)
  • Вложение: OhneIcon.png
    (Размер: 8.72KB, Загружено 900 раз)
 
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: Найти реализацию метода
Следующая тема: ping
Переход к форуму:
  


Текущее время: Sun Nov 24 10:07:04 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01324 секунд