Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
imel
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 108
#1

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

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

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

Переход на другую форму - C++ Builder
В программе есть 3 формы, на второй форме есть кнопка "Новая игра" Как перейти на третью форму с помощью кнопки Button?

Переход с формы на форму и обратно - C++ Builder
Доброго времяни суток. Такая вот интересная ситуевина: :scratch: У меня в cобытии TrayIcon Restorе вот такой оператор if...

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

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

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

Переход по кнопке на следующую форму - C++/CLI WinForms
WinForms C++ как осуществить переход по клике на кнопку, на дугую форму что то типа етого: private: System::Void...

9
demon_7
259 / 191 / 44
Регистрация: 12.05.2013
Сообщений: 856
26.11.2014, 10:20 #2
imel, Уважаемый ТС, можете просто описать что Вы хотите сделать и дальше как хотите сделать, не скупитесь на детали.
0
SatanaXIII
Супер-модератор
Эксперт С++
5650 / 2694 / 252
Регистрация: 01.11.2011
Сообщений: 6,588
Завершенные тесты: 1
26.11.2014, 12:03 #3
По чем купил, по том продал:
C++
if( (static_cast<TImage*> (Sender))->Tag == Random(4) )
  FormNext->Show();
0
imel
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 108
08.12.2014, 23:23  [ТС] #4
Не то! Вот скрин->
В центре скрина видно картинки, которые в дальнейшем будут спрятаны на форме. Их нужно будет отыскать. Когда найдется последняя (не имеет значения какая) то произойдет переход на следующее окно(форму). Как сделать чтобы переход осуществился?
0
imel
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 108
08.12.2014, 23:26  [ТС] #5
Скрин
0
Миниатюры
Переход на следующую форму  по изображению  
gumi250
430 / 397 / 35
Регистрация: 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
Супер-модератор
Эксперт С++
5650 / 2694 / 252
Регистрация: 01.11.2011
Сообщений: 6,588
Завершенные тесты: 1
09.12.2014, 08:36 #7
Как это делается с точки зрения ооп: заводится класс картинка. В него суется изображение (силуэт, еще что), координаты и свойство найдено/не найдено. Составляется массив таких объектов. Каждый раз, когда находится такой объект, проверяется последний ли он или еще есть.
0
imel
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 108
09.12.2014, 09:17  [ТС] #8
Спасибо, попробую.
0
imel
0 / 0 / 0
Регистрация: 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
Я Фоюмчанин ? дааааа)
208 / 199 / 13
Регистрация: 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
Привет! Вот еще темы с ответами:

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

Необходимо через меню сделать переход на следующую по счету форму - Visual Basic
Есть MDI-форма, которая управляет дочерними формами одной менюшкой. Нужно сделать навигацию из меню, т.е. перемещения вперед, назад по...

Переход к изображению - ТФКП
Был задан дифур y''-y'-x^2*y+x=0 После всех преобразований получил Y(p)=-(p^4-p^3-p)/(p^5-p^4-2) Не знаю, что делать дальше (...

Переход на следующую строку - Java SE
всем, здрасте ;)помогите, пжлста, нужно сделать, чтобы когда шарик врезается в стену, он переходил на следующую строку и продолжал...


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

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

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