Показать сообщение отдельно
Старый 27.03.2012, 15:57   #3
reyn90
Нуждающийся
 
Регистрация: 12.10.2009
Сообщений: 66
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Неработает код

Сообщение от ViNT Посмотреть сообщение
Не знаю, как на счет вычислительного кода, но FormGetValue используется для получения позиции Gauge, он не предназначен для получения значений из TextField. Нужно использовать FormGetText.
Исправил на
program complex;
var n11,n22,n1,n1j,n2,n2j,op,otvet:integer;
     d1,m1,d2,m2,res1,res2:integer;
     oper,itog1,itog2,d11,m11,d22,m22:string;
     cl,cm,resh:command;
begin
n11:=FormAddString('N1');
n1:=FormAddTextField('deystvit','0',50,TF_NUMERIC);
n1j:=FormAddTextField('+j','0',50,TF_NUMERIC);
n22:=FormAddString('N2');
n2:=FormAddTextField('deystvit','0',50,TF_NUMERIC);
n2j:=FormAddTextField('+j','0',50,TF_NUMERIC);
op:=FormAddTextField('operaciya','-',50,TF_ANY);

ShowForm;

d11:=FormGetText(n1);
m11:=FormGetText(n1j);
d22:=FormGetText(n2);
m22:=FormGetText(n2j);
oper:=FormGetText(op);

d1:=StringToInteger(d11);
d2:=StringToInteger(d22);
m1:=StringToInteger(m11);
m2:=StringToInteger(m22);

resh:=CreateCommand('reshit',CM_SCREEN,2);
AddCommand(resh);
repeat
cl:=GetClickedCommand;
until cl=resh;



if oper='+' then
begin
res1:= d1 + d2;
res2:= m1 + m2;
end;

if oper='-' then
begin
res1:=d1-d2;
res2:=m1-m2;
end;



itog1:= integerToString(res1) ;
itog2:= integerToString(res2) ;

otvet:=FormAddString(itog1+'+j'+itog2);
ShowForm;

 cm := createCommand('Exit', CM_OK, 1);
    addCommand(cm);
    repeat
      delay(100);
    until getClickedCommand = cm;

end.
а ответ 0+j0
Может условие if неработает
Да нет. Убрал Условие if оставив лишь операции сложения а он всё равно мне нули показывает.

Последний раз редактировалось reyn90, 27.03.2012 в 16:20. Причина: Предположение
(Offline)
 
Ответить с цитированием