Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

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

 
Alex_06   (2007-01-16 10:03) [0]

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


 
ЮЮ ©   (2007-01-16 10:10) [1]


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


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


 
novill ©   (2007-01-16 10:40) [2]

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


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

Читать из 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/


 
Elen ©   (2007-01-16 11:34) [4]


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

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

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.



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

Текущий архив: 2007.02.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
4-1158563133
Anatolii
2006-09-18 11:05
2007.02.04
Получить список открытых в системе файлов (WinNT)


1-1164713705
Krants
2006-11-28 14:35
2007.02.04
Обьединить события


2-1169295348
redlord
2007-01-20 15:15
2007.02.04
получение почты средствами компонентов indi


2-1169048500
azl
2007-01-17 18:41
2007.02.04
Ctrl + Enter и Memo


15-1168961818
Megabyte
2007-01-16 18:36
2007.02.04
бесплатные компоненты для архивирования