|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.05.2009, 13:18 | #1 |
Пользователь
Регистрация: 17.05.2009
Сообщений: 30
|
Проверка на нажатие кнопки во время работы программы
Люди помогите!! Мне срочно надо написать прогу!! У меня такая ситуация: Мне надо сделать условие на обработчик событий!! То есть если кнопка нажата то делать то то!! Короче If <нажатие кнопки> then k:=1; как правильно написать это <нажатие кнопки>!!
|
17.05.2009, 13:24 | #2 | |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
Цитата:
Код:
Всегда рад помочь!
|
|
17.05.2009, 13:47 | #3 |
Пользователь
Регистрация: 17.05.2009
Сообщений: 30
|
Ты не понял!! Это я знаю!! А мне надо именно как правильно описать это нажатие кнопки!! Просто у меня 4 кнопки и на каждой по циклу будут идти правильные ответы, мне надо что б при нажатиии на правильный ответ цикл шёл дальше, и надо вписать в if это нажатие кнопки, что бы не писать все правильные ответы на одной кнопке, так будет не интересно!! Подскажи как описать это нажатие!! У мя просто игра первый миллион, и надо на завтра сдать!! А я завис в этой фигне!! Или просто подскажи как по другому цикл оформить!! Ну короче что б менялись на лэйбеле вопросы а на батоне ответы и при нажатии на правильный ответ цикл шёл дальше!! Подскажи плизз!!! А то я в полной *опе!!!
|
17.05.2009, 14:01 | #4 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
Проверка на нажатие кнопки:
Код:
Всегда рад помочь!
|
17.05.2009, 14:05 | #5 |
Пользователь
Регистрация: 17.05.2009
Сообщений: 30
|
Terran, а у тя есть аська или контакт?? А то я что то не сильно понял!!
|
17.05.2009, 14:15 | #6 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
Нету. Я выше привёл пример, как проверить нажата ли кнопка. Правда сложно сориентироваться, как у вас там работает прога... Вы тот код, который в таймере поставьте в свой цикл. И получится при нажатии на кнопку будет проверяться в вашем цикле нажата ли кнопка.
Всегда рад помочь!
|
17.05.2009, 14:23 | #7 |
Пользователь
Регистрация: 17.05.2009
Сообщений: 30
|
unit milion;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, Menus, StdCtrls; type TForm1 = class(TForm) Image1: TImage; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; Edit1: TEdit; Label1: TLabel; Button1: TButton; Label2: TLabel; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure Button1Click(Sender: TObject); procedure N3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; k:boolean; button2,button3,button4,button5:Tbu tton; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin N1.Visible:=TRUE; N2.Visible:=TRUE; EDIT1.Visible:=FALSE; LABEL1.Visible:=FALSE; BUTTON1.Visible:=FALSE; end; procedure TForm1.N3Click(Sender: TObject); var n:integer; begin randomize; button2.visible:=true; button3.visible:=true; button5.visible:=true;button4.visib le:=true; label2.Visible:=true; k:=true; while k=true do begin n:=random(3); case n of 1:begin label2.caption:='Ñêîëüêî äíåé â àïðåëå?'; button2.Caption:='29'; button3.Caption:='28'; button4.Caption:='30'; button5.Caption:='31'; end; 2:begin label2.caption:='Êàêàÿ 24 áóêâà â àëôàâèòå?'; button2.Caption:='Ê'; button3.Caption:='¨'; button4.Caption:='×'; button5.Caption:='Ø'; end; 3:begin label2.caption:='×òî êðè÷àë Àðõèìåä, ñèäÿ â âàííîé?'; button2.Caption:='À. Åâðåéêà '; button3.Caption:='Á. Èíäåéêà'; button4.Caption:='Â. Èäåéêà '; button5.Caption:='Ã. Ýâðèêà!'; end; end; end; end; end. Смотри вот тело программы!! Исправь его пожалуйста!! Оно почему то при запуске виснет!!! И помоги как в этом цикле сделать так что б оно различало правильные ответы!! Не обращай внимания на иероглифы, там должны быть вопросы и варианты ответов!!! |
17.05.2009, 14:26 | #8 |
Участник клуба
Регистрация: 11.01.2009
Сообщений: 1,917
|
Виснет потому что в цикле while переменная k не изменяет своего значения, постоянно true.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
|
17.05.2009, 14:42 | #9 |
Пользователь
Регистрация: 17.05.2009
Сообщений: 30
|
unit milion;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, Menus, StdCtrls; type TForm1 = class(TForm) Image1: TImage; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; Edit1: TEdit; Label1: TLabel; Button1: TButton; Label2: TLabel; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure Button1Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; k:boolean; b2,b3,b4,b5:integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin N1.Visible:=TRUE; N2.Visible:=TRUE; EDIT1.Visible:=FALSE; LABEL1.Visible:=FALSE; BUTTON1.Visible:=FALSE; end; procedure TForm1.N3Click(Sender: TObject); var n:integer; begin randomize; button2.visible:=true; button3.visible:=true; button5.visible:=true;button4.visib le:=true; label2.Visible:=true; while k=true do begin n:=random(3); case n of 1:begin label2.caption:='Сколько дней в апреле'; button2.Caption:='29'; button3.Caption:='28'; button4.Caption:='30'; button5.Caption:='31'; if b4=1 then k:=true; end; 2:begin label2.caption:='Какая 24 буква в алфавите'; button2.Caption:='К'; button3.Caption:='Ё'; button4.Caption:='Ч'; button5.Caption:='Ш'; if b5=1 then k:=true; end; 3:begin label2.caption:='Что кричал архимед сидя в ванной'; button2.Caption:='А. Еврейка '; button3.Caption:='Б. Индейка'; button4.Caption:='В. Идейка '; button5.Caption:='Г. Эврика!'; if b5=1 then k:=true; end; end; end; end; procedure TForm1.Button2Click(Sender: TObject); begin b2:=1; end; procedure TForm1.Button5Click(Sender: TObject); begin b5:=1; end; procedure TForm1.Button3Click(Sender: TObject); begin b3:=1; end; procedure TForm1.Button4Click(Sender: TObject); begin b4:=1; end; end. а так поячему виснет?? |
17.05.2009, 15:06 | #10 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
После появления вопроса присвойте переменной K:=False; И лучше делайте проверку в самих кнопках. К примеру:
Код:
Всегда рад помочь!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод вычисляемой функции во время работы программы | DAV88 | Помощь студентам | 4 | 25.04.2009 15:41 |
Как узнать время работы программы в паскаль? | bullvinkle | Помощь студентам | 2 | 26.12.2008 11:20 |
Создание обьектов во время работы программы | Rusl92 | Общие вопросы Delphi | 4 | 11.08.2008 17:03 |
Создание компонентов во время работы программы | Rusl92 | Компоненты Delphi | 23 | 05.04.2008 08:38 |
Проверка работы программы... | DimkinStd | Общие вопросы Delphi | 3 | 26.12.2006 13:24 |