Вниз
Скачать: CL | DM;

Обращение к TMenuItem   Найти похожие ветки 

← →
Wood   (2004-11-07 11:48) [0]

Пожалуйста, помогите.
Создаю в run time пункты меню, присваиваю NMenu.name:="nm0". Во время выполнения программы пытаюсь найти (обратиться) к новому пункту меню: if TmenuItem(FindComponent("nm0"))<> nil. А он все равно равен nil.В чем ошибка?
Спасибо.


← →
Palladin ©   (2004-11-07 12:37) [1]

а почему он не должен быть равен nil?


← →
Wood   (2004-11-07 12:46) [2]

>Palladin [1]
Если компонент TMenuItem создан и у него есть имя (name), то почему он nil? Ведь он существует! Вопрос был "в чем ошибка?"


← →
Palladin ©   (2004-11-07 12:49) [3]

где он существует?


← →
Anatoly Podgoretsky ©   (2004-11-07 13:04) [4]

В том контейнере он не существует


← →
Wood   (2004-11-07 13:13) [5]

Вы говорите загадками. Объясните, пожалуйста


← →
Palladin ©   (2004-11-07 13:16) [6]

Я повторяю вопрос. Где он, по твоему мнению, существует?


← →
Wood   (2004-11-07 13:16) [7]

Все же, как правильно сделать?
В моем коде такие строки:
procedure....
var NewItem: TMenuItem;
begin
NewItem:=TMenuItem.create(self);
NewItem.name:="nm0";
NewItem.Caption:="New";
end;
Где и как создан этот пункт меню, что я не могу его найти функцией FindComponent(name)?


← →
Wood   (2004-11-07 13:19) [8]

Забыл дописать к процедуре создания
Open1.add(NewItem); //(добавляется в пункт главного меню)
Затем FindComponent() или Open1.FindComponent(name) - получается NIL


← →
Anatoly Podgoretsky ©   (2004-11-07 13:48) [9]

Какое то загадочное Open1


← →
Wood   (2004-11-07 14:03) [10]

Open1 - пункт главного меню, куда добавляется новый Item. Что тут загадочного. Лучше объясните, что не так?


← →
Wood   (2004-11-07 14:23) [11]

Open1 - идентификатор пункта главного меню


← →
Wood   (2004-11-07 14:52) [12]

Удалено модератором


← →
Defunct ©   (2004-11-07 17:33) [13]

> 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 18:34) [14]

>Defunct [13]
Посмотрю, спасибо



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
14-1099672063
Agent13
2004-11-05 19:27
2004.11.21
Delphi 8, 9 и WinXP Home


4-1097252970
ser_ega
2004-10-08 20:29
2004.11.21
Сканирование!


14-1099215692
Topepo
2004-10-31 12:41
2004.11.21
Помогите в написании программы, плиз!


1-1099663185
Frozzen
2004-11-05 16:59
2004.11.21
Отличие class от object


4-1097650089
MegaVolt
2004-10-13 10:48
2004.11.21
Как освободить память из под файла отображенного в память?




   Наверх