powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как перебрать все формы проекта ????
20 сообщений из 20, страница 1 из 1
Как перебрать все формы проекта ????
    #34473566
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы перебрать все формы проекта ну например в цикле и менять их цвет к примеру )))
Есть класс Screen !!! Но он работает только для форм которые находяться в данныый момент на экране. Какие есть идеи ?
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34473796
Lexogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Занести указатели на все классы формы проекта в список, и при необходимости пройтись по списку и менять их свойства. Если же формы создаются и удаляются из памяти динамичесски - создать файл настроек для всех форм, который будет подчитываться при создании класса формы.
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34473891
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexogenЗанести указатели на все классы формы проекта в список, и при необходимости пройтись по списку и менять их свойства. Если же формы создаются и удаляются из памяти динамичесски - создать файл настроек для всех форм, который будет подчитываться при создании класса формы.
Хм вот мне интересно а как я занесу их в список ?
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34473895
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах да я почему хочу так перебирать потому что форм многовато !
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34473936
Lexogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проект в в каком окружении? Visual, Builder?
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34473940
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexogenПроект в в каком окружении? Visual, Builder?

C++ Builder
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34473952
Lexogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Begem0t!k LexogenЗанести указатели на все классы формы проекта в список, и при необходимости пройтись по списку и менять их свойства. Если же формы создаются и удаляются из памяти динамичесски - создать файл настроек для всех форм, который будет подчитываться при создании класса формы.
Хм вот мне интересно а как я занесу их в список ?

Как я понимаю каждый клас формы наследуется от какого то базового класса у которого есть такие общие для всех форм свойства как цвет формы и т.п.. Тогда:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
#include "formReports.h"
#include "formUsers.h"
...

vector<TBaseClass *> formList;

Занести в список:
formList.push_back(formReports);
formList.push_back(formUsers);
...
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34473956
Lexogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Begem0t!k LexogenПроект в в каком окружении? Visual, Builder?

C++ Builder

У Вас в главном cpp файле есть список названий классов всех форм.
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34474183
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexogen Begem0t!k LexogenПроект в в каком окружении? Visual, Builder?

C++ Builder

У Вас в главном cpp файле есть список названий классов всех форм.
На самом деле это долго мне будет в список заносить то 89 форм ...
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34474533
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну а что вы хотели? а 89 это не так уж и много. занесете все указатели в вектор а потом будете делать все что захотите с этими формами
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34475162
Lexogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Begem0t!kНа самом деле это долго мне будет в список заносить то 89 форм ...

Может поищите в экземпляре класса TApplication - Application, формы же создаются с помощью этого класса, может у него есть методы для получения списка форм...
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34475776
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexogen Begem0t!kНа самом деле это долго мне будет в список заносить то 89 форм ...

Может поищите в экземпляре класса TApplication - Application, формы же создаются с помощью этого класса, может у него есть методы для получения списка форм...
Поискал не нашел ((
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34475928
Lexogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Begem0t!k Lexogen Begem0t!kНа самом деле это долго мне будет в список заносить то 89 форм ...

Может поищите в экземпляре класса TApplication - Application, формы же создаются с помощью этого класса, может у него есть методы для получения списка форм...
Поискал не нашел ((

Плохо смотрели. Достал из самого старого сундука Builder, сдул пыль, запустил, нажал Help, посмотрел свойства класса TApplication...
Наваяйл быстро:

Код: plaintext
1.
for(int i= 0 ;i<Application->ComponentCount;i++)
      ListBox1->Items->Add(Application->Components[i]->ClassName());

Вот и ответ! Перебрать все компоненты, если, например, бызовый класс TForm, или можна привести через dynamic_cast к класу TForm - значит клас формы. И делай с ним что хочеш через указатель!

А далее пожалуйста сами! На вопросы: "А как узнать клас родитель?","Как привести к типу... ?" отвечать не буду.
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34477075
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexogen Begem0t!k Lexogen Begem0t!kНа самом деле это долго мне будет в список заносить то 89 форм ...

Может поищите в экземпляре класса TApplication - Application, формы же создаются с помощью этого класса, может у него есть методы для получения списка форм...
Поискал не нашел ((

Плохо смотрели. Достал из самого старого сундука Builder, сдул пыль, запустил, нажал Help, посмотрел свойства класса TApplication...
Наваяйл быстро:

Код: plaintext
1.
for(int i= 0 ;i<Application->ComponentCount;i++)
      ListBox1->Items->Add(Application->Components[i]->ClassName());

Вот и ответ! Перебрать все компоненты, если, например, бызовый класс TForm, или можна привести через dynamic_cast к класу TForm - значит клас формы. И делай с ним что хочеш через указатель!

А далее пожалуйста сами! На вопросы: "А как узнать клас родитель?","Как привести к типу... ?" отвечать не буду.
Это я видел ))) Но у меня ComponentCount = 2
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34477189
Lexogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Begem0t!k
Это я видел ))) Но у меня ComponentCount = 2

