Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
3-27796
Евгений__
2002-11-20 09:28
2002.12.09
В программе не видно Interbase-е исключение


6-28191
начинающий програмер
2002-10-10 19:37
2002.12.09
Удалёное администрирование


3-27901
nick-from
2002-11-20 23:38
2002.12.09
Добавление данных через ХП


3-27894
RDA
2002-11-21 18:25
2002.12.09
Ложный поиск


1-27910
macrohead
2002-11-27 15:07
2002.12.09
base64





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский