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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2014, 02:12   #1
DSBM
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 13
По умолчанию При нажатии кнопка становится невидимой. Delphi.

Привет, форумчане!
Дано задание:
>На форме располагаются компоненты: метка Label, четыре кнопки с номерами от 1 до 4, ScrollBar с разметкой от 1 до 4 и кнопка «Закрыть». При нажатии мышью какой-либо кнопки она становится невидимой, но появляется ранее скрытая кнопка. Номер невидимой кнопки появляется на метке. Синхронно перемещается ползунок линейки ScrollBar. Перемещение ползунка мышью приводит к вышеописанным манипуляциям с кнопками.
Не могу знать как делается вот этот момент:
>При нажатии мышью какой-либо кнопки она становится невидимой.
Помогите решить проблему?
Исходный код ниже:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    ScrollBar1: TScrollBar;
    BitBtn1: TBitBtn;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if (Sender = Button1) then
  Form1.Caption:=Button1.Caption;
  Label1.Caption:='1';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if (Sender = Button2) then
  Form1.Caption:=Button2.Caption;
  Label1.Caption:='2';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if (Sender = Button3) then
  Form1.Caption:=Button3.Caption;
  Label1.Caption:='3';
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
if (Sender = Button4) then
  Form1.Caption:=Button4.Caption;
  Label1.Caption:='4';
end;

end.
Заранее спасибо!
DSBM вне форума Ответить с цитированием
Старый 07.01.2014, 02:42   #2
DSBM
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 13
По умолчанию

Цитата:
Сообщение от DSBM Посмотреть сообщение
>При нажатии мышью какой-либо кнопки она становится невидимой, но появляется ранее скрытая кнопка.
Скрыл кнопку через
Код:
Button1.Visible := False;
, но тут, внезапно, появился вопрос.. Как возвращать ранее скрытую?
DSBM вне форума Ответить с цитированием
Старый 07.01.2014, 02:43   #3
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
Button2.Visible := True;
если кнопок не много, то можно и вручную прописать появление всех остальных... или же пройтись по форме поиском компонентов и искать выключенную/спрятанную кнопку

и еще такой вопрос, если вы конкретно вешаете событие на кнопку, то зачем строки вида:
Код:
if (Sender = Button4) then
у вас они бессмысленны...
пишу код не только за печеньки

Последний раз редактировалось VIK_aka_TOR; 07.01.2014 в 02:46.
VIK_aka_TOR вне форума Ответить с цитированием
Старый 07.01.2014, 02:51   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от DSBM Посмотреть сообщение
.. Как возвращать ранее скрытую?
В смысле делать видимой ранее невидимую?
А вы делайте видимыми все, кроме той, что делается невидимой.

Или еще способ: пишете процедуру, делающую видимыми все кнопки. И при нажатии любой кнопки - сначала вызывается эта процедуры, а потом делается невидимой одна эта кнопка.

Последний раз редактировалось type_Oleg; 07.01.2014 в 02:56.
type_Oleg вне форума Ответить с цитированием
Старый 07.01.2014, 02:59   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Вешаете на все кнопки один обработчик, в котором сначала делаете видимыми все кнопки, а дальше пишете в нем:
Код:
Label1.Caption := (Sender as TButton).Caption;
(Sender as TButton).Visible := false;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать чтоб при нажатии на кнопку в форме к примеру Button1 нажымалась и кнопка на странице WebBrowser ? xpams Работа с сетью в Delphi 0 07.01.2012 23:40
Сделать форму невидимой при запуске welcomeTo C# (си шарп) 4 03.11.2011 22:28
delphi, при щелчке по пустой форме, создается кнопка, при щелчке на кнопку, она становится цветная KaZaaM Помощь студентам 5 15.05.2010 00:48
при произвольном нажатии мышкой, на форме созд кнопка KaZaaM Помощь студентам 4 13.05.2010 15:08
Как сделать форму невидимой при запуске dns-s Общие вопросы Delphi 3 15.08.2009 08:18