![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите!!! [D7, Win95/98]
Viginal © (2002-11-28 15:48:00)Народ помогите!!! у меня две комманды и нужно что бы когда нажимаешь на кнопку иполняется первая комманда а когда нажимаешь второй раз на копку исполняетяс вторая комманда!!! ( вообще то комманд много) но если знаете кто напишите пожайлуста очень надо!!!! буду очень юлагодарен!!!
vaneks (2002-11-28 18:31:00) [1]Вроде в моей писанине ошибок нет :) А если найдешь подскажи. Или компилятор будет ругаться тогда вместе поищим!!!
vaneks (2002-11-28 18:28:00) [2]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;
}{enon (2002-11-28 15:57:00) [3]Не уверен, но по-моему так:
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 :-(}, гарантий не даю.
Song (2002-11-28 15:56:00) [4]Var Flag:Boolean=False;
Procedure TForm1.Button1Click(Sender:TObject);
Begin
IF Flag then dosecond else dofirst;
Flag:=not Flag;
End;
Axis_of_Evil (2002-11-28 15:53:00) [5]Или свойство Tag у Button - Tag - номер следующей команды
[NIKEL] (2002-11-28 15:52:00) [6]ну если тока 2 команды - то достаточно какого-то глобального флага типа boolen Flag.
сделал 1 команду и ставишь флаг в true, при втором нажатии анализируешь Flag если он true то выполняешь 2 команду
а если больше команд, то лучше сделаю переменную типа enum
Song (2002-11-28 15:51:00) [7]Это никак нельзя... Сорри.. :-\