Работает ли frShowHelp для общих диалогов в Delphi? - PullRequest
2 голосов
/ 30 октября 2011

Я пытался добавить кнопку «Справка» в общие диалоговые окна «Открыть», «Сохранить», «Найти» и «Распечатать» в Delphi 2009.

Я подумал, что правильный способ сделать это - установить для свойства frShowHelp значение true в свойстве «Параметры».диалога: enter image description here

Но когда я это сделаю, диалоговое окно появится так же, как и без опции, например: enter image description here

Я ожидаю увидеть кнопку справки нижекнопка Отмена, но ее там нет.

Я занимаюсь разработкой под Windows Vista.Microsoft исключила возможность добавления кнопки «Справка» в свои общие диалоговые окна или я что-то не так делаю?

1 Ответ

3 голосов
/ 30 октября 2011

Диалог поиска

Включите frShowHelp в Options, и появится кнопка справки.Очень трудно понять, почему это не будет работать для вас.

Диалог печати

Включите poHelp в Options и появится кнопка справки.

Диалоги файлов

Теперь они изменились, когда появилась Vista.Новые диалоги не имеют встроенной возможности показа кнопки справки.

Вы всегда можете вернуться к устаревшим диалогам XP, установив Dialogs.UseLatestCommonDialogs в False.Если вы сделаете это, вы можете установить ofShowHelp, HelpContext и т. Д.

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

В Delphi, для Vista и выше, вам нужно было бы использовать TFileOpenDialog или TFileSaveDialog напрямуючем TOpenDialog и TSaveDialog.Вы должны создать объект диалога, а затем запросить интерфейс IFileDialogCustomize из свойства Dialog.Лучшее место для этого - событие DoExecute диалогового элемента управления.

procedure TForm1.FileOpenDialog1Execute(Sender: TObject);
var
  FileDialogCustomize: IFileDialogCustomize;
begin
  FileDialogCustomize := FileOpenDialog1.Dialog as IFileDialogCustomize;
  FileDialogCustomize.AddPushButton(0, 'Help');
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...