Главная страница
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.022 c
4-28346
Alexander
2002-10-26 11:56
2002.12.09
Как можно узнать путь к папке Program Files на удалённом


1-28040
Cranium
2002-11-30 10:33
2002.12.09
Последовательный запуск программ


1-27930
jackie
2002-11-27 08:28
2002.12.09
динамическая память


3-27851
Анатолий
2002-11-20 15:05
2002.12.09
Преобразование ООМ <<->>РСУБД


3-27886
User_OKA
2002-11-21 15:00
2002.12.09
SQL-запрос в потоке TThread