Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как перейти к другому .cpp-файлу, переход к другому .cpp-файлу 
:(
    Опции темы
ura5
Дата 22.5.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Кто знает,как из одного .cpp-файла по выбранному пункту меню перейти к другому .cpp-файлу?
При этом отображение на экране не изменяется,т.е. происходят события и работа в одном и том же окне-справа от меню-дерева.

if (Trim(AnsiUpperCase(TreeView1->Selected->Text))== "СПРАВОЧНИК ")

{
//как перейти к другому .cpp-файлу?
}

Спасибо.

PM MAIL   Вверх
SenkraD
Дата 22.5.2007, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

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



ura5, "переведи" свой вопрос - думаю не я один его не понял


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 22.5.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Может имеется в виду как отобразить другую форму?
PM MAIL ICQ   Вверх
SenkraD
Дата 22.5.2007, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

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



Anikmar, вариантов куча, а мы не телепаты


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
ura5
Дата 22.5.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Прошу прощения-знаний по си нет.Работала на web.да,скорее всего-как перейти на новую форму.
Но при условии,что на экране все будет отображаться справа от меню-дерева.
PM MAIL   Вверх
SenkraD
Дата 22.5.2007, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

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



ну если форму,то делаем так
Код

#include "Form2.h"
//...
//если слева от дерева нету панели то так
Form2->Parent        = Form1;
Form2->Borderstyle = bsNone;
Form2->Top  = 0;
Form2->Left  = TreeView1->Left + TreeView1->Width + 5;

//если же там есть панель, то
Form2->Align            = alClient;
Form2->Borderstyle = bsNone;
Form2->Parent        = Panel1;

// И показываем
Form2->Show();


Кажись так было.


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 22.5.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Мне кажется проще сделать так:

ura5, вы обясните, что вы хотите достичь, а мы вам подскажем как это лучше и удобнее сделать - так будет быстрее. Может и не надо дополнительных форм, а можно обойтись чем-то другим. Предлженный SenkraD вариант имеет право на жизнь, но по моему опыту скажу, что управлять таким контролом сложнее и я уже достаточно давно отказался от технологий типа MDI, если формы имеют совершенно разное логическое назначение. Появляются лишние глюки при перерисовке, которые потом надо ловить и т.п.
Это конечно ИМХО
PM MAIL ICQ   Вверх
SenkraD
Дата 22.5.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

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



Anikmar, не совсем согласен - если нужно что-то типа PropertySheet как в VC++ или частого случаz использования деревьев в web (rsdn.ru, worldcpp.vingrad.ru), где все формы одинакового размера и на формах разное содержимое, которое неудобно генерить во время выполнения, правда, для удобства переходов лучше создать карту. Ну тут лучше это делать панелями или фреймами.


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 22.5.2007, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(SenkraD @  22.5.2007,  17:04 Найти цитируемый пост)
Anikmar, не совсем согласен - если нужно что-то типа PropertySheet как в VC++ или частого случаz использования деревьев в web (rsdn.ru, worldcpp.vingrad.ru), где все формы одинакового размера и на формах разное содержимое, которое неудобно генерить во время выполнения, правда, для удобства переходов лучше создать карту. Ну тут лучше это делать панелями или фреймами. 

Я же не говорю, что от такого подхода нужно отказаться. Лично мне это почему-то стало неудобно. Я использовал либо панели (неудобно на этапе проектирования) либо TTabControl - закладки спокойно создаются в нужном виде, а деревом переключаются.
Если содержимое нужно генерить и заранее неизвестно что там - тут как говориться поле для фантазии.
Можно так делать, просто мне кажется этот путь сложней (а может просто я не пользовался правильным подходом, поэтому сложно показалось).
PM MAIL ICQ   Вверх
SenkraD
Дата 22.5.2007, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

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



Цитата(Anikmar @  22.5.2007,  17:28 Найти цитируемый пост)
 Я использовал либо панели (неудобно на этапе проектирования)
Согласен - забыл немного. А TTabControl - не знаю - там же эти, собственно говоря, табы висят, которые не должны как правило быть видны. Поэтому либо формы, либо TFrame.

P.S. А вообще ты прав в том, что нужно что ura5 написала что ей нужно, тогда меньше спорить будем ))), хотя это и интерестно.




--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 22.5.2007, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(SenkraD @  22.5.2007,  17:42 Найти цитируемый пост)
табы висят, которые не должны как правило быть видны.

Ненужные табы сделаны невидимыми и особо не мешают. Немного раздражает заголовок
PM MAIL ICQ   Вверх
SenkraD
Дата 23.5.2007, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

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



Цитата(Anikmar @  22.5.2007,  19:28 Найти цитируемый пост)
Немного раздражает заголовок

перепутал - именно заголовок, а не табы



--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
ura5
Дата 23.5.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо всем за беспокойство.Что-то не получается мне объяснить свою проблему.
У меня слева меню-дерево,а справа отображается все то,что выбирается по выбранному пункту меню.
Мой .cpp-файл  уже и так большой.Поэтому я хочу,чтобы при выборе пунктов меню-я преходила 
на на новый .cpp-файл.А ФОРМА  пускай бы оставалась прежней.Что-то не то наверное говорю для тех,кто на C++ Builder пишет.Это наверное одно и то же. Ведь получается ,что я все пуннкты меню
описывать буду в одном и том же .cpp-файле или форме. ВЕДЬ это же он какого размера будет!!!

