Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 1

Почему из модальной формы значение не перегружаются в основную форму?

09.06.2016, 00:08. Показов 705. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//---------------------------------------------------------------------------
 
#ifndef ClassH
#define ClassH
//---------------------------------------------------------------------------
class Convert{
    public:
    float Get;
    float USDinUAH;
    float USDinRUB;
    float USDinEUR;
 
    float RUBinUSD;
    float RUBinEUR;
    float RUBinUAH;
 
    float EURinUSD;
    float EURinRUB;
    float EURinUAH;
 
    float UAHinUSD;
    float UAHinRUB;
    float UAHinEUR;
 
 
 
    int UAHtoUSD(int X);
    int UAHtoRUB(int X);
    int UAHtoEUR(int X);
 
    int EURtoUSD(int X);
    int EURtoRUB(int X);
    int EURtoUAH(int X);
 
    int RUBtoUSD(int X);
    int RUBtoEUR(int X);
    int RUBtoUAH(int X);
 
    int USDtoUAH(int X);
    int USDtoRUB(int X);
    int USDtoEUR(int X);
 
};
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
#include "Class.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
 
//доллар в валюту
int Convert::USDtoUAH(int X){
Get = X*USDinUAH;
}
int Convert::USDtoRUB(int X){
Get = X*USDinRUB;
}
int Convert::USDtoEUR(int X){
Get = X*USDinEUR;
}
 
//рубль в валюту
int Convert::RUBtoUSD(int X){
Get = X*0.02;
}
int Convert::RUBtoEUR(int X){
Get = X*0.01;
}
int Convert::RUBtoUAH(int X){
Get = X*0.38;
}
 
 //евро в валюту
int Convert::EURtoUSD(int X){
Get = X*1.14;
}
int Convert::EURtoRUB(int X){
Get = X*75.64;
}
int Convert::EURtoUAH(int X){
Get = X*28.75;
}
 
 //гривна в валюту
int Convert::UAHtoUSD(int X){
Get = X*0.04;
}
int Convert::UAHtoRUB(int X){
Get = X*2.63;
}
int Convert::UAHtoEUR(int X){
Get = X*0.03;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "EditKurs.h"
#include "Class.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Convert kurs;
 
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
 : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
kurs.USDinUAH = StrToFloat(Edit1->Text);
kurs.USDinRUB = StrToFloat(Edit2->Text);
kurs.USDinEUR = StrToFloat(Edit3->Text);
 
 Form1->Close();
}
//---------------------------------------------------------------------------
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit3.h"
#include "Class.h"
#include "EditKurs.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
Convert test;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm3::Button1Click(TObject *Sender)
{
    {
int x;
x = StrToInt(Edit1->Text);
 
if(ComboBox1->ItemIndex == 3 && ComboBox2->ItemIndex == 0){
test.UAHtoUSD(x) ;
}
 
else if (ComboBox1->ItemIndex == 3 && ComboBox2->ItemIndex == 1){
test.UAHtoRUB(x) ;
}
 
else if (ComboBox1->ItemIndex == 3 && ComboBox2->ItemIndex == 2){
test.UAHtoEUR(x) ;
}
 
else if (ComboBox1->ItemIndex == 1 && ComboBox2->ItemIndex == 0){
test.RUBtoUSD(x) ;
}
 
else if (ComboBox1->ItemIndex == 1 && ComboBox2->ItemIndex == 2){
test.RUBtoEUR(x) ;
}
 
else if (ComboBox1->ItemIndex == 1 && ComboBox2->ItemIndex == 3){
test.RUBtoUAH(x) ;
}
 
else if (ComboBox1->ItemIndex == 2 && ComboBox2->ItemIndex == 0){
test.EURtoUSD(x) ;
}
 
else if (ComboBox1->ItemIndex == 2 && ComboBox2->ItemIndex == 1){
test.EURtoRUB(x) ;
}
 
else if (ComboBox1->ItemIndex == 2 && ComboBox2->ItemIndex == 3){
test.EURtoUAH(x) ;
}
 
else if (ComboBox1->ItemIndex == 0 && ComboBox2->ItemIndex == 3){
test.USDtoUAH(x) ;
}
 
else if (ComboBox1->ItemIndex == 0 && ComboBox2->ItemIndex == 1){
test.USDtoRUB(x) ;
}
 
else if (ComboBox1->ItemIndex == 0 && ComboBox2->ItemIndex == 2){
test.USDtoEUR(x) ;
}
 
else {
  test.Get = x;
 
}
 
Edit2->Text = FormatFloat("0.00",test.Get);
 
}
}
//---------------------------------------------------------------------------
 
void __fastcall TForm3::N1Click(TObject *Sender)
{
Form1->ShowModal();
}
//---------------------------------------------------------------------------
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2016, 00:08
Ответы с готовыми решениями:

Отследить возвращение с модальной формы на основную
Всем здравствуйте. Есть проект с двумя формами. Вызывая из первой формы вторую в немодальном режиме срабатывает событие FormDeactivate...

Qt передача данных из модальной формы в главную форму диалога
Не получается реализовать передачу данных из модальной формы при ее закрытие в главную форму приложения. Суть сигнал/слот понимаю, ...

