Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Form Show 
:(
    Опции темы
Kirgston
Дата 17.2.2009, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Всем доброго времени суток! Ребята. Вот тут я столкнулся с необычной проблемой. В Делфи я просто если вызывал с Формы 2 Форм1.Шоу всё работало. Но в С++ как-то не так... Когда я пишу на второй форме Form1->Show(); Ничего не происходит. Тоисть вообще. Компилятор не ругается и т.д. но ничего вообще не происходит. При трассировке я увидел что оно вообще не вызывает форму 1. В чем может быть проблемка? =)
PM MAIL   Вверх
mrbrooks
Дата 17.2.2009, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Kirgston, для Бормана есть свой раздел.

По сабжу - ты форму1 заинклюдил? Сдается мне нет. Alt-F11 спасет отца русской демократии.
PM MAIL   Вверх
Kirgston
Дата 17.2.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Эээээ извините но на сколько я знаю ВС++ и БС++ это С++ )))) язык то у них один )))) может компоненты разные но синтаксис один же...

Да я само собой добавил. 
PM MAIL   Вверх
mrbrooks
Дата 17.2.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(Kirgston @  17.2.2009,  14:52 Найти цитируемый пост)
Эээээ извините но на сколько я знаю ВС++ и БС++ это С++ )))) язык то у них один )))) может компоненты разные но синтаксис один же...

то о чем ты спрашиваешь к С++ отношения имеет достаточно отдаленное.
Цитата(Kirgston @  17.2.2009,  14:52 Найти цитируемый пост)
Да я само собой добавил.  

Т.е. в Form1 заинклюдил Form2, в Form2 заинклюдил Form1?
PM MAIL   Вверх
Dem_max
Дата 17.2.2009, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



У тебя Form2 как project->Options->Forms->Auto Create или Available Forms??
если последнее то нужно сделать
Код

    Form2 = new TForm2(this);
    Form2->Show();



--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
mrbrooks
Дата 17.2.2009, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(Dem_max @  17.2.2009,  16:11 Найти цитируемый пост)
У тебя Form2 как project->Options->Forms->Auto Create или Available Forms??
если последнее то нужно сделать

В этом случае вылезла бы Access violation
PM MAIL   Вверх
Dem_max
Дата 17.2.2009, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



а ты случаем не SplashScreen делаешь для основной формы  ?


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
mrbrooks
Дата 17.2.2009, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(Dem_max @  17.2.2009,  16:29 Найти цитируемый пост)
а ты случаем не SplashScreen делаешь для основной формы  ?

я?  smile

Добавлено через 40 секунд
кстати очень даже возможно.
PM MAIL   Вверх
Dem_max
Дата 17.2.2009, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



тады держи
Делаешь форму, которая будет изображать SplashScreen;
Делаешь WinMain вида:
и форма должна быть project->Options->Forms->Available Forms
Код

#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("MainForm.cpp", Main);
USEFORM("splash.cpp", SplashForm); 
//---------------------------------------------------------------------------
#include "splash.h"

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        try
        {
                 SplashForm = new TSplashForm(Application);
                 SplashForm->Show();
                 SplashForm->Update();

                 Application->Initialize(); 
                 Application->Title = "Редактор шрифтов и графики принтера";
                 Application->CreateForm(__classid(TMain), &Main);
                 SplashForm->Hide();
                 SplashForm->Close(); 
                 Application->Run();
        }
        catch (Exception &exception)
        {
                 Application->ShowException(&exception);
        }
        catch (...)
        {
                 try
                 {
                         throw Exception("");
                 }
                 catch (Exception &exception)
                 {
                         Application->ShowException(&exception);
                 }
        }
        return 0;
}



Это сообщение отредактировал(а) Dem_max - 17.2.2009, 16:43


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Kirgston
Дата 17.2.2009, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Неее ребят пасибки конечно! Сплеш мне нужен, но не счас ))))

Вот смотрите

Код

void __fastcall TForm2::FormCloseQuery(TObject *Sender, bool &CanClose)
{
CanClose=false;
Form2->Enabled=false;
while (Form2->AlphaBlendValue>0) {
    Sleep(30);
    Form2->AlphaBlendValue=Form2->AlphaBlendValue-5;
}
Form2->Enabled=true;
MediaPlayer1->Stop();
MediaPlayer1->Rewind();
Form1->Show();
CanClose=true;
Form2->Hide();
}



Код

void __fastcall TForm1::FormShow(TObject *Sender)
{
Form1->AlphaBlendValue=0;
Timer1->Enabled=true;
MediaPlayer1->FileName="\images\\video.avi";
MediaPlayer1->Open();
MediaPlayer1->DisplayRect=Rect(0,0, Form1->Width,Form1->Height);
MediaPlayer1->Play();
}


В итоге при загрузки программы идет проход Форм1. Шоу . А при вызове оного с Формы 2 уже не идет...
PM MAIL   Вверх
Dem_max
Дата 17.2.2009, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



лучше проектик кидани, только удали *.tds


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Kirgston
Дата 17.2.2009, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Вот =) компилил на Билдере 2009

http://www.sendspace.com/file/42x21l
Зеркало
http://rapidshare.com/files/199212261/__.rar.html
PM MAIL   Вверх
Dem_max
Дата 17.2.2009, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



а где Form1->Hide() ??? чтобы сделать Form1->Show();
у тебя форма и так на экране, а то что ты ее показываешь еще раз от этого ничегоне меняется, ну может только становиться передним

Это сообщение отредактировал(а) Dem_max - 17.2.2009, 18:44


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Kirgston
Дата 17.2.2009, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Хех в Делфи чуток по другому =) я мог пользоватся Шоу без Хайда =) пасибки тут оно помогло. Но вот тут не задача... я хочу чтобы форма плавно переходила в форму... а тут сначала пропадает форм 2 а затем начинает появлятся форм 1=) а мне бы хотелось чтобы без задержки. Тоисть одновременно одна исчезала а другая появлялась =)
PM MAIL   Вверх
Dem_max
Дата 18.2.2009, 06:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



Цитата

а мне бы хотелось чтобы без задержки. Тоисть одновременно одна исчезала а другая появлялась =)

Вообщето одна мгновенно исчезает другая мгновенно появляется, даже глаз не замечает смену действий.

Проверял таким кодом
Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Hide();
Form2->Show();
}
//---------------------------------------------------------------------------


Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
   : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Form2->Hide();
Form1->Show();
}
//---------------------------------------------------------------------------


Это сообщение отредактировал(а) Dem_max - 18.2.2009, 06:46


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1034 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.