Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
imel
0 / 0 / 1
Регистрация: 12.11.2014
Сообщений: 108
#1

Переход на следующую форму по изображению

26.11.2014, 09:23. Просмотров 640. Ответов 9
Метки нет (Все метки)

Есть несколько картинок, которые расположены на форме. Нужно, чтоб переход на следующую форму осуществлялся независимо от какого либо номера картинки. Т.е. если картинка 2 последняя, то переход происходит или картинка 4 -соответственно. Если не ошибаюсь, то это ф-ция Random с условием. Как это в программном виде сделать? Помогите, заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2014, 09:23
Ответы с готовыми решениями:

Переход на другую форму
В программе есть 3 формы, на второй форме есть кнопка "Новая игра" Как перейти...

C++ Builder [Переход из формы в форму]
Нужно чтобы по нажатии кнопки на месте окна(где и собственно расположена...

Переход с формы на форму и обратно
Доброго времяни суток. Такая вот интересная ситуевина: :scratch: У меня в...

Переход на форму после окончания игры Пятнашки
Суть вопроса состоит в том, что нужно перейти на форму 2 автоматически , когда...

Переход на вторую форму при нажатии на Flash-ролик на первой
Как сделать чтобы когда нажимаешь ShockwaveFlash1 переходила на вторую форму

9
demon_7
259 / 191 / 60
Регистрация: 12.05.2013
Сообщений: 856
26.11.2014, 10:20 #2
imel, Уважаемый ТС, можете просто описать что Вы хотите сделать и дальше как хотите сделать, не скупитесь на детали.
0
SatanaXIII
Супер-модератор
Эксперт С++
5773 / 2772 / 376
Регистрация: 01.11.2011
Сообщений: 6,744
Завершенные тесты: 1
26.11.2014, 12:03 #3
По чем купил, по том продал:
C++
if( (static_cast<TImage*> (Sender))->Tag == Random(4) )
  FormNext->Show();
0
imel
0 / 0 / 1
Регистрация: 12.11.2014
Сообщений: 108
08.12.2014, 23:23  [ТС] #4
Не то! Вот скрин->
В центре скрина видно картинки, которые в дальнейшем будут спрятаны на форме. Их нужно будет отыскать. Когда найдется последняя (не имеет значения какая) то произойдет переход на следующее окно(форму). Как сделать чтобы переход осуществился?
0
imel
0 / 0 / 1
Регистрация: 12.11.2014
Сообщений: 108
08.12.2014, 23:26  [ТС] #5
Скрин
0
Миниатюры
Переход на следующую форму  по изображению  
gumi250
431 / 398 / 57
Регистрация: 06.02.2012
Сообщений: 1,373
09.12.2014, 01:34 #6
Например, можно использовать тэг, и назначить всем картинкам один обработчик onMouseDown примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int C=0;
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,            int X, int Y)
{
    TImage* I=(TImage*) Sender;
    if(I->Tag==0)
    {
        I->Tag=1;
        C++;
        if(C==4)
            Form2->Show();
    }
}
0
SatanaXIII
Супер-модератор
Эксперт С++
5773 / 2772 / 376
Регистрация: 01.11.2011
Сообщений: 6,744
Завершенные тесты: 1
09.12.2014, 08:36 #7
Как это делается с точки зрения ооп: заводится класс картинка. В него суется изображение (силуэт, еще что), координаты и свойство найдено/не найдено. Составляется массив таких объектов. Каждый раз, когда находится такой объект, проверяется последний ли он или еще есть.
0
imel
0 / 0 / 1
Регистрация: 12.11.2014
Сообщений: 108
09.12.2014, 09:17  [ТС] #8
Спасибо, попробую.
0
imel
0 / 0 / 1
Регистрация: 12.11.2014
Сообщений: 108
07.02.2015, 11:53  [ТС] #9
Создал глобальную k=0. Собственно вот->
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int k=0;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm3::Image1Click(TObject *Sender)
{
Image1->Visible=false; k++;
}
//---------------------------------------------------------------------------
void __fastcall TForm3::Image2Click(TObject *Sender)
{
Image2->Visible=false; k++ ;
}
//---------------------------------------------------------------------------
void __fastcall TForm3::Image3Click(TObject *Sender)
{
Image3->Visible=false;  k++   ;
}
//---------------------------------------------------------------------------
void __fastcall TForm3::Timer1Timer(TObject *Sender)
{
        
  if (k<3)
  Button1->Visible=false;
  else
  Button1->Visible=true;
0
ivan.-94
Я Фоюмчанин ? дааааа)
209 / 200 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
07.02.2015, 16:17 #10
Цитата Сообщение от imel Посмотреть сообщение
C++
1
2
3
4
5
6
void __fastcall TForm3::Timer1Timer(TObject *Sender)
{
  if (k<3)
  Button1->Visible=false;
  else
  Button1->Visible=true;
Не корректно каждую секунду устанавливать Visible=false;
Да и таймер тут не нужен
Если у вас будет 50 картинок вы сделаете 50 обработчиков?))
Вам уже предложили делать 1 обработчик.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
        : TForm(Owner)
{
    Button1->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm3::ImageClick(TObject *Sender)
{
    static int k = 0;
    TImage* Image=(TImage*) Sender;
    Image->Visible=false; k++ ;
    if (k>=3)
        Button1->Visible=true;
}
//---------------------------------------------------------------------------
0
07.02.2015, 16:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2015, 16:17

Переход на другую форму при нажатии на строку в DBGrid
Как сделать так чтоби при нажатии на рядок в DBGrid совершалса переход на Form 2

Переход по кнопке на следующую форму
WinForms C++ как осуществить переход по клике на кнопку, на дугую форму ...

Как запретить переход на следующую форму?
Есть форма где выбираются данные, при выборе , при щелчке на кнопку далее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru