delphi 7 Предметы недвижимости - PullRequest
4 голосов
/ 12 августа 2010

Я пришел из Java-фона, где у нас есть структуры данных с интерфейсами, которые, если его коллекция поддерживает определенное поведение, а набор имеет другое.

, программируя в Delphi, я столкнулся с кирпичной стеной, когда спрашивал о поведении предметов, это очень странно. например, этот код не компилируется

      menuOfSomeKind.Items.Add(t);

где какое-то меню - это компонент, имеющий элементы, содержащие другие подкомпоненты, которые являются пунктами меню.

если я хочу динамически редактировать это, то есть, используя поведение добавления, оно говорит: «[« ожидается, но ».» найдено.

Не могли бы вы уточнить это?

Ответы [ 2 ]

2 голосов
/ 12 августа 2010

Возможно menuOfSomeKind это TMenuItem и не TMainMenu

Если вы добавляете элемент в TMenuItem, используйте MenuItem.Add(t);

Если вы добавляете элемент в TMainMenu, используйте MainMenu.Items.Add(t);

0 голосов
/ 12 августа 2010

Есть разница между TMainMenu / TMenu и TMenuItem.

var
  mainMenu: TMainMenu;
  menu: TMenu;
  subMenu: TMenuItem;
begin
  //***** This creates a new root menu
  mainMenu.Items.Add(TMenuItem.Create);

  //***** Essentially the same as mainMenu
  menu.Items.Add(TMenuItem.Create)

  //***** This adds a new submenu to an existing menu
  subMenu.Add(TMenuItem.Create);

  //***** This adds a new submenu to the first submenu of an existing menu
  subMenu.Items[0].Add(TMenuItem.Create);
end;

Обратите внимание, что представленный код компилируется, но при запуске выдает исключения повсюду. Для начала, ни одна из локальных переменных не назначена.

...