Добавление CheckBox в диалоговое окно

Тема в разделе "Delphi", создана пользователем WinHack, 24 ноя 2016.

  1. WinHack
    Предположим, что у Вас имеется диалоговое окно, в котором пользователь может отметить CheckBox Не показывать это окно снова.... Когда пользователь закрывает окно, программа может сохранить состояние переключателя (отмечено/не отмечено) в глобальной переменной. В следующий раз, когда должно будет отобразиться диалоговое окно, программа проверит переменную, если отмечено, то просто не отображает это окно.

    checkbox_in_dialog.gif
    Идея реализации проста:

    1. Создаем диалоговое окно, используя CreateMessageDialog
    2. Эта функция возвратит объект формы диалогового окна
    3. В этот объект мы можем добавить CheckBox
    4. Отображаем диалоговое окно, используя ShowModal
    5. Проверяем результат и обрабатываем состояние CheckBox
    6. Уничтожаем созданный CheckBox и диалоговое окно
    Код:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      AMsgDialog: TForm;
      ACheckBox: TCheckBox;
    begin
      AMsgDialog := CreateMessageDialog(
            'Это тестовое сообщение.', mtWarning, [mbYes, mbNo]) ;
      ACheckBox := TCheckBox.Create(AMsgDialog) ;
      with AMsgDialog do
      try
       Caption := 'Заголовок' ;
       Height := 150;
    
       with ACheckBox do
       begin
        Parent := AMsgDialog;
        Caption := 'Не показывать больше...';
        Top := 90;
        Left := 8;
        Width:= 200;
       end;
    
       if (ShowModal = ID_YES) then
       begin
        if ACheckBox.Checked then
          // делаем, если отмечено
        else
          // делаем, если НЕ отмечено
       end;
      finally
       Free;
      end;
    end;
    Все!!!