Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.01.2011, 23:20
XaKeR282 XaKeR282 вне форума
Новичок
 
Регистрация: 21.12.2010
Сообщения: 51
Репутация: -284
По умолчанию Проблема с закрытием окна

Помогите мне с этой задачей:
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form2.showmodal;
end;
Это для Form1. Т.е когда закрываю её должно вызваться Form2
http://www.delphisources.ru/forum/at...d=129615910 9
Когда нажимаю на кнопку "Да" то форма закрывается текст сохраняется.
А пр нажатие на нопку "Нет" тогда хочу чтоб закрыласьтолько вторая форма, а первая не закрывалась, а код я написал вот так:
Код:
var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Memo1.Lines.SaveToFile('1.txt');
Form2.Close;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
Form2.Close;
end;
А при таком коде он мне обаокна закрывает.

За ранее блогодаен
Изображения
Тип файла: jpg 1.jpg (25.3 Кбайт, 16 просмотров)
Ответить с цитированием
  #2  
Старый 27.01.2011, 23:35
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Закрывает оба окна в том случае, если ваша 2 форма - главная. Соответственно при ее закрытии закроется вся программа.
Выходов несколько: или сделайте главной другую форму, или, например, просто не закрывайте главную форму, а прячьте ее (не Form2.Close, а Form2.Hide).
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 27.01.2011, 23:39
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

[off]
Опять хакиры наступают.
XaKeR282, не твой ли ДР 24 Октября 1998?

Совет - смени ник на нормальный.

[/off]
Ответить с цитированием
  #4  
Старый 28.01.2011, 10:45
XaKeR282 XaKeR282 вне форума
Новичок
 
Регистрация: 21.12.2010
Сообщения: 51
Репутация: -284
По умолчанию

Главно окно у меня Form1, а помоему он закрывает оба окна потомучто Form2 вызывается при закритие Form1, а как правильно сделать, не знаю((
Ответить с цитированием
  #5  
Старый 28.01.2011, 11:00
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

который раз замечаю бессмысленные посты конрда и не ясно зачем.

Последний раз редактировалось ALexandr555, 28.01.2011 в 11:03.
Ответить с цитированием
  #6  
Старый 28.01.2011, 12:08
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Например можно сделать так:
Код:
//FORM1
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  form2.Tag:=0;
  form2.showmodal;
  if form2.Tag=3 then 
    Action:=caNone
end;

//Form2
procedure TForm2.Button1Click(Sender: TObject);
begin
  close;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  form2.Tag:=3;
    close;
end;
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #7  
Старый 28.01.2011, 13:37
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от ALexandr555
который раз замечаю бессмысленные посты конрда и не ясно зачем.

Начни з 20-й страниц и до 1-й:
http://www.delphisources.ru/forum/se...&pp=25&page=20
Ответить с цитированием
  #8  
Старый 28.01.2011, 13:44
Аватар для ryderx34
ryderx34 ryderx34 вне форума
Активный
 
Регистрация: 22.01.2010
Сообщения: 211
Версия Delphi: 7, 2010
Репутация: 1349
По умолчанию

Делай не в OnClose а в OnCloseQuery, изменяя переменную CanClose (она определяет закрывать окно или нет).И если ты вызываешь вторую форму как модальную, то просто проверяй ModalResult. У кнопки "Да" установи свойство ModalResult в mrOk, у кнопки "Нет" - mrCancel и в OnCloseQuery впиши этот код:
Код:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := Form2.ShowModal = mrOk;
end;
Ответить с цитированием
  #9  
Старый 30.01.2011, 12:31
XaKeR282 XaKeR282 вне форума
Новичок
 
Регистрация: 21.12.2010
Сообщения: 51
Репутация: -284
По умолчанию

Цитата:
Сообщение от Black Raider
Например можно сделать так:
Код:
//FORM1
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  form2.Tag:=0;
  form2.showmodal;
  if form2.Tag=3 then 
    Action:=caNone
end;

//Form2
procedure TForm2.Button1Click(Sender: TObject);
begin
  close;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  form2.Tag:=3;
    close;
end;

Попробовал этот код, 100 ощибок!!!
Ответить с цитированием
  #10  
Старый 30.01.2011, 13:11
XaKeR282 XaKeR282 вне форума
Новичок
 
Регистрация: 21.12.2010
Сообщения: 51
Репутация: -284
Радость

Цитата:
Сообщение от ryderx34
Делай не в OnClose а в OnCloseQuery, изменяя переменную CanClose (она определяет закрывать окно или нет).И если ты вызываешь вторую форму как модальную, то просто проверяй ModalResult. У кнопки "Да" установи свойство ModalResult в mrOk, у кнопки "Нет" - mrCancel и в OnCloseQuery впиши этот код:
Код:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := Form2.ShowModal = mrOk;
end;

Спасибо, получилось))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:41.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025