Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.10.27;
Скачать: [xml.tar.bz2];

Вниз

Почему то не вызывается событие OnShow компонента TOpenDialog   Найти похожие ветки 

 
Anthony68   (2013-02-01 09:23) [0]

Здравствуйте! Столкнулся с такой непонятной ситуацией:
Использую Delphi 2007.
На новую, совершено пустую форму кидаю (не мняя никаких параметров по умолчанию) 2 компонента:

1) Диалог TOpenDialog, в его событие OnShow вставляю строку:
 Application.MessageBox("Диалог открылся...", "Сообщение", mb_IconInformation);


2) Кнопку TButton, в её событие OnClick записываю:
 OpenDialog1.Execute;


Компилирую программу. Запускаю под Windows 7 - сообщение, внесённое в метод OnShow - не выдаётся, пробовал использовать отладчик - в OnShow вообще не заходит....
Запускаю этот же EXE-шник под Windows XP (точнее под эмулятором XP, поскольку у меня на компьютере установлена Windows 7) - всё работает!
Сообщение "Диалог открылся..." - появляется на экране...

В чём причина?...


 
O'ShinW ©   (2013-02-01 09:39) [1]

1. На классике, без Аэро, и прочего - работает?
2. options ofOldStyleDialog = ?


 
Rouse_ ©   (2013-02-01 10:46) [2]

Потому что на семерке вместо TOpenDialog вызывается TFileOpenDialog который не перекрывает OnShow.


 
Rouse_ ©   (2013-02-01 10:49) [3]

Хотя вообще странно, судя по коду при перекрытом событии OnShow должен вызываться стандартный диалог.

 if (Win32MajorVersion >= 6) and UseLatestCommonDialogs and (Template = nil) and
    not (Assigned(FOnIncludeItem) or Assigned(FOnClose) or Assigned(FOnShow)) then
 begin
   // This requires Windows Vista or later
   if Func = @GetOpenFileName then
     FileDialogWrapper := TFileOpenDialogWrapper.Create(Self)
   else
     FileDialogWrapper := TFileSaveDialogWrapper.Create(Self);

   try
     Result := FileDialogWrapper.Execute(ParentWnd);
   finally
     FileDialogWrapper.Free;
   end;
   Exit;
 end;


Проверь у себя реализацию функции:
function TOpenDialog.DoExecute(Func: Pointer; ParentWnd: HWND): Bool;


 
O'ShinW ©   (2013-02-01 12:01) [4]


> Использую Delphi 2007.

почему то показалось просто 7.
На 7 под win7 при
> классике, без Аэро, и прочего

- работает.

а вызывается в двух случаях - по мессаджам TWMInitDialog и CDN_INITDONE
до CDN_INITDONE может не дойти, если
(Message.Msg = WM_INITDIALOG) and not (ofOldStyleDialog in Options) then Exit


 
Anthony68   (2013-02-01 14:54) [5]

Rouse_, текст функции DoExecute соответствует тому, что Вы привели.
O"ShinW, options ofOldStyleDialog = False или Truу - это ничего не меняет.
Под Windows 7 (неважно Aero или нет) - OnShow - не вызывается. Тот же EXE файл запущенный под Windows XP - вызывает OnShow.


> а вызывается в двух случаях - по мессаджам TWMInitDialog
> и CDN_INITDONEдо CDN_INITDONE может не дойти, если  (Message.
> Msg = WM_INITDIALOG) and not (ofOldStyleDialog in Options)
> then Exit


Это - не знаю как использовать... Помогите пожалуйста.



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

Форум: "Начинающим";
Текущий архив: 2013.10.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.002 c
15-1368622352
картман
2013-05-15 16:52
2013.10.27
очиститель воздуха


15-1368785148
Дмитрий С
2013-05-17 14:05
2013.10.27
Продление SSL сертификата веб-сервера.


15-1368261134
Jeer
2013-05-11 12:32
2013.10.27
ПО "Буран"


2-1360056754
vlad
2013-02-05 13:32
2013.10.27
TList


15-1368535749
brother
2013-05-14 16:49
2013.10.27
Помогите найти запись концерта





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский