Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание програмно пунктов основного меню


Alex_06 ©   (2007-01-16 10:03:00) 

Уважаемые Мастера! Помогите решить проблемку. Есть форма с основным меню. Требуется, вычитывая из Ini-файла, добавлять в меню пункты или подменю, естественно обрабатывая выбор соответствующего пункта, причём добавлять надо не только в конец, а в любой пункт основного меню (создавая подменю). Спасибо.


Elen   (2007-01-16 11:34:00) [1]


> Но вот как добавлять новые пункты к подменю не соображу.

Позволь дать наводку :
Попробуй этот код, может сообразиш чего

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Menus, StdCtrls;

type
 TForm1 = class(TForm)
   MainMenu1: TMainMenu;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure q(sender:Tobject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var      mb,an,it:TMenuItem;
Form1: TForm1;

implementation

{$R *.dfm}

//********* PROCEDURE**********
procedure TForm1.q;
//const
//Var
begin

end;
//********* END PROCEDURE*******

procedure TForm1.Button1Click(Sender: TObject);
var z,x,c:integer;
begin
for z:=0 to 2 do begin
   it:=TMenuItem.Create(MainMenu1);
   it.Caption:=timetostr(time);
   it.OnClick:=q;
   MainMenu1.Items.Add(it);
for x:=0 to 4 do begin
   an:=TMenuItem.Create(it);
   an.Caption:=timetostr(time)+'1';
   an.OnClick:=q;
   it.Add(an);
   for c:=0 to 10 do begin
       mb:=TMenuItem.Create(it);
       mb.Caption:=timetostr(time)+'1';
       mb.OnClick:=q;
        an.Add(mb);
    end;

 end;
end;
end;

end.


Alex_06   (2007-01-16 11:17:00) [2]

Читать из Ini-файла нет проблем. Пытался делать так:

procedure TForm1.Button1Click(Sender: TObject);
var
Menu: TMenuItem;
begin
Menu:=TMenuItem.Create(Self);
Menu.Caption:='Форма';
MainMenu1.Items.Insert(MainMenu1.Items.IndexOf(MainMenu1.Items.Find('Считать')), Menu); //появляется пункт "Форма" перед "Считать" (*1)
MainMenu1.Items[1].Add(Menu); //появляется подпункт "Форма" в меню "Считать"
end;
Но вот как добавлять новые пункты к подменю не соображу. Если в меню есть пункт "Файл", а в нем подпункт "Отправить", куда я програмным путем хочу добавить, например: подпункт "На принтер", подпункт "На рабочий стол", то выражение типа (*1) почему-то не находит "Отправить" (если подставить вместо "Считать"). И как потом определить, что именно данный пункт меню (или подменю) был выбран? Т.е. я хочу иметь возможность добавлять в любой существующий пункт меню подпункты из Ini-файла и действия, которые должны выполняться при соответствующем выборе из того же Ini-файла. Наподобии того, как происходит настройка панели инструментов в Total Commander/


novill   (2007-01-16 10:40:00) [3]

Что у тебя не получается?
Читать данные из ини-файла?
Создавать пункты меню?
Пиши: что делал, какие ошибки появлялись...
)


ЮЮ   (2007-01-16 10:10:00) [4]


>  Помогите решить проблемку.... Спасибо.


Пожалуйста. Но сначало твое решение и твои проблемки.


Наверх

Титульная страница Поиск, карта сайта Написать письмо