Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2007, 08:36   #1
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
Злость Form1.Hide и Form1.Show...

Не могу разобраться.
На Form1 есть кнопка, которая показывает Form2 и скрывает Form1.
А как написать процедуру для кнопки на Form2, которая бы снова показывала Form1 и скрывала Form2.
я уже чего только не пробовал, возникает ошибка:
cannot change visible in onshow or onhide
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 11.10.2007, 08:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Напиши по клику кнопки на второй форме просто close
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2007, 08:44   #3
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

а вот не пашет не фига
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 11.10.2007, 09:13   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну мона так :

procedure TForm2.Button1Click(Sender: TObject);
begin
hide;
form1.show;
end;


Ну и Форма 1

procedure TForm1.Button1Click(Sender: TObject);
begin
hide;
form2.show;
end;


Или код в студию )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2007, 09:34   #5
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

кажется разобрался...
чисто случайно
дело в том что я использовал в процедуре OnShow для Form1:

Form1.Position:= poDeskTopCenter;
из-за нее и не шло...
странно как-то

Unit1
Код:
 
uses Unit2;
 
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
Form1.Hide;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Position:= poDeskTopCenter;
end;
 
procedure TForm1.FormShow(Sender: TObject);
begin
Form1.Position:= poDeskTopCenter;
end;
end.

Unit2

Код:
 
uses Unit1;
 
{$R *.dfm}
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Close;
end;
 
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.Show;
Form2.Hide;
end;
end.
а с такой штукой как Form1.Position:= poDeskTopCenter возможно решение моей задачи?
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 11.10.2007, 09:39   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А нашо ты делаешь Form1.Close; в обработчике TForm2.FormClose?
Этак он те все закроет вообще.

Кста Position тут непричем
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2007, 09:47   #7
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

это нужно для того чтобы если пользователь вышел из программы, т.е. закрыл Form2, то и Form1 тоже закрылась, ушла
а вот Position я везде убрал и все работает
только в OnCreate оставил
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 11.10.2007, 09:56   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну вот пусть там и остается )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2007, 10:03   #9
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

))))))
спасибо за помощь
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 13.10.2007, 13:33   #10
Илюха
Заблокирован
 
Регистрация: 29.09.2007
Сообщений: 106
По умолчанию

Попробуй еще проще:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.show;
Form1.Close;
end;

А для второй:
procedure TForm2.Button1Click(Sender: TObject);
begin
Form1.show;
Form2.Close;
end;

Благодаря этому о тебя бутет при нажатии на кнопку Form1 закроется и откроется вторая форма. На Form2 будет тоже самое только на оборот
Илюха вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DLL. Ошибка при Form1.Free Roof Общие вопросы Delphi 3 26.07.2008 01:21
Form1.Caption в ini файле AngelOfDeath Общие вопросы Delphi 1 12.04.2008 10:33
две формы Form1 и Form2 Михаил Юрьевич Общие вопросы Delphi 11 02.03.2008 19:38
Form1 был невидим Михаил Юрьевич Общие вопросы Delphi 3 16.01.2008 00:44
Печать Form1 Pinya Общие вопросы Delphi 1 26.12.2007 15:48