Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.09;
Скачать: CL | DM;

Вниз

Frame в Главной форме...   Найти похожие ветки 

 
bataniQ   (2008-02-14 12:08) [0]

Всем здрасте...Возникла вот такая проблемкО..
На главной форме использую Frame...Но мне главную форму необходимо убрать при запуске программы...пишу в сурсе:
 Application.ShowMainForm := false;  
 Application.CreateForm(TMainForm, MainForm);
 Application.CreateForm(TAuthForm, AuthForm);
 AuthForm.Show;

И все.......конец....появляется AuthForm, после ее закрытия появляется главная форма (MainForm), но вот фрейма уже на ней нету и при выходе из программы возникает такой exception:
System Error. Code: 1400. Invalid window handle.

Если убрать Application.ShowMainForm := false;  То все работает frame показывается, но .. вместе с главной формой при загрузке проги ... как быть????


 
Сергей М. ©   (2008-02-14 12:16) [1]


> после ее закрытия появляется главная форма (MainForm)


Что, сама по себе выскакивает ?)


 
botaniQ   (2008-02-14 12:17) [2]

Не :) - я ее вызываю ... при нажатии например на кнопочку ОК:

AuthForm.Hide;
MainForm.Show;


 
Сергей М. ©   (2008-02-14 12:23) [3]

Пробуй так:

Application.ShowMainForm := false;  
Application.CreateForm(TMainForm, MainForm);
ShowMessage(IntToStr(Integer(MainForm)));
Application.CreateForm(TAuthForm, AuthForm);
AuthForm.Show;

..

AuthForm.Hide;
Application.CreateForm(TMainForm, MainForm);
MainForm.Show;

Какие сообщения видишь (дословно) ?


 
botaniQ   (2008-02-14 12:27) [4]

момент...щас попробую...


 
botaniQ   (2008-02-14 12:29) [5]

Сообщение:
12132436


 
Palladin ©   (2008-02-14 12:32) [6]


> [5] botaniQ   (14.02.08 12:29)

это понятно, но от тебя вообще то две циферки ждут...


 
Palladin ©   (2008-02-14 12:33) [7]

интересно... это я про что... :)


 
botaniQ   (2008-02-14 12:34) [8]

ааа....какие две циферки??


 
Сергей М. ©   (2008-02-14 12:34) [9]


> Palladin ©   (14.02.08 12:33) [7]


Про то самое)

действительно, предполагалось что цифирки эти будут отличаться)


 
Сергей М. ©   (2008-02-14 12:35) [10]


> botaniQ   (14.02.08 12:34) [8]


Пардон)

Не

AuthForm.Hide;
Application.CreateForm(TMainForm, MainForm);
MainForm.Show;

а

AuthForm.Hide;
ShowMessage(IntToStr(Integer(MainForm)));
MainForm.Show;


 
Palladin ©   (2008-02-14 12:36) [11]


>  [10] Сергей М. ©   (14.02.08 12:35)

в том то и прикол, я твое не дочитал, сам продолжил мысль увидел ответ автора, передернул его, вчитался в твое и решил что что-то не так... :)


 
botaniQ   (2008-02-14 12:37) [12]

12132436 и 12132436

т.е. одно и тоже число :(


 
Palladin ©   (2008-02-14 12:38) [13]

ту же операцию с указателем фрейма сделай...


 
botaniQ   (2008-02-14 12:41) [14]

фрейм:
12181340


 
Palladin ©   (2008-02-14 12:41) [15]

в обоих showmessage ?


 
Сергей М. ©   (2008-02-14 12:42) [16]


> botaniQ   (14.02.08 12:41) [14]


А вторая цифирка ?)


 
Сергей М. ©   (2008-02-14 12:44) [17]


> Palladin ©   (14.02.08 12:41) [15]


Так поступают не батаники, но настоящие партизаны на допросе в гестапе)
Клещами вытягивать приходится)


 
botaniQ   (2008-02-14 12:44) [18]

момент...)


 
botaniQ   (2008-02-14 12:45) [19]

опять абсолютно одинаковые...12181452


 
Palladin ©   (2008-02-14 12:47) [20]

а теперь с Parent"ом фрейма...


 
Palladin ©   (2008-02-14 12:48) [21]

и с его handle заодно...


 
Сергей М. ©   (2008-02-14 12:49) [22]


> опять абсолютно одинаковые...12181452


Ну значит он, фрейм это, просто invisible стал почему-то)


 
botaniQ   (2008-02-14 12:50) [23]

а exception почему возникает ?


 
Сергей М. ©   (2008-02-14 12:53) [24]


> exception почему возникает ?


Ты сначала с фреймом разберись, куда он у тебя пропал, сам по себе, якобы)

Потом исключением займешься. Но скорее всего исключение есть прямое следствие этого таинственного исчезновения)

Какие еще выкрутасы ты там творишь в коде обработчиков событий со своими формами/фреймами - то нам не ведомо) ... Где-то, примерно в 17-й строке, у тебя ошибка)


 
botaniQ   (2008-02-14 14:09) [25]

Я ваще тащЮЮССя....странно, но только при такой записи все работает...
 Application.CreateForm(TAuthForm, AuthForm);
 Application.CreateForm(TMainForm, MainForm);
 AuthForm.Show;
 MainForm.MyReqFramePlace.Parent:=AuthForm;  


Причем Frame появляеся именно на MainForm....
Билеберда какая-та..


 
Palladin ©   (2008-02-14 14:10) [26]

правильно, главной формой то AuthForm стала...


 
Сергей М. ©   (2008-02-14 14:12) [27]


> MainForm.MyReqFramePlace.Parent:=AuthForm


За каким лешим нужна эта строчка ?)


 
botaniQ   (2008-02-14 14:15) [28]

Да она вообще не нужна.....просто ...  ней все работает...но естественно я так программу не оставлю... ) надо другой выход искать :)


 
Сергей М. ©   (2008-02-14 14:17) [29]


> Palladin ©   (14.02.08 14:10) [26]
>
> правильно, главной формой то AuthForm стала...
>


С какого перепугу ?
Главной формой VCL-приложения на всем протяжении его работы была и останется самая первая создаваемая форма, владельцем которой становится объект Application. Ныне и присно и вовеки веков )


 
Palladin ©   (2008-02-14 14:18) [30]

так он ее и создает самой первой...


 
Сергей М. ©   (2008-02-14 14:22) [31]


> он ее и создает самой первой...


Точно)
Глаза не разул сразу на это)



Страницы: 1 вся ветка

Текущий архив: 2008.03.09;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.015 c
15-1201765184
Ega23
2008-01-31 10:39
2008.03.09
Дурной вопрос про QueryAnalyzer


15-1201875396
Riply
2008-02-01 17:16
2008.03.09
Экономия памяти при работе.


15-1201857706
Andryk
2008-02-01 12:21
2008.03.09
Кто все эти люди?! :)))))))))))) Сцылка


4-1184173897
kernel
2007-07-11 21:11
2008.03.09
Работа с HDD


15-1202148496
Petr V. Abramov
2008-02-04 21:08
2008.03.09
Как отлаживать DLL под XP. D 7 и ниже.