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

Вниз

Динамически создаваемое меню.   Найти похожие ветки 

 
Fenix ©   (2006-03-11 22:52) [0]

Добого времени суток.
У меня пару вопросов по созданию динамического меню.
Во 1 когда я создаю меню 2 уровня т.е. File ->, то все норм, но когда я пытаюсь создать меню 3 уровня например File -> Add ->, то выскакивает ошибка.... почуму это может быть?

И 2 вопрос:
Мне нужно к каждой нажатой кнопке прописать обработчик нажатия на эту кнопку. У меня он однообразен:

procedure TForm1.N12Click(Sender: TObject);
begin
LoadForm(n12.caption);
end;

Но это для статического меню.... как сделать так что бы каждому новому пункту был присвоен этот обработчик?


 
Handle   (2006-03-11 23:22) [1]


> File -> Add ->, то выскакивает ошибка.... почуму это может
> быть?


Где код то?


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


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

var
 Form1: TForm1;
 s:       string;
 NewItem:       TMenuItem;
implementation

{$R *.dfm}

procedure TForm1.popClick(Sender: TObject);
begin
s := (Sender as TMenuItem).Caption;
LoadForm(s);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
NewItem := TMenuItem.Create(MainMenu1);
NewItem.Caption := "NewItem";
NewItem.OnClick := PopClick;
MainMenu1.Items.Insert(0,NewItem);
end;


 
[lamer]barmaglo   (2006-03-11 23:30) [2]

До чего же ленивые юзеры пошли...

FAQ: http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988625051&n=19


 
Fenix ©   (2006-03-12 12:14) [3]

s := (Sender as Tmenuitem).Caption;
В переменной S заноситься еще один ненужный символ &. Как его избежать?


 
Handle   (2006-03-12 12:28) [4]

Object Inspector\AutoHotkeys\maManual

или

MainMenu1.AutoHotkeys:= maManual;


 
Fenix ©   (2006-03-12 12:34) [5]


> Handle   (12.03.06 12:28) [4]
> Object Inspector\AutoHotkeys\maManual
> или MainMenu1.AutoHotkeys:= maManual;

не помогает.....
Это символ типа быстрого выбора по символу...


 
Handle   (2006-03-12 12:58) [6]


> не помогает.....

Почему не помагает то, у меня в переменную s заноситься (Sender as Tmenuitem).Caption без символа & ;


> Это символ типа быстрого выбора по символу...

Это символ который ставиться перед буквой, которая используется для создания Hotkeys(горячие клавиши),  совместно с другими клавишами , например Ctrl + буква перед которой стоит & , нажми Ctrl + Alt + Delete поймёшь что такое Hotkeys.


 
Fenix ©   (2006-03-12 13:23) [7]


> Почему не помагает то, у меня в переменную s заноситься
> (Sender as Tmenuitem).Caption без символа & ;

А у меня заноситься с ним....

for i:=0 to memo2.Lines.Count-1 do begin
TagMenu[i]:=TMenuItem.Create(Mainmenu1);
TagMenu[i].AutoHotkeys:=maManual;
TagMenu[i].OnClick := PopClick;
TagMenu[i].Caption:=memo2.Lines[i];
n12.Add(TagMenu[i]);
end;

это как я создаю пункты меню (в зависимости от количества строк в Memo2)


 
Handle   (2006-03-12 13:35) [8]

MainMenu1.AutoHotkeys:= maManual;
for i:=0 to memo2.Lines.Count-1 do begin
TagMenu[i]:=TMenuItem.Create(Mainmenu1);
MainMenu1.AutoHotkeys:= maManual;
TagMenu[i].OnClick := PopClick;
TagMenu[i].Caption:=memo2.Lines[i];
n12.Add(TagMenu[i]);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
MainMenu1.AutoHotkeys:= maManual;
end;


 
Fenix ©   (2006-03-12 13:49) [9]


> Handle

Спс теперь все работает.



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

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

Наверх




Память: 0.49 MB
Время: 0.042 c
2-1142335852
kami
2006-03-14 14:30
2006.03.26
Отловить нажатие Tab


15-1141390499
NightLord
2006-03-03 15:54
2006.03.26
Глюк или так и должно быть


2-1142006515
Vitalik__
2006-03-10 19:01
2006.03.26
работа с буфером.


15-1141294292
ZMRaven
2006-03-02 13:11
2006.03.26
Драйвера..


2-1140887696
Новочеркасский Волк
2006-02-25 20:14
2006.03.26
Нажата ли клавиша вообше???