А ,если перйти на новую форму,то тогда мне придется поместить на нее все те КОМПОНЕНТЫ, которые были на старой ,т.е. аналогично ,но обрабатывать только в ней другие пункты меню?
Как ?
PM MAIL   Вверх
SenkraD
Дата 23.5.2007, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

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



ura5, ещё раз, но уже явно. Ты Alcohole120% пользуешся, если тогда вопрос: тебе нужно что-то типа его окна настроек? или если говорить типа по web-ски тебе нужно фрейм подставлять тот или иной причём у разных фреймов свои контролы и функции?

P.S. Звиняйте, если плохо наводящие вопросы сформулировал


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
ura5
Дата 23.5.2007, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Alcohole-не знаю.У меня с с++ плохо.
А ,если сравнить с WEB,то да,мне необходимо чтобы по выбранному пункту меню отображалось в другом фрейме,который выглядел бы аналогично как предыдущий,только в нем были бы свои обработки ,просто прежний огромный по размерам.
Если это в с++Builder -то как?

Добавлено через 2 минуты и 30 секунд
На web можно все отобразить в новом скрипте,который может быть фреймом или нет-это уж пожелаешь.
PM MAIL   Вверх
Klin
Дата 23.5.2007, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

TForm1 *my = new TForm1(this);
 my->Show();

Это?


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
SenkraD
Дата 23.5.2007, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

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



ura5, Alcohole - это программа для создание виртуалок (VCD)


Цитата(ura5 @  23.5.2007,  10:08 Найти цитируемый пост)
оэтому я хочу,чтобы при выборе пунктов меню-я преходила 
на на новый .cpp-файл.А ФОРМА  пускай бы оставалась прежней

Ну так пускай так и будет просто в то место, где нужно показать фрейм-результат выбора меню вставляй другую форму или фрейм на эту (главную).



--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Vyacheslav
Дата 23.5.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Цитата(ura5 @  23.5.2007,  11:23 Найти цитируемый пост)
А ,если сравнить с WEB,то да,мне необходимо чтобы по выбранному пункту меню отображалось в другом фрейме,

Ну так и используйте фреймы иерархию наследования.
А для переключения действительно можно использоват закладки, только создавать их не спомощью TabContol, а PageControl. У него можно убрать заголовки
Итак создаем приложение.
1 .создаем главную форму
2. кладем на нем панель,  прижимаем ее слева.
3. кладем вертикальный сплиттер.
4. кладем PageControl  и указываем  выравниваниt  по клиенту Allign = alClient
5. кладем на левую панель дерево и выравyиdаем его по клиенту Allign = alClient
6. создаем в PageControl закладки по количеству типов форм, которые будут отбражаться в правом окне

Все. Главная форма собрана
8. Пишем алгоритм по переключение закладок в зависмости от клика на дереве
7. Создаем фрейм File->New->Frame.  Если для все фреймов есть общие элементы, то добавлем их на фрейм и реализуем общие для фремой алгоритмы. Это будет базовый фрейм (отдельный cpp smile ) 
8.От базового фрейма порождаем требуемое количество производных фреймов( отдельные cpp smile )
File->New->Other->Закладка с именем Вашего проекта-> Имя базового фрейма
9. Для каждого фрейма добавляем конкретику( контролы, алгоритмы)
10. Кладем фреймы на закладки : открываем страницу на   PageControl, открываем закладку Standard на IDE , давим на самую левую иконку(окно в окне). Из списка выбираем нужный фрейм. Полученный на странице фрейм раскрываем на всего клиента Allign = alClient

Проделываем эту операцию для всех фреймов
11 Чтобы закладки с именами  страниц не мозолили глаза, выбираем поочередно каждую страницу и в инспекторе для нее указывваем TabVisible= false 

В результате имеем проект состоящий из cpp проекта, cpp главной формы и кучи cpp фреймов, но работать все вместе это будет примерно как Вы хлтели: одна форма, слева дерево, справа информационное окно. Пользователь может передвигать границы между ними. В зависимости от состояния дерева, справа высвечивается различное содержание в соответсвующем виде
 

 



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
ura5
Дата 23.5.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо всем.
PM MAIL   Вверх
Anikmar
Дата 23.5.2007, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



ura5, вы похоже просто хотите часть методов/функций перетащить в другой файл для того, чтобы он был меньше размера.
Билдер создает файлы cpp различными способами.
Можно создать новую форму. К ней автоматически цепляется заголовочный и cpp файл.
А можно создать просто новый файл, без формы. Меню File->New->Unit
У вас появляется пустой cpp файл, куда пишите нужные вам функции. Описания их помещаете в h файл модуля, а в модуле с формой указывайте заголовочный файл созданного модуля при помощи #include

Наверное вот суть вопроса?
PM MAIL ICQ   Вверх
ura5
Дата 23.5.2007, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Хороший ответ.Попробую.Может как раз то,что надо.Проверю.Спасибо.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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