Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
(>Rick<)
4 / 3 / 2
Регистрация: 22.11.2010
Сообщений: 46
#1

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

15.01.2011, 22:08. Просмотров 1759. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заблокировать одну кнопку при нажатии на другую (Delphi):

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

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

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

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

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

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

16
virtual[ity]
156 / 136 / 47
Регистрация: 05.06.2010
Сообщений: 609
15.01.2011, 22:13 #2
Delphi
1
Button1.Enabled:=false;
1
(>Rick<)
4 / 3 / 2
Регистрация: 22.11.2010
Сообщений: 46
15.01.2011, 22:19  [ТС] #3
спасиб, а по 2ому поводу?
0
virtual[ity]
156 / 136 / 47
Регистрация: 05.06.2010
Сообщений: 609
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 / 2
Регистрация: 22.11.2010
Сообщений: 46
15.01.2011, 22:25  [ТС] #5
Спасиб!=)
0
Asker
116 / 104 / 11
Регистрация: 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 / 2
Регистрация: 22.11.2010
Сообщений: 46
15.01.2011, 23:30  [ТС] #7
Спасиб тоже пригодиться=) в моем случае даж выгоднеи будет)
0
virtual[ity]
156 / 136 / 47
Регистрация: 05.06.2010
Сообщений: 609
16.01.2011, 12:05 #8
Я просто не очень люблю Sleep из-за того что он форму блокирует во время своего выполнения! А так действительно таймер надо было офф!
0
(>Rick<)
4 / 3 / 2
Регистрация: 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
306 / 302 / 16
Регистрация: 03.03.2010
Сообщений: 1,328
16.01.2011, 12:31 #10
Delphi
1
2
Timer.enable:=true;
timer.enable:=false;
0
(>Rick<)
4 / 3 / 2
Регистрация: 22.11.2010
Сообщений: 46
16.01.2011, 12:32  [ТС] #11
а как его результат в переменную вывести?
0
virtual[ity]
156 / 136 / 47
Регистрация: 05.06.2010
Сообщений: 609
16.01.2011, 12:38 #12
Результат типа: прошло 10 сек! Это?!
0
(>Rick<)
4 / 3 / 2
Регистрация: 22.11.2010
Сообщений: 46
16.01.2011, 12:41  [ТС] #13
ну да...
чтобы Button1 запускал таимер а Button2 останавливал и выводил проиденное время...
0
Asker
116 / 104 / 11
Регистрация: 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 / 2
Регистрация: 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
16.01.2011, 19:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2011, 19:20
Привет! Вот еще темы с ответами:

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

Кнопки. При запуске исчезали, а при нажатии на кнопку появлялись - Delphi
На форме 3 кнопки(bitbtn) и кнопка (button) при запуске project1 нужно что бы 3 кнопки(bitbtn) исчезли, а при нажатии на кнопку button, они...

Ошибка при нажатии на Кнопку - Delphi
У меня такая проблема. Когда запускаю проэкт все работает как нажимаю на кнопку button1 вылетает ошибка &quot;Project Project1.exe raised...

При нажатии на кнопку - ошибка - Delphi
Вот такая ошибка при нажатии на кнопку: is not a valid floating point value а вот и код программы: unit Unit1; interface ...


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

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

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