А узнать почему так при наличии множества форм не пробовали? Зайдите в меню Project->Options на вкладку Forms и посмотрите сколько форм в списке Auto-create forms, а сколько Available forms. Делайте выводы.
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34480690
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexogen Begem0t!k
Это я видел ))) Но у меня ComponentCount = 2

А узнать почему так при наличии множества форм не пробовали? Зайдите в меню Project->Options на вкладку Forms и посмотрите сколько форм в списке Auto-create forms, а сколько Available forms. Делайте выводы.
Все 90 там
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34481343
Lexogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Begem0t!kВсе 90 там
Не уточните где именно, в списке Auto-create, или в Available forms?

При создании формы методом класса TApplication в главном cpp файле программы форма добавляется в свойство components этого класса. Т.е. сколько экземпляров классов форм создалось, столько будет и ComponentCount. Если же формы не являются Auto-create, то в классе TAppplication присутсвовать не будут. Если же форма не Auto-create, и создалась с помощью метода класса TApplication CreateForm, то только тогда указатель на класс формы будет присутствовать в классе TApplication.

Например:
Одна форма (главная) в списке Auto-create, все остальные в Available forms. При старте приложения метод ComponnentCount вернет количество 2.
Во время работы приложения создадим еще одну форму через Application->CreateForm. Тогда ComponnentCount будет инкриментированно.

Т.е. В Вашем случае для всех созданных форм можна что то менять через класс TApplication (перебор Components), а для еще не созданных можна иметь или ini-файл с общими настройками форм, который они при создании сами будут подчитывать и в методе Create класса формы будут устанавливаться необходимые свойста.
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34482169
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexogen Begem0t!kВсе 90 там
Не уточните где именно, в списке Auto-create, или в Available forms?

При создании формы методом класса TApplication в главном cpp файле программы форма добавляется в свойство components этого класса. Т.е. сколько экземпляров классов форм создалось, столько будет и ComponentCount. Если же формы не являются Auto-create, то в классе TAppplication присутсвовать не будут. Если же форма не Auto-create, и создалась с помощью метода класса TApplication CreateForm, то только тогда указатель на класс формы будет присутствовать в классе TApplication.

Например:
Одна форма (главная) в списке Auto-create, все остальные в Available forms. При старте приложения метод ComponnentCount вернет количество 2.
Во время работы приложения создадим еще одну форму через Application->CreateForm. Тогда ComponnentCount будет инкриментированно.

Т.е. В Вашем случае для всех созданных форм можна что то менять через класс TApplication (перебор Components), а для еще не созданных можна иметь или ini-файл с общими настройками форм, который они при создании сами будут подчитывать и в методе Create класса формы будут устанавливаться необходимые свойста.

Все формы в разделе AutoCreate!
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34482454
Lexogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Begem0t!k
Все формы в разделе AutoCreate!

Шаманство :)
...
Рейтинг: 0 / 0
Как перебрать все формы проекта ????
    #34482465
Dronord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотри в стороны decktop-функций. Не помню только, можно ли было выяснить детей окна. Вроде как да. %)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как перебрать все формы проекта ????
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]