![]() |
|
|
#1
|
|||
|
|||
|
Как сделать так чтобы при клике на одну и туже кнопку при первом клике выполнялось одно действие, а при повторном другое.
|
|
#2
|
|||
|
|||
|
в программе объявить флаг какой-то. и с каждым вызовом OnClick изменять его значение
|
|
#3
|
|||
|
|||
|
а с примером
![]() |
|
#4
|
|||
|
|||
|
Код:
i:integer;
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
i:=i+1;
case i of
1:ShowMessage ('1 клик');
2:ShowMessage ('2 клика');
3:ShowMessage ('3 клика');
end;
end;
|
|
#5
|
|||
|
|||
|
Код:
var flag:integer; procedure TFrmDataEnter.Button1Click(Sender: TObject); begin if flag=1 then ... if flag=2 then ... Inc(flag); end; |
|
#6
|
|||
|
|||
|
что за процедура procedure TFrmDataEnter.Button1Click(Sender: TObject);
|
|
#7
|
|||
|
|||
|
Вот что мне примерно нужно. Есть кнопка, 2 едита и 1 label. Кнопка имеет надпись Сложение, при нажатии на нее происходит сложение данных в едитах и вывод суммы в Label. Кнопка меняет надпись на Вычитание. Далее по аналогии.
|
|
#8
|
||||
|
||||
|
Все равно используй флаги, т.е. булевы переменые...после клика по кнопке флаг меняется с false на true (к примеру)...затем можно в OnPaint формы прописать типа, если false то кнопка плюс, если true то кнопка минус...и то же в обработчике нажатия если false то процедура плюса, если true то процедура минуса...
|
|
#9
|
||||
|
||||
|
Так устроит?
Код:
Type
TOperation = (opAdd,opSub,opDiv,opMul);
Var
Operation: TOperation;
procedure TForm1.Button1Click(Sender: TObject);
begin
case Operation
of opMul: Label1.Caption := 'Умножение';
opDiv: Label1.Caption := 'Деление';
opSub: Label1.Caption := 'Вычитание';
opAdd: Label1.Caption := 'Сложение';
end;
Inc(Operation);
if Operation > opMul then Operation := opAdd;
end;
|
|
#10
|
||||
|
||||
|
Попроще можно сделать так:
Цитата:
|