Как добавить данные из модальной формы в главную форму с listview
Как добавить данные из модальной формы в главную форму с listview. Есть три edit на модальной форме. Данные из них нужно добавить в...

12
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
09.06.2016, 09:50
CupOfTru, и что вы тут пытаетесь передать не совсем понятно. вижу модальный вызов формы 1 но не вижу ничего что потребляло бы из нее данные. в любом случае все что делает форма 1 это сохраняет значения в объекте который не виден из других модулей без описания через extern
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
09.06.2016, 10:24
Я не силен в теории, но думаю, что ваши kurs и test хоть и принадлежат одному классу, имеют разные значения переменных. Я бы определение Convert kurs; вынес с Unit1.h_public, а вместо определения Convert test; в Unit3.cpp записал #define test Form1->kurs.
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
09.06.2016, 10:46
nick42
C++
1
#define test Form1->kurs
АД
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
09.06.2016, 10:48
vxg, не понял, простите.
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
09.06.2016, 11:14
nick42, такой фокус (подмена имени на конструкцию через дефайн) изначально является джокером, перевешивает чашу весов на которой лежат наши поступки в сторону сил зла и допустим как крайняя мера в случае если у вас 1001 модуль в каждом из которых 101 раз используется обозначение test и вы хотите все это поправить за 30 минут...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
09.06.2016, 11:25
Это, наверное, новая фишка в наших высших школах: пугать студентов дефайном (не раз уж встречаю...).
В файле ТС Unit3.cpp буквосочетание "test" используется 14 раз и только в качестве обращения к экземпляру класса Convert. Так где я нарушил каноны священного С++ ??
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
09.06.2016, 11:38
nick42, к сожалению я уже давно не студент да и не был им по этому профилю никогда. страх мой имеет как минимум такие корни: не множьте имена. если у вас 10 названий одного и того же это проблема. кроме того потом в другом проекте человек таким же образом бахнет в Form->test свойство и удивится что оно реагирует на многие вещи совсем не так как обычная переменная
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
09.06.2016, 11:42
Но в целом не возражаю; можно написать и так: test = Form1->kurs, и это будет спокойнее.
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
09.06.2016, 11:44
nick42, нет, это будет наверное еще хуже) так как такие присваивания нужно будет делать всякий раз когда нужно обновить значение в test. надо просто убрать test - если человек хочет работать с kurs пусть он работает с kurs разве это не логично?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
09.06.2016, 11:47
Цитата Сообщение от vxg Посмотреть сообщение
не множьте имена. если у вас 10 названий одного и того же это проблема
Вот с этим соглашусь безоговорочно. У начинающих программеров часто можно встретить общеупотребительные слова в качестве имен переменных и при этом без всяких индексов, - в "чистом" виде. А потом вопросы: почему не так работает, как я хотел. В таких случаях я иногда рекомендую поставить себя на место Компилятора или препроцессора и пробовать разобраться, что сам насочинял... .
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
09.06.2016, 12:01
Только мне показалось, что весь ужас, написанный в TForm3::Button1Click, можно записать гораздо проще:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void __fastcall TForm3::Button1Click(TObject *Sender)
{
    int (Convert::*func[4][4])(int) =
    {
        {0,  &Convert::USDtoRUB, &Convert::USDtoEUR, &Convert::USDtoUAH},
        {&Convert::RUBtoUSD, 0, &Convert::RUBtoEUR, &Convert::RUBtoUAH},
        {&Convert::EURtoUSD, &Convert::EURtoRUB, 0, &Convert::EURtoUAH},
        {&Convert::UAHtoUSD, &Convert::UAHtoRUB, &Convert::UAHtoEUR, 0}
    };
 
    int x = StrToInt(Edit1->Text);
    if(func[ComboBox1->ItemIndex][ComboBox2->ItemIndex])
    {
        (kurs.*func[ComboBox1->ItemIndex][ComboBox2->ItemIndex])(x);
    }
 
    Edit2->Text = FormatFloat("0.00",kurs.Get);
}
?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
09.06.2016, 12:09
..не только. Что ужас - это я просто стеснялся написать (а так быстро всё это переписать на "не ужас" пока ещё таланта не хватает... ).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2016, 12:09
Помогаю со студенческими работами здесь

Открыть основную форму, а 2-ю и 3-ю формы закрыть
Здравствуйте как сделать так чтоб с кнопками(button находиться в form3) открывалось основной форм(form1) а остальные(form2, form3)...

Почему не значение из переменой не берется из формы 2 в форму 3
public partial class Form2 : Form { public string text=&quot;smth&quot;; } public partial class Form3: Form { ...

Исправить код так, чтобы из формы добавления данные заносились в основную форму
Помогите, пожалуйста, исправить ошибку в форме так, чтобы из формы добавления данные заносились в основную форму. Проект приложен ниже. ...

Вызов модальной формы из модальной, нужно:закрытие последней и не закрытие первой.
1. Вызываю модальную форму из главной формы (немодальной). 2. Вызываю другую модальную форму из первой (п.1) модальной формы. 3....

Как передать значение переменной дочерней формы в основную
Добрый день народ. Подскажите пожалуйста, как можно передать данные переменной дочерней формы в основную. Например банальный пример, я ввел...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru