Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.05.2010, 17:48
AlexD AlexD вне форума
Прохожий
 
Регистрация: 10.05.2010
Сообщения: 16
Репутация: 10
По умолчанию Тест-соответствие

Люди, подскажите как сделать простенький тест-соответствие на Дельфи.
Немного опишу каким он должен быть: в форме есть несколько кнопок(чётное число), стоят они в 2 столбика друг на против друга(Понятие, определение), и надо чтобы по нажатии 2 кнопок из разных столбцов, если верно, то они исчезали, если не верно, то внизу формы в строке "Количество ошибок" прибавлялось 1.
Заранее спасибо.
Ответить с цитированием
  #2  
Старый 10.05.2010, 19:15
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Всем кнопкам из одной пары одинаковый Tag. Каждой паре свой Tag. Всем кнопкам присваеваешь одно событие OnClick. Задаешь две глобальные переменные: LastButton: TButton и SecondClick: Boolean;
В событии OnClick пишешь:
Код:
begin
if SecondClick then
begin
  if LastButton.Tag = TButton(Sender).Tag
  then
  begin
    LastButton.Hide;
    TButton(Sender).Hide;
  end
  else
  ShowMessage('Ошибка!!!');
  SecondClick := false;
end
else
begin
  LastButton := TButton(Sender);
  SecondClick := true;
end;
end;
Писалось на коленке. Логика предельно простая. Не забудь еще проверить нюансы типа нажатия на одну и ту же кнопку 2 раза и т.п.

Последний раз редактировалось dr. F.I.N., 10.05.2010 в 19:23.
Ответить с цитированием
  #3  
Старый 10.05.2010, 20:19
AlexD AlexD вне форума
Прохожий
 
Регистрация: 10.05.2010
Сообщения: 16
Репутация: 10
По умолчанию

Цитата:
Сообщение от dr. F.I.N.
Всем кнопкам из одной пары одинаковый Tag. Каждой паре свой Tag. Всем кнопкам присваеваешь одно событие OnClick. Задаешь две глобальные переменные: LastButton: TButton и SecondClick: Boolean;
В событии OnClick пишешь:
Код:
begin
if SecondClick then
begin
  if LastButton.Tag = TButton(Sender).Tag
  then
  begin
    LastButton.Hide;
    TButton(Sender).Hide;
  end
  else
  ShowMessage('Ошибка!!!');
  SecondClick := false;
end
else
begin
  LastButton := TButton(Sender);
  SecondClick := true;
end;
end;
Писалось на коленке. Логика предельно простая. Не забудь еще проверить нюансы типа нажатия на одну и ту же кнопку 2 раза и т.п.
Большое спс!
Ответить с цитированием
  #4  
Старый 12.05.2010, 15:38
AlexD AlexD вне форума
Прохожий
 
Регистрация: 10.05.2010
Сообщения: 16
Репутация: 10
По умолчанию

В дельфи я не особо понимаю, но разбираюсь потихоньку...
Подскажите ещё плз, как мне пристроить в этот код "счётчик ошибок" и блокировку на Двойное нажатие кнопки.

Со счётчиком сколько не пробовал по-разному, так ничего и не вышло: в нужную мне переменную он добавляет не только в случае ошибки, но и в случае правильного выбора...
А с блокировкой двойного нажатия вообще ничего не вышло(
Ответить с цитированием
  #5  
Старый 12.05.2010, 15:45
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Цитата:
Сообщение от AlexD
В дельфи я не особо понимаю, но разбираюсь потихоньку...
Подскажите ещё плз, как мне пристроить в этот код "счётчик ошибок" и блокировку на Двойное нажатие кнопки.

Со счётчиком сколько не пробовал по-разному, так ничего и не вышло: в нужную мне переменную он добавляет не только в случае ошибки, но и в случае правильного выбора...
А с блокировкой двойного нажатия вообще ничего не вышло(

ну прибавляй переменную вместе с сообщение об ошибке:
Код:
begin
if SecondClick then
begin
  if LastButton.Tag = TButton(Sender).Tag
  then
  begin
    LastButton.Hide;
    TButton(Sender).Hide;
  end
  else
  begin
    Inc(ErrCnt{имя переменной с числом ошибок}); //Inc то же самое что и ErrCnt := ErrCnt + 1
    ShowMessage('Ошибка!!!');
  end;
  SecondClick := false;
end
else
begin
  LastButton := TButton(Sender);
  SecondClick := true;
end;
end;

о_О подозрительный ник AlexD
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #6  
Старый 12.05.2010, 15:50
AlexD AlexD вне форума
Прохожий
 
Регистрация: 10.05.2010
Сообщения: 16
Репутация: 10
По умолчанию

Цитата:
Сообщение от AleD
о_О подозрительный ник AlexD

чем это подозрительный?)

з.ы.: вот блин! спалили)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter