Войти

Показать полную графическую версию : Работа с окнами, как осуществить?


Virtyaluk
15-02-2010, 01:23
Помогите, пожалуйста
нужно в одной программе создать пару окон и осуществить переход с одного окна в другое по нажатию определенной кнопки
как это сделать?
и еще, можно ли, как-то, сопроводить запуск моей программы например, анимацией или просто картинкой(как это сделано в новых версиях продуктов Adobe, Office 2010, и множеству игр)??
напомню, что я использую CodeGear C++ Builder 2007
жду помощи...

Virtyaluk
16-02-2010, 20:52
че все, помощь закончилась??

ganselo
16-02-2010, 21:40
нужно в одной программе создать пару окон и осуществить переход с одного окна в другое по нажатию определенной кнопки
как это сделать? »
Не совсем понятно. Например у программы есть 5 окон и вы хотите, чтобы при нажатии F1 фокус переходил на 1 окно, F2 на второй и т.д ? Или же, что то подобное как при нажатии alt+tab?

и еще, можно ли, как-то, сопроводить запуск моей программы например, анимацией или просто картинкой »
Делаете окно "приветствие" и в обработчики главного окна OnCreate (возможно в каком то событии возникающем раньше OnCreate) вызываете окно "приветствие", далее в окне "приветствие" ставите задержку в N секунд (чтобы можно было увидеть это окно) после истечения которой закрываете окно "приветствие".

crashtuak
16-02-2010, 23:09
qE+, как вариант перехода с окна в окно-создать одно окно, на и там разместить все нужные контролы, и просто скрывать-показывать те, которые нужны-не нужны на данный момент.

Virtyaluk
17-02-2010, 17:35
ganselo, crashtuak,
мне нужно что-то, типа: при нажатии кнопки "Далее"(в первом окне) - открывалось второе.Как в установочных пакетах, только у меня не установка!

и если можно, ребята, пишите код, а не указания

насчет приветствия, я хочу что-то подобное как у Photoshop CS4 т.е. запускаешь exe-шку, пару секунд отображается картинка(маленькая), а потом запускается сама программа.И если можно, все это дело в варианте кода

crashtuak
17-02-2010, 18:32
qE+, к сожалению написать код не могу, ибо билдера щас нету под рукой. Но вот указание:-): есть такой контрол-TPanel. Кидаем его на форму. Потом на TPanel кидаем другие нужные контролы. Один TPanel-одно окно. Тоесть сделаем три TPanel, например start, main, finish. На первом-типа приветствия, как у инсталятора, на втором основная функциональная часть, а на последнем-завершение нашей серии окон. Все панели делаем невидимыми (параметр Visible=false), вся затея в том, что при сокрытии панели всё её содержимое тоже скрывается. На событии главного окна OnCreate делаем видимой панель start (start->Visible=true). По нажатию кнопки, которая будет на основном окне, мы делаем невидимой первую панель, а видимой-вторую. Так же по второму нажатию кнопки поступаем и с последней панелью.
ПС:только панели сделайте одинаковых размеров, и разместите их одна под одной.
Размещать лучше через OnCreate, иначе у вас одна панель может попасть в другую.

crashtuak
18-02-2010, 19:17
qE+, прикрепил пример с работой с панелями.

Admiral
19-02-2010, 05:45
qE+ анимацию можно проигрывать например из GIF картинки, с помощью различных "рендеров" - Как вывести на экран картинку в JPEG/GIF/PNG/др. формате? 7 способов как это сделать (http://www.rsdn.ru/article/qna/gdi/drawimg.xml)

Не видел новых продуктов Adobe, так что не скажу как там сделано. А в MS Office 2010 сама программа в сплеш скрине рендрит анимацию.
http://i061.radikal.ru/1002/d0/912fe7bfc7bb.gif
503 x 338 пик., 208 Кб (http://i076.radikal.ru/1002/dd/a467a0881735.gif)
По этой части, могу дать лишь общие рекомендации.
Для того что б осуществить нечто подобное можно использовать к примеру GDI, GDIPlus или сразу Direct3d. Хоть применения последнего возможно будет излишним для простой программы, в отличии от множества игр.
если вы не разрабатываете 3D-приложение, то этот способ крайне неудобен, так как предназначен для работы с 3D объектами.
... на выходе получаем IDirect3DTexture8, который очень не просто вывести в HDC.>> (http://www.rsdn.ru/article/qna/gdi/drawimg.xml)

Virtyaluk
23-02-2010, 20:37
Admiral,
по ссылке материал о том как "вывести изображение в окне программы", а мне нужно что был splash-screen как на анимации вашего поста.




© OSzone.net 2001-2012