Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
ВнизTMainMenu Найти похожие ветки
← →
Боян Георгиев (2003-08-20 23:52) [0]Здравствуйте мастера!!
Мне надо уловить событие когда в MainMenu показываются subitems.
Тоест когда "итемы" разширяются.
Надеюсь что вы поняли меня. Извините мне если я не пишу корректно по-русский. Я болгарин :)))
← →
Боян Георгиев (2003-08-21 00:04) [1]Это мне нужно по тому что я хочу создать subitems в момент когда их родители показываются.
Наверно я надо прихватить message..
но не знаю его имя :)
← →
Babay (2003-08-21 04:47) [2]Я может чегото непонял, но чем не подходит событие OnClick для пункта меню ? Оно происходит раньше чем subItems показывается его можно и использовать для создания новых SubItems.
← →
gek (2003-08-21 07:15) [3]Можно посмотреть на WM_MENUSELECT и WM_INITMENUPOPUP
← →
Игорь Шевченко (2003-08-21 11:25) [4]Spy++ или Winsight поможет найти нужное сообщение
← →
Игорь Шевченко (2003-08-21 12:30) [5]После внимательного прочтения: А зачем добавлять в Menu Items в момент показа ? Я понял, так что в зависимости от условий содержимое Menu (или SubMenu) меняется. Не проще ли модифицировать Menu по смене условий, так, чтобы к моменту его показа оно уже было таким, как нужно по условиям ?
← →
Игорь Шевченко (2003-08-21 12:38) [6]Боян Георгиев (20.08.03 23:52)
Примерно так:
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus;
type
TfMain = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
N1: TMenuItem;
Open1: TMenuItem;
N2: TMenuItem;
Save1: TMenuItem;
Saveas1: TMenuItem;
N3: TMenuItem;
Exit1: TMenuItem;
Text1: TMenuItem;
Binary1: TMenuItem;
private
procedure WMInitMenuPopup (var Message : TWMInitMenuPopup);
message WM_INITMENUPOPUP;
end;
var
fMain: TfMain;
implementation
{$R *.DFM}
{ TfMain }
procedure TfMain.WMInitMenuPopup(var Message: TWMInitMenuPopup);
var
SubMenu, NewItem : TMenuItem;
begin
SubMenu := MainMenu1.FindItem (Message.MenuPopup, fkHandle);
if Assigned(SubMenu) then begin
NewItem := TMenuItem.Create(Self);
NewItem.Caption := "New item";
SubMenu.Add (NewItem);
end;
end;
end.
и сама форма:
object fMain: TfMain
Left = 214
Top = 133
Width = 544
Height = 375
Caption = "fMain"
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
Menu = MainMenu1
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object MainMenu1: TMainMenu
Left = 48
Top = 16
object File1: TMenuItem
Caption = "&File"
object Open1: TMenuItem
Caption = "&Open"
end
object N2: TMenuItem
Caption = "-"
end
object Save1: TMenuItem
Caption = "&Save"
end
object Saveas1: TMenuItem
Caption = "S&ave as"
object Text1: TMenuItem
Caption = "&Text"
end
object Binary1: TMenuItem
Caption = "&Binary"
end
end
object N3: TMenuItem
Caption = "-"
end
object Exit1: TMenuItem
Caption = "E&xit"
end
end
object N1: TMenuItem
Caption = "&?"
end
end
end
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c