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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2011, 16:52   #1
Ko$
Пользователь
 
Регистрация: 21.12.2010
Сообщений: 91
Восклицание Двойное нажатие на Button

Как сделать чтобы при нажатии на Button открывалась вторая форма а при повторном нажатии на эту же кнопку исчезала только чтобы не через Visible а через Show.
Ko$ вне форума Ответить с цитированием
Старый 18.10.2011, 17:00   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Код:
Tform1 =class(TForm)
private
  countclick: boolean;
....
end;[

procedure Tform1.Buttonclick(sender: TObject);
begin
  countclick:=not countclick;
  if countclick then form2.show else form2.hide;  
end;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 18.10.2011 в 17:05.
evg_m вне форума Ответить с цитированием
Старый 19.10.2011, 22:35   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

evg_m респект, как раз сам искал такую реализацию с формами
bulldog5293 вне форума Ответить с цитированием
Старый 20.10.2011, 11:01   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

не самый лучший вариант. Наличие поля(переменной countclick) относящегося по сути к Form2 в коде form1.
можно сделать так (особенно если посмотреть реализацию процедур show Hide в Tcustomform).
Цитата:
чтобы не через Visible а через Show.
Код:
procedure TCustomForm.Hide;
begin
  Visible := False;
end;

procedure TCustomForm.Show;
begin
  Visible := True;
  BringToFront;
end;
Код:
form2.vizsible:=not form2.visible;
if form2.visible then form2.BringToFront;
теперь переключение режимов зависит только от самой form2. можно будет сделать управление из нескольких РАЗНЫХ мест которые и знать не будут друг о друге, только о Form2.
или даже так
Код:
if form2.visible then form.Hide then form2.Show;
теперь все условия соблюдены.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 20.10.2011 в 11:05.
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как привязать компоненту TComboBox к Button, чтобы при нажатии Button, данные из ComboBox вводились в TstringGrid Marta_ Помощь студентам 2 15.10.2011 01:02
Двойное подчёркивание Nerr Компоненты Delphi 3 14.08.2011 00:28
двойное выполнение скрипта AJAX Mortimoro JavaScript, Ajax 3 18.01.2011 00:18
Двойное нажатие клавиши Enter Nezaam Помощь студентам 4 18.08.2010 17:00
Долгое нажатие клавиши в KeyDown как одно нажатие marina15056 Общие вопросы Delphi 7 16.08.2009 00:22