Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
(>Rick<)
4 / 3 / 0
Регистрация: 22.11.2010
Сообщений: 46
#1

Заблокировать одну кнопку при нажатии на другую

15.01.2011, 22:08. Просмотров 1769. Ответов 16
Метки нет (Все метки)

Люди подскажите пожалуста можно ли так сделать и если можно то как:
1)Мне нада чтобы вот при нажатии допустим на Button2 у меня блокировался Button1(чтобы он не исчезал, а блакировался). Может есть какоенибудь своиство у Button ?
P.S. под словом блокировался я подрузамеваю то, чтобы на него нельзя было нажать...

2) И еще можно ли как нибудь сделать задержку типо такого:
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
begin
 
Label2.Caption:='Sos';
//Задержка секунд 10
Label2.Caption:='Eee';
 
end;

Зарание спасибо...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2011, 22:08
Ответы с готовыми решениями:

При нажатии на кнопку вывести надпись, при нажатии на другую - сбросить
Создайте программу, которая при нажатии на одну кнопку (объект Button) выводит на этикетку (Label)...

2 процедуры при нажатии на одну кнопку.
Как можно реализовать чтобы при первом нажатии на кнопку форма расширялась (Ширина просто...

При каждом нажатии на одну и ту же кнопку уменьшать число в едит на единицу
Здравствуйте,мне необходимо, чтобы при нажатии на одну и ту же кнопку число в эдит уменьшалось на...

Как в Delphi, при нажатии на кнопку, данные из одной формы перекинуть на другую форму?
При нажатии на кнопку сохранить должна октрыться следующая форма (в моём случаи это Form3), и...

Блокировать одну кнопку по нажатию на другую
Ребята, у меня две кнопки на форме. При нажатии одной кнопки, вторая должна блокироваться от...

16
virtual[ity]
157 / 137 / 64
Регистрация: 05.06.2010
Сообщений: 610
15.01.2011, 22:13 #2
Delphi
1
Button1.Enabled:=false;
1
(>Rick<)
4 / 3 / 0
Регистрация: 22.11.2010
Сообщений: 46
15.01.2011, 22:19  [ТС] #3
спасиб, а по 2ому поводу?
0
virtual[ity]
157 / 137 / 64
Регистрация: 05.06.2010
Сообщений: 610
15.01.2011, 22:20 #4
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button2Click(Sender: TObject);
begin
button1.Enabled:=false;
Label1.Caption:='Sos';
timer1.Enabled:=true;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.Caption:='Г…ГҐГҐ';
end;
Примерно так!
1
(>Rick<)
4 / 3 / 0
Регистрация: 22.11.2010
Сообщений: 46
15.01.2011, 22:25  [ТС] #5
Спасиб!=)
0
Asker
117 / 105 / 29
Регистрация: 18.12.2010
Сообщений: 378
15.01.2011, 23:29 #6
Кстати, чтобы программу лишний раз таймером не грузить, можно просто:
Delphi
1
Sleep( ) // и величина паузы в милисекундах
Добавлено через 2 минуты
т. е для твоей программы будет
Delphi
1
2
3
4
5
6
7
procedure TForm1.Button2Click(Sender: TObject);
begin
button1.Enabled:=false;
Label1.Caption:='Sos';
Sleep(2000);           // без всяких таймеров
label1.Caption:='Еее';
end;


