Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Перемещение окна


Автор: MacTep 2.5.2006, 23:09
Использую следующий код, чтобы отлавливать нажатия на кнопку закрытия окна.
Код

type
  TForm6 = class(TForm)
    lb1: TListBox;
    procedure lb1Click(Sender: TObject);
  private
    procedure WMSysCommand(var Msg: TWMSysCommand);
      message WM_SYSCOMMAND;
  public
  end;

var
  Form6: TForm6;

implementation

procedure TForm6.WMSysCommand(var Msg: TWMSysCommand);
begin
  if (Msg.CmdType=SC_Close) then
    if (Application.MessageBox('Вернуться к предыдущему окну?',
                               'Конец ввода',MB_ICONQUESTION+MB_YESNO)<>IDNO) then
      begin
        Form2.Show;
      end;
end;

Но при этом перестает перемещаться окно при помощи мыши. Что я делаю не так? 

Автор: Poseidon 2.5.2006, 23:59
inherited забыл smile

Код

procedure TForm6.WMSysCommand(var Msg: TWMSysCommand);
begin
  if (Msg.CmdType=SC_Close) then
    if (Application.MessageBox('Вернуться к предыдущему окну?',
                               'Конец ввода',MB_ICONQUESTION+MB_YESNO)<>IDNO) then
      begin
        Form2.Show;
      end
    else
  else inherited;
 

Автор: MacTep 3.5.2006, 05:53
Цитата(Poseidon @  2.5.2006,  23:59 Найти цитируемый пост)
else inherited
Нда, именно это я и забыл. Сам понял через несколько минут, как тему запостил. smile 

Автор: Snowy 3.5.2006, 08:30
А зачем такие велосипеды? Есть же OnCloseQuery... 

Автор: Poseidon 3.5.2006, 17:19
Цитата(Snowy @  3.5.2006,  08:30 Найти цитируемый пост)
Есть же OnCloseQuery
 А еще есть OnClose  smile 


Код
procedure TForm6.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:= caNone;
  if (Application.MessageBox('Вернуться к предыдущему окну?',
                             'Конец ввода',
                             MB_ICONQUESTION+MB_YESNO)<>IDNO)
  then Form2.Show;
end;
 

Автор: MacTep 3.5.2006, 21:09
Цитата(Poseidon @  3.5.2006,  17:19 Найти цитируемый пост)
А еще есть OnClose  
Реально! А ведь такое простое решение. Наверное потому и гениально, что просто! smile Сразу и не приметил... smile Действителньо велосипед начал изобретать... Спасибо! 

Автор: Yanis 3.5.2006, 21:16
Цитата(MacTep @  3.5.2006,  21:09 Найти цитируемый пост)
Реально! А ведь такое простое решение. Наверное потому и гениально, что просто!  Сразу и не приметил...  Действителньо велосипед начал изобретать... Спасибо! 

А ведь Snowy тебе это уже предлогал! Но это я так, к слову... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)