Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2016, 10:59   #1
soundsound
 
Регистрация: 16.09.2016
Сообщений: 6
По умолчанию Нажатие на кнопку при определенном условии

Здравствуйте,
пытаюсь написать программу по географии и возникла проблема с самым главным.
Пользователю дается карта, в лейбл должен выводиться вопрос (например, укажите австралию), далее пользователь нажимает на австралию, если верно - то континент меняет цвет с белого на зеленый. Проблема в том, что не понимаю как это реализовать, карту на континенты разбил и расположил их на форме.
Помогите пожалуйста хотя бы начать.
Заранее спасибо.
soundsound вне форума Ответить с цитированием
Старый 08.10.2016, 12:43   #2
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

http://www.delphisources.ru/pages/so...detection.html
http://www.ciuly.com/delphi/user-int...n-image-shape/
Filka вне форума Ответить с цитированием
Старый 08.10.2016, 12:45   #3
one_man_show
Пользователь
 
Аватар для one_man_show
 
Регистрация: 07.10.2016
Сообщений: 23
По умолчанию

Для каждого выводимого в лейбл вопроса, например, в массиве храним индекс, соответствующий континенту. При нажатии на картинку континента, сравниваем с требуемым индексом. При совпадении подсвечиваем континент.
С уважением,
Ваган Саруханов
one_man_show вне форума Ответить с цитированием
Старый 08.10.2016, 15:52   #4
soundsound
 
Регистрация: 16.09.2016
Сообщений: 6
По умолчанию

Цитата:
Сообщение от one_man_show Посмотреть сообщение
Для каждого выводимого в лейбл вопроса, например, в массиве храним индекс, соответствующий континенту. При нажатии на картинку континента, сравниваем с требуемым индексом. При совпадении подсвечиваем континент.
не подскажите как это реализовать программно

пытаюсь сделать таким способом:
Код:
var
  startform: Tstartform;
  Q1: string;
  Q2: string;
  Q3: string;
  Q4: string;
  Q5: string;
  Q6: string;

procedure Tstartform.gs_start_pressedClick(Sender: TObject);
begin
  Q1:='Choose Australia';
  Q2:='Choose North America';
  Q3:='Choose South America';
  Q4:='Choose Afrika';
  Q5:='Choose Antarctica';
  Q6:='Choose Eurasia';
  LabelQ1.Caption := Q1; // правильно понимаю, что придется создавать 6 лейблов и выводить в каждый определенный вопрос?
end;

procedure Tstartform.map_avstraliaClick(Sender: TObject);
begin
if Q1 then map_avstraliaClick; //понятно что код неправильный, но верное решение в голову не приходит
end;
soundsound вне форума Ответить с цитированием
Старый 10.10.2016, 12:09   #5
one_man_show
Пользователь
 
Аватар для one_man_show
 
Регистрация: 07.10.2016
Сообщений: 23
По умолчанию

Уберите повторяющиеся строки, используйте массив строк.
Далее сравниваете не строки, а индексы. Если индекс ответа совпал с индексом вопроса, подсвечиваете...
С уважением,
Ваган Саруханов
one_man_show вне форума Ответить с цитированием
Старый 29.11.2016, 19:25   #6
soundsound
 
Регистрация: 16.09.2016
Сообщений: 6
По умолчанию

а можно подробнее
что куда писать
и если я правильно понял, массив строк в моем случае будет выглядеть так:
Код:
procedure Tstartform.gs_start_pressedClick(Sender: TObject);
var
QM: array of array of string;
count_questions: integer;
begin
count_questions:=6;
setlength(massiv,count_questions);
 
setlength(massiv[0],7);
massiv[0,0]:='Choose Australia';
massiv[0,1]:='Ответ 1 на вопрос 1';
massiv[0,2]:='Ответ 2 на вопрос 1';
massiv[0,3]:='Ответ 3 на вопрос 1';
massiv[0,4]:='Ответ 4 на вопрос 1';
massiv[0,5]:='Ответ 5 на вопрос 1';
massiv[0,6]:='Ответ 6 на вопрос 1';
massiv[0,7]:='A1';   
 
setlength(massiv[1],7);
massiv[1,0]:='Choose Afrika';
massiv[1,1]:='Ответ 1 на вопрос 2';
massiv[1,2]:='Ответ 2 на вопрос 2';
massiv[0,3]:='Ответ 3 на вопрос 1';
massiv[0,4]:='Ответ 4 на вопрос 1';
massiv[0,5]:='Ответ 5 на вопрос 1';
massiv[0,6]:='Ответ 6 на вопрос 1';
massiv[0,7]:='A2';   
end;
soundsound вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие на кнопку при выполнении условий. spotip Компоненты Delphi 5 04.09.2014 15:47
String grid - изменить содержимое ячейки при определенном условии Vova777 Общие вопросы Delphi 1 07.09.2011 23:32
выделение строки при определенном условии kursant95 Microsoft Office Excel 4 18.02.2011 18:20
Копирование значения в другой столбец при определенном условии stasbz Microsoft Office Excel 1 01.07.2009 23:55
Помогите, пожалуйста, скрыть строки при определенном условии axaptaalex Microsoft Office Excel 4 19.03.2009 21:35