![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;