Добавлено через 3 минуты
virtual[ity],
а в твоём коде таймер будет срабатывать всё время и программу грузить
тогда уж таймер выключить надо
1
(>Rick<)
4 / 3 / 0
Регистрация: 22.11.2010
Сообщений: 46
15.01.2011, 23:30  [ТС] #7
Спасиб тоже пригодиться=) в моем случае даж выгоднеи будет)
0
virtual[ity]
157 / 137 / 64
Регистрация: 05.06.2010
Сообщений: 610
16.01.2011, 12:05 #8
Я просто не очень люблю Sleep из-за того что он форму блокирует во время своего выполнения! А так действительно таймер надо было офф!
0
(>Rick<)
4 / 3 / 0
Регистрация: 22.11.2010
Сообщений: 46
16.01.2011, 12:28  [ТС] #9
И еще 1 вопрос правд скореи уже по Ttimer
как сделать так чтобы вот после 1 процедуры он засекал время а во второи уже остановил.
чтобы было чтото похожее:

Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button1Click(Sender: TObject);
begin
// Ttimer засёк время
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
// Ttimer остановился
// Вывел результат в глобальную переменную(time)
end;
0
Romantik_FM
309 / 305 / 80
Регистрация: 03.03.2010
Сообщений: 1,328
16.01.2011, 12:31 #10
Delphi
1
2
Timer.enable:=true;
timer.enable:=false;
0
(>Rick<)
4 / 3 / 0
Регистрация: 22.11.2010
Сообщений: 46
16.01.2011, 12:32  [ТС] #11
а как его результат в переменную вывести?
0
virtual[ity]
157 / 137 / 64
Регистрация: 05.06.2010
Сообщений: 610
16.01.2011, 12:38 #12
Результат типа: прошло 10 сек! Это?!
0
(>Rick<)
4 / 3 / 0
Регистрация: 22.11.2010
Сообщений: 46
16.01.2011, 12:41  [ТС] #13
ну да...
чтобы Button1 запускал таимер а Button2 останавливал и выводил проиденное время...
0
Asker
117 / 105 / 29
Регистрация: 18.12.2010
Сообщений: 378
16.01.2011, 12:48 #14
вставь переменную s в событие onTimer
Delphi
1
2
3
4
5
6
7
...
s := s + Timer1.Interval;
...
 
// и потом выведи её
time := s;
...
1
(>Rick<)
4 / 3 / 0
Регистрация: 22.11.2010
Сообщений: 46
16.01.2011, 19:20  [ТС] #15
спасиб попробую

Добавлено через 6 часов 29 минут
Народ помогите что нетак?
Надо чтобы на Button1 таимер запускался а на Button2 останавливался и выводил проиденное время...
Мб еще в таимере нада чтото прописать?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Timer1: TTimer;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 var t:integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
t:=0;
timer1.Enabled:=true;
t:=t+Timer1.Interval;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
 
begin
Timer1.Enabled:=false;
 
Edit1.Text:=inttostr(t);
end;
 
end.
0
New_Birth
2 / 2 / 1
Регистрация: 11.01.2011
Сообщений: 39
16.01.2011, 19:45 #16
Мне кажется, что не верно, т.к. t изменяется только один раз, при нажатии на button1.
0
virtual[ity]
157 / 137 / 64
Регистрация: 05.06.2010
Сообщений: 610
16.01.2011, 22:33 #17
Можно еще вот так!
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject);
begin
timer1:=gettickcount;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
timer2:=gettickcount;
timer12:=timer2-timer1;
msec:=timer12 mod 1000;
minsec:=((timer12-msec)div 1000);
min:=minsec div 60;
sec:=minsec mod 60;
edit1.Text:=(inttostr(min)+ 'минут(а,ы)' + inttostr(sec) + 'секунд(а,ы)');
end;
Готовый пример можешь скачать и посмотреть как работает!
0
Вложения
Тип файла: rar секундомер.rar (162.5 Кб, 8 просмотров)
16.01.2011, 22:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2011, 22:33

Как сделать, чтобы при первом нажатии на кнопку TButton появлялось одно сообщение, а при втором нажатии - другое?
помогите как сделать в чтобы в кнопке button при первом нажатий вылазило сообщение ShowMessage('Вы...

Memo в delphi / как сделать так чтобы при нажатии на кнопку memo появляется, при повторном нажатии исчезает
как сделать так чтобы при нажатии на кнопку текст с memo появляется, при повторном нажатии исчезает...

Возвращение к предыдущему действию при расчетах при нажатии на кнопку
помогите сделать кнопку, которая будет возращать обратно. Например: мы сделали какое-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru