Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Аннулирование значений


Автор: Voker57 9.1.2004, 21:13
У меня ситуация такая. Я беру данные из EditBox так:
Код
void Plot::OnOkk()
{
UpdateData(true);
Invalidate();
CDialog::OnOK();
}

После этого они становятся равны тому, что в нем написано (проверял).
Выполняю с ними вычисления в другом месте вот так:
Код
Plot plot;
for (int iraq = 0; iraq < 1023; iraq++)
{
 pDC->SetPixel(iraq,iraq*plot.m_n + plot.m_z,RGB(0,0,0));
};

Но к этому моменту (тоже проверял) их значения уже равны 0 wow.gif !
Мистика!
Подскажите please кто знает куда деваются значения...

Автор: mr.DUDA 9.1.2004, 23:30
Цитата
Plot plot;
for (int iraq = 0; iraq < 1023; iraq++)

Что бы это значило ?...
Если "Plot" - это имя класса окна диалога, то нужно вызвать plot.DoModal, и цикл поместить в один из методов (например, обработчик события) класса Plot. Если же нет - то что такое Plot и в чём тогда смысл Plot::OnOk ?

Автор: Voker57 10.1.2004, 21:01
Постараюсь объяснить.
Plot-это имя класса окна диалога.
Цитата
 
Код

Plot plot;
for (int iraq = 0; iraq < 1023; iraq++)
{
pDC->SetPixel(iraq,iraq*plot.m_n + plot.m_z,RGB(0,0,0));
};

Этот код находится в обработчике события OnDraw, поэтому в нем нельзя вызывать DoModal. Его я вызываю из обработчика вызова пункта в меню.

Автор: Nastya 12.1.2004, 15:20
Создай в том классе, где этимим данными пользуешься две дополнительные переменные, если
Диалог модальный
После doModal возьми из деалога значение переменных и помести в созданные дополнительные
если нет, то делай это по событию Change этитов.
Может это не очень рационально, но работать будет

Автор: CaptainFlint 12.1.2004, 15:39
Voker57
Честно говоря, как-то сумбурно ты всё описал, но насколько я понял, ошибка в следующем: ты в обработчике OnDraw создаёшь новую переменную plot! Естественно, она будет нулевой. Тебе надо сохранить данные, полученные в первом участке кода, в глобальной переменной или члене класса, и использовать потом эти значения, где надо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)