|
Вопрос # 2 092/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Прошу вашей помощи!
Как динамически создать MainMenu и для него MainMenuItem и сабменюшки?
У меня неполучается с Parent когда создаю Item!
 |
Вопрос задал: unl0K (статус: Посетитель)
Вопрос отправлен: 16 ноября 2008, 20:03
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Шичко Игорь
Здравствуйте, AHJIoKeR!
Посмотрите типа такого кода в приложении.
Может подойдет
Приложение: Переключить в обычный режим- procedure TForm1.FormActivate(Sender: TObject);
- var
- main_menu: TMainMenu;
- menu_1, sub_1, sub_2: TMenuItem;
-
- begin
- main_menu:= TMainMenu.Create(self);
- main_menu.Name:= 'Main';
- menu_1:= TMenuItem.Create(self);
- menu_1.Caption:= '222';
- sub_1:= TMenuItem.Create(self);
- sub_1.Caption:= '333';
- sub_2:= TMenuItem.Create(self);
- sub_2.Caption:= '444';
- main_menu.Items.Add(menu_1);
- menu_1.Add(sub_1);
- sub_1.Add(sub_2);
-
- end;
 |
Ответ отправил: Шичко Игорь (статус: 9-ый класс)
Время отправки: 16 ноября 2008, 21:02
Оценка за ответ: 5
Комментарий к оценке: Спасибо все работает, я увидил свою ошибку!
Я другим методом создавал и родителя определял,а из премера видно что этого делать ненужно!
|
Мини-форум вопроса
Всего сообщений: 5; последнее сообщение — 17 ноября 2008, 01:04; участников в обсуждении: 4.
|
min@y™ (статус: Доктор наук), 16 ноября 2008, 20:37 [#1]:
Ну что именно не получается?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
unl0K (статус: Посетитель), 16 ноября 2008, 20:42 [#2]:
уже все неполучается))
вооще немоу создать эти компоненты если можно покажите как это все должно выглядеть!
Относись к людям так, как хотел бы, чтобы они к тебе относились!
|
|
min@y™ (статус: Доктор наук), 16 ноября 2008, 20:54 [#3]:
Завтра приду на работу, и, если проблема будет ещё актуальна, напишу тебе пример. Никогда такого не делал (не было причин), но, думаю, это несложно. Пиши письма мелким почерком.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Nasgool (статус: 2-ой класс), 16 ноября 2008, 22:38 [#4]:
Держи простейший пример. Дальше сам разберешся. 
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls, Buttons, Menus;
type
TItem = class(TMenuItem);
TForm2 = class(TForm)
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
ItemMain, Item, ItemSub: TMenuItem;
implementation
{$R *.dfm}
procedure TForm2.BitBtn1Click(Sender: TObject);
var
I, J, Q: Integer;
begin
Menu := TMainMenu.Create(Self);
ItemMain := TMenuItem.Create(Self);
Item := TMenuItem.Create(Self);
ItemSub := TMenuItem.Create(Self);
ItemMain.Caption := '1';
Item.Caption := '1.1';
ItemSub.Caption := '1.1.1';
Menu.Items.Add(ItemMain);
Menu.Items.Items[0].Add(Item);
Menu.Items.Items[0].Items[0].Add(ItemSub);
Form2.Paint;
end;
end.
Только на onClose (или по своему усмотрению) нужно освободить память:
ItemMain.Free;
Item.Free;
ItemSub.Free;
|
|
Вадим К (статус: Академик), 17 ноября 2008, 01:04 [#5]:
to Nasgool
вот расскажите моему пытливому уму, зачем в верху кода есть строка TItem = class(TMenuItem); Во первых, она точно не нужна, а во вторых, в некоторых случаях она может стать причиной дивных глюков....
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|