Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Взятие значение из Edit Controle... Переменная категории value и типа double 
V
    Опции темы
metoflex
  Дата 19.8.2010, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я создал переменную peremennay на Edit Controle категории value и типа double...

Как я понимаю, если я введу любое десятичное число в Edit Controle, то оно автоматически передастся в peremennay, что впринципе происходит(смотрел через отладку). Но в созданную переменную типа double значение из этой переменной не копируется впринципе!

т.е.

Код

double k=0;
k=peremennay;


После выполнения данного кусочка (При всём том что через отладку в peremennay лежит единица ( в соответствующее поле Edit Controle ввёл единицу), в переменной k, так и остаётся лежать ноль...)

Помогите пожалуйста, разобраться в данной проблеме!

Спасибо!



P.S.

Для своего Edit Control UpdateData(TRUE); прописывал...

Это сообщение отредактировал(а) metoflex - 19.8.2010, 01:03
PM MAIL   Вверх
Earnest
Дата 19.8.2010, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(metoflex @  19.8.2010,  02:02 Найти цитируемый пост)
Как я понимаю, если я введу любое десятичное число в Edit Controle, то оно автоматически передастся в peremennay

Автоматически ничего не бывает, программист должен это понимать. 
В функции DoDataExchange должно быть предложение, связывающее твою переменную с контролом, в твоем случае - DDX_Text (pDX, [IDC_EDITID], peremennay);
Если ты создаешь переменные через визард, он эти строчки и генерирует - вот и весь автоматизм.
UpdateData (TRUE) считывает значения переменных из контролов, прописанных в DoDataExchange, UpdateData(FALSE) - наоборот, заполняет контролы значениями из переменных. Но о вызове этой функции ты должен позаботиться сам - по-умолчанию она вызывается только при инициализации диалога (с FALSE) и на onOK (с TRUE). Все остальное - дело твое.

А вот k никак не связана с контролом. Чтобы получить значение, приведенный код (k=peremennay) нужно выполнить.


--------------------
...
PM   Вверх
metoflex
  Дата 19.8.2010, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я всё понимаю, вот у меня как раз связываются переменные с контролами:

Код

void Ccalc_teachDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
    DDX_Text(pDX, IDC_EDIT4, D);
    DDX_Text(pDX, IDC_EDIT6, B2);
    DDX_Text(pDX, IDC_EDIT7, C2);
    DDX_Text(pDX, IDC_EDIT8, A2);
    DDX_Control(pDX, IDC_EDIT2, list2);
}


UpdateData(TRUE);

у меня в данных контролах прописан и через отладку (Debug), при вводе в определённые контролы значения, они значатся в переменных D,A2,B2,C2-соответственно, но скажем следующая строчка:

Код


double y=0;

y=A2+B2+C2+D;



после прохождения данногог куска в y остаётся лежать нуль, хотя в переменных D,A2,C,2,B2 значения лежат те которые я ввёл в контролы...

В чём у меня ошибка!?

Спасибо Огромное!

Это сообщение отредактировал(а) metoflex - 19.8.2010, 19:57
PM MAIL   Вверх
Earnest
Дата 20.8.2010, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(metoflex @  19.8.2010,  20:57 Найти цитируемый пост)
при вводе в определённые контролы значения, они значатся в переменных D,A2,B2,C2-соответственно

Ты немного невнятно выражаешься. От ввода в контролы значение в переменные попасть не может - только после выполнения DoDataExchange, может ты это и имеешь ввиду, но невнятно.

Цитата(metoflex @  19.8.2010,  20:57 Найти цитируемый пост)
после прохождения данногог куска в y остаётся лежать нуль, хотя в переменных D,A2,C,2,B2 значения лежат 

Это не может быть, потому что не может быть никогда. Разве что сумма этих значений дает 0. Отладчик в зубы и внимательно все проверяй. В отладчике можно выполнить выражение - ну это самое A2+B2+C2+D. Может, y-ков у тебя два... как я понимаю, между
double y=0; и присваиванием есть еще какой-то код.
В общем, ищи ошибку.


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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