Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.05.2009, 19:07
Аватар для RusMaXXX
RusMaXXX RusMaXXX вне форума
Начинающий
 
Регистрация: 01.10.2008
Сообщения: 138
Версия Delphi: 7
Репутация: 21
Сообщение Добавление иконки в меню

Всем доброго времени суток..!!!!

Вопрос таков: я хочу добавить в динамически созданное меню иконки, иконки в соответствии от расширения файла (например в меню 4 записи, "000.txt" "465.jpg" "999.doc" "56465.rar")

Код:
procedure TMainForm.CreateMenu(Data: TListBox);
var
  i: integer;
  Item: TMenuItem;
  ID_Icon: TIcon;
begin
  with ListPopupMenu.Items do
  begin
    while Count > 0 do Items[0].Free;
    for i:=0 to Data.Count - 1 do
    begin
      ID_Icon := TIcon.Create;
      ID_Icon.Handle := ExtractAssociatedIcon(Hinstance, PChar (Data.Items.Strings[i]), Index);
      Item := TMenuItem.Create(ListPopupMenu);
      Item.Caption := ExtractFileName(Data.Items.Strings [i]);
      Item.Tag := i;
      Item.OnClick := ActionMenu;
      Add(Item);
    end;
  end;
end;

Пробовал вместе с этим

Код:
Icon_Small.GetIcon(GetIconIndex(ExtractFileExt(list_shortcut.Items.Strings [Index]), 0,TypeFichier),Img.Picture.Icon.Create);
Admin: Учимся правильно оформлять код!!!

Но результата это не принесло....

Как можно сделать чтобы у каждой строки в меню была своя иконка..!???

Последний раз редактировалось Admin, 04.05.2009 в 10:44.
Ответить с цитированием
  #2  
Старый 27.09.2009, 21:42
Аватар для VladOfMonster
VladOfMonster VladOfMonster вне форума
Начинающий
 
Регистрация: 27.09.2009
Сообщения: 113
Репутация: 9
Смущение

Может, поменять строки кода местами, сначала взять расширение, а потом извлекать значок???
Ответить с цитированием
  #3  
Старый 27.09.2009, 21:47
Аватар для RusMaXXX
RusMaXXX RusMaXXX вне форума
Начинающий
 
Регистрация: 01.10.2008
Сообщения: 138
Версия Delphi: 7
Репутация: 21
По умолчанию

после обдумывания вышло так:

Код:
procedure TMainForm.CreateMenu(Data: TListBox);
  procedure AddIcon(Data: TListBox);
  var
    ID_Icon: TIcon;
    i, Index: word;
  begin
    Icon_Small.Clear;
    ID_Icon := TIcon.Create;
    if Data.Items.Count > 0 then
    begin
      for i := 0 to Data.Count - 1 do
      begin
        ID_Icon.Handle := ExtractAssociatedIcon(Hinstance, PChar(Data.Items.Strings[i]), Index);
        Icon_Small.AddIcon(ID_Icon);
      end;
    end;
  end;
var
  i, Index: Word;
  Item: TMenuItem;
  ID_Icon: TIcon;
begin
  if FileExists(GetWinDir +'\'+ ConfigFile) and (Data.Items.Count > 0) then
  begin
    AddIcon(Data);
    with ListPopupMenu.Items do
    begin
      AddIcon(Data);
      while Count > 0 do Items[0].Free;
      if Data.Count > 0 then
      begin
        for i := 0 to Data.Count - 1 do
        begin
          ID_Icon := TIcon.Create;
          ID_Icon.Handle := ExtractAssociatedIcon(Hinstance, PChar(Data.Items.Strings[i]), Index);
          Item := TMenuItem.Create(ListPopupMenu);
          Item.Caption := ExtractFileName(Data.Items.Strings [i]);
          Item.Tag := i;
          Item.ImageIndex := i;
          Item.OnClick := ActionMenu;
          Add(Item);
        end;
      end;
    end;
  end else
  begin
    with ListPopupMenu.Items do
    begin
      while Count > 0 do Items[0].Free;
      Add(NewItem('Нет программ', 0, False, False, nil, 0, 'MenuItem'))
    end;
  end;
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:46.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter