Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Создание меню


Автор: Volkogriz 12.7.2013, 19:01
Доброе время суток!
Подскажите пожалуйста что не так.
Код

procedure TForm1.PopupMenuActivate;
var
  newItem: TMenuItem;
  ini: TIniFile;
  n:integer;
begin
PopupMenu1.AutoHotkeys:=maManual;
newItem:=TMenuItem.Create(PopupMenu1);
  ini := TIniFile.Create(extractfilepath(Application.ExeName)+'FilesProgram\ParametersForm.prm');
  begin
       for n := 1 to ini.ReadInteger('[MenuParam]', 'Amount', 0) do
       begin
       newItem.Caption:=ini.ReadString('Menu' + Format('%.3d', [n]), 'MenuName', '');
       newItem.OnClick:=MyMenuClick;
       PopupMenu1.Items.Add(newItem)
  end;
 end;
end;

в ини файле пишу так:
Код

[MenuParam]
Amount=003
[Menu001]
MenuName=Menu1
[Menu002]
MenuName=Menu2
[Menu003]
MenuName=Menu3

Но меню не хочет создаваться(
Что я не то делаю?
Заранее благодарен!
С уважением,
Volkogriz! 

Автор: northener 12.7.2013, 19:31
Цитата(Volkogriz @  12.7.2013,  19:01 Найти цитируемый пост)
Что я не то делаю?

Одного TMenuItem.Create на n пунктов меню явно маловато будет.

Автор: Volkogriz 12.7.2013, 19:42
))Это то до меня давно дошло)
Просто не дагоню как из положения выйти
Код

 for n := 1 to newini.ReadInteger('[MenuParam]', 'Amount', 0) do
       begin
       newItem:=TMenuItem.Create(PopupMenu1);
       newItem.Caption:=newini.ReadString('Menu' + Format('%.3d', [n]), 'MenuName', '');
       newItem.OnClick:=MyMenuClick;
       PopupMenu1.Items.Add(newItem)


Может о чём то не о том мысли, но не выходит нечего(

Автор: Illusion Dolphin 12.7.2013, 19:57
Цитата

for n := 1 to newini.ReadInteger('[MenuParam]', 'Amount', 0) do

А вы попробуйте сделать переменную для конечного значения цикла и увидите что там ноль. Одна из первых ссылок в гугле http://delphi.about.com/od/objectpascalide/a/tinifile.htm говорит о том, что первый параметр должен быть БЕЗ скобок [] а их уже добавит/убавит сам класс в момент (де)сериализации.

Автор: Volkogriz 12.7.2013, 20:09
Я клянусь я их нечаянно поставил так где то часа три назад, просто подумал что отруки ошибка и скопировал, а скобки и не заметил вообще))))
Огромное спасибо!!!
Смотрел очень внимательно и изучал)))))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)