Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > вопрос по Delphi


Автор: Nastik 28.5.2006, 17:05
Добрый день, помогите, пожалуйста разобраться. Если я пишу в программе

If (Edit1.Text='153000,00') then ...

программа не выдает ошибки и начинает работать, но при проверке работает не правильно, если вводить в поле Edit1 значение 153000,00 , выдает результат, который должен появляться, если это не так. Может я не правильно записываю Edit1.Text='153000,00'?  smile  

Автор: Nastik 28.5.2006, 18:17
Код

procedure TForm1.Button1Click(Sender: TObject);
var x,y,z,a,b,c: integer; //x,y,z - правильно, a,b,c - не правильно
Str :integer;
begin
if ((StrToInt(Edit4.Text)=153000) and (StrToInt(Edit5.Text)=43350) and (StrToInt(Edit6.Text)=23587) and (StrToInt(Edit7.Text)=9356) and (StrToInt(Edit8.Text)=1880) and (StrToInt(Edit9.Text)=500) and (StrToInt(Edit10.Text)=231673))
then x:=1 else a:=1;
if ((StrToInt(Edit11.Text)=100000) and (StrToInt(Edit12.Text)=16387) and (StrToInt(Edit13.Text)=116387))
then y:=1 else b:=1;
if ((StrToInt(Edit1.Text)=231673) and (StrToInt(Edit2.Text)=115286) and (StrToInt(Edit3.Text)=116387))
then z:=1 else c:=1;
Label16.Visible:=true;
if ((x=1) and (y=1) and (z=1)) then (Label16.Caption:='Задание выполнено правильно.') else (Label16.Caption:='Задание выполнено не правильно.');
Label17.Visible:=true;
if (a=1) then Label17.Caption:='Ошибка допущена в поле собственность.';
Label18.Visible:=true;
if (a=1) then Label18.Caption:='Ошибка допущена в поле задолженность.';
Label19.Visible:=true;
if (a=1) then Label19.Caption:='Ошибка допущена в поле собственный капитал.';
end;

ошибок нет, но работает не правильно  smile  где ошибка? 

Автор: comtat 21.6.2006, 16:02
Во-первых код поправь вот
Код

procedure TForm1.Button1Click(Sender: TObject);
var 
    x,y,z,a,b,c: integer; //x,y,z - правильно, a,b,c - не правильно
    Str :integer;
begin
if ((StrToInt(Edit4.Text)=153000) and (StrToInt(Edit5.Text)=43350) and 
    (StrToInt(Edit6.Text)=23587) and (StrToInt(Edit7.Text)=9356) and 
    (StrToInt(Edit8.Text)=1880) and (StrToInt(Edit9.Text)=500) and 
    (StrToInt(Edit10.Text)=231673)) 
then  x:=1 
else a:=1;

if ((StrToInt(Edit11.Text)=100000) and (StrToInt(Edit12.Text)=16387) and 
  (StrToInt(Edit13.Text)=116387)) 
then y:=1 
else b:=1;

if ((StrToInt(Edit1.Text)=231673) and (StrToInt(Edit2.Text)=115286) and 
  (StrToInt(Edit3.Text)=116387))
then z:=1 
else c:=1;

Label16.Visible:=true;
if ((x=1) and (y=1) and (z=1)) then
  (Label16.Caption:='Задание выполнено правильно.') 
else (Label16.Caption:='Задание выполнено не правильно.');

if (a=1) then
 begin
  Label17.Visible:=true;
  Label18.Visible:=true;
  Label19.Visible:=true;
  Label17.Caption:='Ошибка допущена в поле собственность.';
  Label18.Caption:='Ошибка допущена в поле задолженность.';
  Label19.Caption:='Ошибка допущена в поле собственный капитал.';
 end;
end;


Во- вторых при вводе 
если ты вводишь в виде 1000,00
то сравнивай так 
Код

if (StrToFloat(Edit11.Text)=1000,00) then ....

 

Автор: sexton 21.6.2006, 17:20
На крайний случай есть функция сравнения строк AnsiSameText (почитай хелп если надо). 

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