Форум: "Начинающим";
Текущий архив: 2009.04.05;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c