![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обращение к TMenuItem [D7, WinXP]
Wood © (2004-11-07 11:48:00)Пожалуйста, помогите.
Создаю в run time пункты меню, присваиваю NMenu.name:='nm0'. Во время выполнения программы пытаюсь найти (обратиться) к новому пункту меню: if TmenuItem(FindComponent('nm0'))<> nil. А он все равно равен nil.В чем ошибка?
Спасибо.
Wood (2004-11-07 18:34:00) [1]>Defunct [13]
Посмотрю, спасибо
Defunct (2004-11-07 17:33:00) [2]> Wood
вот вам примерчик, изучайте:
procedure TForm1.Button1Click(Sender: TObject);
var M : TMenuItem;
ComponentName : String;
begin
M := TMenuItem.Create( Self );
with M do
Try
ComponentName := 'menu'+IntToStr( MenuIdx );
Name := ComponentName;
Caption := Name;
Inc(MenuIdx);
try
TMenuItem( Self.FindComponent('mFile') ).Add( M );
except
ShowMessage('there is no component with mFile name');
end;
Show
except
end;
if FindComponent( ComponentName )<>nil then
ShowMessage('there is '+ ComponentName )
end;
Wood (2004-11-07 14:52:00) [3]Удалено модератором
Wood (2004-11-07 14:23:00) [4]Open1 - идентификатор пункта главного меню
Wood (2004-11-07 14:03:00) [5]Open1 - пункт главного меню, куда добавляется новый Item. Что тут загадочного. Лучше объясните, что не так?
Anatoly Podgoretsky (2004-11-07 13:48:00) [6]Какое то загадочное Open1
Wood (2004-11-07 13:19:00) [7]Забыл дописать к процедуре создания
Open1.add(NewItem); //(добавляется в пункт главного меню)
Затем FindComponent() или Open1.FindComponent(name) - получается NIL
Palladin (2004-11-07 13:16:00) [8]Я повторяю вопрос. Где он, по твоему мнению, существует?
Wood (2004-11-07 13:16:00) [9]Все же, как правильно сделать?
В моем коде такие строки:
procedure....
var NewItem: TMenuItem;
begin
NewItem:=TMenuItem.create(self);
NewItem.name:='nm0';
NewItem.Caption:='New';
end;
Где и как создан этот пункт меню, что я не могу его найти функцией FindComponent(name)?
Wood (2004-11-07 13:13:00) [10]Вы говорите загадками. Объясните, пожалуйста
Anatoly Podgoretsky (2004-11-07 13:04:00) [11]В том контейнере он не существует
Palladin (2004-11-07 12:49:00) [12]где он существует?
Wood (2004-11-07 12:46:00) [13]>Palladin [1]
Если компонент TMenuItem создан и у него есть имя (name), то почему он nil? Ведь он существует! Вопрос был "в чем ошибка?"
Palladin (2004-11-07 12:37:00) [14]а почему он не должен быть равен nil?