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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
3-10606
Malyatko
2003-08-13 17:07
2003.09.04
Подключение к базе данных.


9-10538
AndrewK
2002-09-26 12:47
2003.09.04
Как проверить коллизии?


11-10658
Ал
2002-12-28 23:32
2003.09.04
ShowModal у формы с StayOnTop:=True - что-то глючит.


14-10949
ehri
2003-08-16 12:45
2003.09.04
Gif Animated


14-10879
Скорбящий
2003-08-14 17:37
2003.09.04
Развёрнутый nslookup для айпишника