Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.09;
Скачать: CL | DM;

Вниз

Помогите!!!   Найти похожие ветки 

 
Viginal   (2002-11-28 15:48) [0]

Народ помогите!!! у меня две комманды и нужно что бы когда нажимаешь на кнопку иполняется первая комманда а когда нажимаешь второй раз на копку исполняетяс вторая комманда!!! ( вообще то комманд много) но если знаете кто напишите пожайлуста очень надо!!!! буду очень юлагодарен!!!


 
Song ©   (2002-11-28 15:51) [1]

Это никак нельзя... Сорри.. :-\


 
[NIKEL] ©   (2002-11-28 15:52) [2]

ну если тока 2 команды - то достаточно какого-то глобального флага типа boolen Flag.
сделал 1 команду и ставишь флаг в true, при втором нажатии анализируешь Flag если он true то выполняешь 2 команду

а если больше команд, то лучше сделаю переменную типа enum


 
Axis_of_Evil ©   (2002-11-28 15:53) [3]

Или свойство Tag у Button - Tag - номер следующей команды


 
Song ©   (2002-11-28 15:56) [4]

Var Flag:Boolean=False;


Procedure TForm1.Button1Click(Sender:TObject);
Begin
IF Flag then dosecond else dofirst;
Flag:=not Flag;
End;


 
}{enon ©   (2002-11-28 15:57) [5]

Не уверен, но по-моему так:

procedure TFormmain.KnopkaOnClick(...);
begin
Knopka.OnClick:=p1;
end;

procedure p1;
begin
Edit1.Text:="Выполнена первая команда";
Knopka.OnClick:=p2;
end;

procedure p2;
begin
Edit1.Text:="Выполнена вторая команда";
Knopka.OnClick:=p1;
end;

P.S. Сам не пробовал {сейчас у меня нет Delphi :-( }, гарантий не даю.


 
vaneks   (2002-11-28 18:28) [6]

Axis_of_Evil прав! Его вариант самый лучший :) вот пример:

procedure TForm1.Button1.Click (Sender: TObject);
begin
case Button1.Tag of
0:
begin
Command0;
Inc(Button1.Tag); //Если несработает пиши Button1.Tag := Button1.Tag + 1;
end;
1:
begin
Command1;
Inc(Button1.Tag); //Если несработает пиши Button1.Tag := Button1.Tag + 1;
end;
2:
begin
Command2;
Inc(Button1.Tag); //Если несработает пиши Button1.Tag := Button1.Tag + 1;
end;

...

n:
begin
CommandN;
Inc(Button1.Tag); //Если несработает пиши Button1.Tag := Button1.Tag + 1;
end;
else
MessageDlg("Неизвестная команда!!!", mtError, [mbOK], 0);
end;


Или более универсальный вариант:

procedure TForm1.Button1.Click (Sender: TObject);
begin
With Sender as TButton do
begin
case Tag of
0:
begin
Command0;
Inc(Tag); //Если несработает пиши Tag := Tag + 1;
end;
1:
begin
Command1;
Inc(Tag); //Если несработает пиши .Tag := Tag + 1;
end;
2:
begin
Command2;
Inc(Tag); //Если несработает пиши Tag := Tag + 1;
end;

...

n:
begin
CommandN;
Inc(.Tag); //Если несработает пиши Tag := Tag + 1;
end;
else
MessageDlg("Неизвестная команда!!!", mtError, [mbOK], 0);
end;
end;


 
vaneks   (2002-11-28 18:31) [7]

Вроде в моей писанине ошибок нет :) А если найдешь подскажи. Или компилятор будет ругаться тогда вместе поищим!!!



Страницы: 1 вся ветка

Текущий архив: 2002.12.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
6-28163
Vagrant
2002-10-10 04:36
2002.12.09
Вопрос по NetMessageBufferSend


1-27989
Peroon
2002-11-27 01:55
2002.12.09
delete(var S:String; Index: Integer; Count: Integer);


14-28285
SPeller
2002-11-19 09:59
2002.12.09
Фильмы с дисками по 50 рублей


1-27995
ec
2002-11-29 15:00
2002.12.09
TDrawGrid


6-28171
Jel
2002-10-10 14:31
2002.12.09
Мониторинг RAS соединений