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

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

TMenuItem? [D7, WinXP]


M@D ©   (2004-11-14 18:48:00) 

Подскажите, пожайлуста, как создать TMenuItem runtimeи для них события?


M@D   (2004-11-14 19:31:00) [1]

Defunct © сенкс :)
(подробно и понятно)


KilkennyCat   (2004-11-14 19:13:00) [2]

мда. куда делись мои отступы?


KilkennyCat   (2004-11-14 19:12:00) [3]

пусть у нас есть менюха Menu,

тогда пишем такое:
var
ньюитем : TMenuItem;
begin
ньюитем := TMenuItem.Create(Self);
ньюитем.Caption := 'Вау!';
ньюитем.OnClick := клик_на_ньюитем_процедура;
Menu.Add(ньюитем);
end;

ну и разумеется не забыть, что клик_на_ньюитем_процедура должна законно существовать...


Defunct   (2004-11-14 19:12:00) [4]

var MenuIdx : Integer = 0;

procedure TForm1.Button3Click(Sender: TObject);
var M : TMenuItem;
   ComponentName : String;
begin

 M := TMenuItem.Create( Self );
 with M do
 Try
   ComponentName := 'menu'+IntToStr( MenuIdx );
   Name := ComponentName;
   Caption := Name;
   OnClick := ____обработчик вида TNotifyEvent____
   Inc(MenuIdx);
   try
     TMenuItem( Self.FindComponent('Имя пункта меню куда вставляем') ).Add( M );
   except
     ShowMessage('некуда вставить');
   end;
   Show
 except
 end;

 if FindComponent( ComponentName )<>nil then
    ShowMessage('Добавлен '+ ComponentName )
end;


KilkennyCat   (2004-11-14 19:08:00) [5]

а я знаю как создать edit. только он никакого отношения к меню не имеет.


M@D   (2004-11-14 18:54:00) [6]

как создать lebel я знаю

procedure TForm1.Create_lbl(Pos: Integer; FName: String);
var i: Integer;
   TypeClass : TControlClass;
   lb_All       : TControl;
begin
 TypeClass := TLabel;
 for i := 0 to 19 do
   begin
     lb_All := TypeClass.Create(Form1);
     if i > 9 then
       lb_All.Top    := 54 + 21*(i-10)
      else
       lb_All.Top    := 54 + 21*i;
     if i > 9 then
       lb_All.Left   := 236 + Pos
      else
       lb_All.Left   := Pos;
     lb_All.Name   := FName + IntToStr(i);
     if i > 9 then
       TLabel(lb_All).Caption := IntToStr(i - 9)
      else
       TLabel(lb_All).Caption := IntToStr(i + 1);
     lb_All.Parent := Form1;
   end;
end;


Наверх

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