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

Вниз

ActionMainMenuBar и Border Icon   Найти похожие ветки 

 
D@nger   (2009-02-19 13:39) [0]

Здравствуйте мастера! Не раз Вы меня выручали, спасибо Вам и этому форуму! :-) Решил заменить в своём MDI приложении MainMenu на ActionMainMenuBar. Наверно мой вопрос не раз уже поднимался, но поиск по форуму ничего не дал. Но ближе к делу... В компоненте глюк с отображением иконок закрытия, сворачивания и разворачивания дочернего окна. Полазив по инету, находил решения на исправление кода компонента, но ссылки вели на уже закрытые сайты, т.е. внятного объяснения так и не нашел. Подскажите что в коде компонента ActionMainMenuBar необходимо исправить или дайте ссылку где это можно посмотреть. Может посоветуете другой компонент по визуализации не уступающий ActionMainMenuBar. Спасибо.


 
D@nger   (2009-02-19 14:36) [1]

Может я недостаточно описал проблему... При создании дочернего окна оно разворачивается, но при этом нет кнопок закрытия, сворачивания... при входе в пункты меню, эти иконки появляются...при закрытии дочернего окна иконки остаются на месте...при нажатии на них вызывается ошибка..так как окно уже уничтожено... необходимо реализовать корректное отображение этих иконок...


 
D@nger   (2009-02-20 06:00) [2]

Неужели никто не сталкивался с этой проблемой! :(


 
D@nger   (2009-02-20 06:23) [3]

Скажите пожалуйста у кого есть Actionbands Update for Delphi 7? Возможно он исправит этот глюк в ActionMainMenuBar.


 
D@nger   (2009-02-20 06:40) [4]

Actionbands Update for Delphi 7 скачал... если кому надо пишите... правда еще не проверял..исправляет ли ошибку в ActionMainMenuBar или нет ... как проверю отпишусь..


 
D@nger   (2009-02-20 09:02) [5]

Обновление ошибку не исправило...хотя в ридми написано что исправления этого компонента есть...Fixed issues with TActionMainMenuBar not functioning correctly in MDI applications.

и что теперь делать... :(


 
D@nger   (2009-02-20 09:03) [6]

может его надо перекомпилировать...хотя в инструкции по установке ничего об этом не сказано...


 
D@nger   (2009-02-20 09:30) [7]

ладно...раз никто ни хочет помогать... закрываю тему...


 
D@nger   (2009-02-20 09:59) [8]

Вот кому интересно... нашел исправление этой ошибки на китайском сайте...
Исправление надо внести в ActnMenus.pas (заменить соответствующую функцию следующей функцией)

function CallWndHook(Code: Integer; WParam: wParam; Msg: PCWPStruct): Longint; stdcall;

procedure UpdateMDIMenuButtons;
var  I: Integer;
Parent: THandle;
ParentForm: TWinControl;
Form: TCustomForm;
begin
Parent := GetParent(Msg.hwnd);
if Parent = 0 then exit;
ParentForm := FindControl(Parent);
for I := 0 to MenuList.Count - 1 do
begin
Form := GetParentForm(MenuList.Menus[I]);
if (Form = ParentForm) and
(MenuList.Menus[I] is TCustomActionMainMenuBar) then
begin
if (Msg.Message = WM_MDIDESTROY) and (Form is TForm) and
(TForm(Form).MDIChildCount = 1) then
with MenuList.Menus[I] as TCustomActionMainMenuBar do
MDIChildRestored
else
with MenuList.Menus[I] as TCustomActionMainMenuBar do
GetActiveMDIChild;
break;
end;
end;
end;

begin
if Code = HC_ACTION then
case Msg.message of
// Use of WM_SIZE is required for any Windows version except Themed XP
WM_MDIGETACTIVE, WM_SIZE,
WM_MDIDESTROY: UpdateMDIMenuButtons;
WM_ACTIVATE:
if ActiveMenu is TCustomActionPopupMenu then
ActiveMenu.CloseMenu;
WM_SETTINGCHANGE:
if Assigned(UpdateActnMenusProc) then
UpdateActnMenusProc;
end;
Result := CallNextHookEx(MenuCallWndHook, Code, WParam, Longint(Msg));
end;

Чтобы исправить закрытие окна при минимизации необходимо исправить следущее:

procedure TInternalMDIAction.ExecuteTarget(Target: TObject);
begin
case MDIAction of
maActivate: SendMessage(GetParent(Form.Handle), WM_MDIACTIVATE, Form.Handle, 0);
maClose: Form.Close;
maRestore: SendMessage(GetParent(Form.Handle), WM_MDIRESTORE, Form.Handle, 0);
// Fixed to minimize the form not close it
maMinimize: Form.WindowState := wsMinimized;
end;
end;


Всем спасибо за посильную помощь!!! Удачи!



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

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

Наверх




Память: 0.48 MB
Время: 0.013 c
2-1234676375
snake-as
2009-02-15 08:39
2009.04.05
Вопрос по БД


15-1231429204
NEWichok
2009-01-08 18:40
2009.04.05
Чем, и стоит ли, заменить Quick Reports?


15-1234034595
blackman
2009-02-07 22:23
2009.04.05
Что-то тормозить стало


2-1234336304
Andrewtitoff
2009-02-11 10:11
2009.04.05
Access Violation


4-1201570363
Legolas
2008-01-29 04:32
2009.04.05
Программа для блокировки