|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] С++ Builder | Обновление Form2 |
|
C/C++ - [решено] С++ Builder | Обновление Form2
|
Будем жить, Маэстро... Сообщения: 6694 |
Ребята, такой простой вопрос... Создал две формы, всё отлично, но вот загвоздка, по кнопке "Показать решение" - вызывается вторая форма Form2 на ней есть Label1, куда и выводится решение. Всё данные типа int объявлены в файле .h первой формы, в секции private:. Когда изменяется значение результата, нужно НЕ закрывать Form2, а потом заново жать "Показать решение", а по нажатию кнопки "Обновить" расположенной на Form2, как-то заставить обновиться результат
Есть такой код, но наверное он не тот... InvalidateRect(0, NULL, true); И второй вопрос: У меня две формы... с формы один на форму два Form2->Label1->Caption = "........ здесь вывод....."; - выводится, всё в порядке, а как добраться до данных, которые в секции private: файле.h Form1, с Form2. Правильно ли будет создать функцию-друг getValue(); и через неё? |
|
Отправлено: 14:41, 13-08-2006 |
![]() Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать Drongo
Собственно не совсем понятно что и куда,но... Цитата:
|
|
------- Отправлено: 15:51, 15-08-2006 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Вопрос вот какой:
Есть Form1 В Form1.h объявлены в секции private: int a, b, c; // некоторые данные на форме есть компоненты Edit1 - на Form1 ввод первого числа. Edit2 - на Form1 ввод второго числа. Label1 - на Form1, если в расчётах не используются 7-значные и более цифры. Button1 - на Form1, кнопка производит расчёт и выводит на Label1 результат и решение, у меня называется она "Показать решение". CheckBox1 - на Form1, если не выбран значит вывести на Form1, если выбран, создать Form2 и вывести на неё. Button1 - эта кнопка выводит решение на Label1. Вот функция: Всё работает! Форма создаётся, решение выводится, но загвоздка вот в чём... Поскольку потенциальный юзер опять вводит данные, то и само собой меняются введённые цифры и результат расчёта! На Form2 такие компоненты: Button1 - кнопка обновить результат "Обновить" Button2 - кнопка выхода "Выход" Label1 - куда выводится решение Жать кнопку выход, а потом заново, "Показать решение" не привлекает! А как сделать, чтобы при нажатии на кнопку "Обновить" на Form2 решение обновлялось? Посоветовали UpdateWindows(), (Ею пользоваться не умею!!!), но там возвращается тип int , а если нужно несколько? Как её правильно вызвать и то ли это? Я ещё вот что придумал, подскажите правильно ли, или есть более простое решение: В Form1.h в секции public: объявил функцию GetValue(); //Пользовательская фунция В этой функции поместить всё то, что было в обработчике Button1 на Form1 и потом, когда нужно из Form2 обновить, нажимая кнопку "Обновить", вызывать так: поскольку эта функция является открытым членом, и имеет доступ к данным-членам в Form1.h, то и сможет получится обновление!!!! (Форму Form1 не хочется делать большой, так как компонентов мало, остальное пространство только место занимает) А потом, когда жму "Обновить", нужно чтобы предыдущая форма уничтожалась - ((Какой должен быть код для этого?) вроде delete Form2, но как его организовать, то есть проверку того, что Form2 уже есть!) - и создавалась новая или не уничтожалась старая, а только результат обновлялся, у меня создаётся их столько сколько жму кнопку "Обновить"... Может сюда нужно добавить чего то? if(Form2) // наверное не так? Потому что так не работает, Подскажите пожалуйста!!! delete Form2; А если мне нужно в переменную типа unsigned long a; поместить значение из вот тут как преобразовать в unsigned long? Вот так в int , в double - ToDouble(); а в unsigned long как? И как контролировать чтобы при сложении, умножении числа не выходили за диапазон, unsigned long не спасает! Хотелось бы знать, как можно это держать под контролем, не создавая что-то типа char[], а потом использовать atol? |
------- Последний раз редактировалось Drongo, 17-06-2008 в 20:04. Причина: Оформил тегами свой код... Отправлено: 03:15, 22-08-2006 | #3 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Возможно идея работать со второй формой как с модальной пособит?
|
------- Отправлено: 08:29, 22-08-2006 | #4 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Вместо Show() использовать ShowModal() ???
|
|
------- Отправлено: 16:13, 24-08-2006 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C++ Builder 6 | XCodeR | Программирование и базы данных | 29 | 27-04-2013 09:54 | |
C++Builder | Guest | Программирование и базы данных | 3 | 17-02-2004 22:45 | |
C++ Builder 5 | born2die | Программирование и базы данных | 3 | 27-08-2003 23:28 | |
C++ Builder | Gram | Программирование и базы данных | 7 | 11-08-2003 10:22 | |
C++ Builder | Gram | Программирование и базы данных | 3 | 27-05-2003 20:01 |
|