Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
9-1178564278
Dovlet
2007-05-07 22:57
2009.04.05
KAk sozdat 3d cube s pomoshyu t.canvas


15-1233414772
axis_of_evil
2009-01-31 18:12
2009.04.05
переключение сетевых настроек


2-1234347557
SingleStranger
2009-02-11 13:19
2009.04.05
Динамический массив структур (record) как свойство класса.


2-1234683748
Roll
2009-02-15 10:42
2009.04.05
Как организовать плейлист


2-1234361101
JVtheGost
2009-02-11 17:05
2009.04.05
ODAC без клиента Oracle





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский