Теперь постараемся понять следующее – информация вводимая по средствам полей ввода Edit, RichEdit, Memo и т д является текстовой. Поэтому в случае когда неоходимо получит результат расчёта зависящий от параметров вводимых по средствам этих объектов возникает проблема того что компилятор выдаёт ошибку в примере типа
Var
Summa : integer;
Begin
Summa := Edit1.text + Edit2.Text;
End;
Естественно подобный код не может быть скомпилирован так как к численной переменной приравнивается сумма двух текстовых значений....
Итак необходимо конвертировать информацию из текста в число.
Для этого в Delphi существует минимум три способа :
Val(string, integer, errorkod) – вариант с реакцией на ошибку. – если errorkod = 1 значит текстовая информация string не может быть конвертирована в число integer. Это может быть в случае если в string является каким либо текстом....
И наиболее распространённые команды:
StrToInt(string) и StrToFloat(string);
Пример использования
Var
I,j : = integer;
Begin
I := StrToInt(Edit1.Text);
J := StrToFloat(Edit2.Text);
End;
Пример программы с использованием этих команд
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
o,p,prum: real;
pom:string;
k:integer;
begin
{
// prum:=StrToFloat(Edit1.text);
val(Edit1.text,prum,k);
if k=0 then
begin
o:=3.14 * prum;
p:=3.14 * prum * prum /4;
pom:=FloatToStr(o);
Label2.caption:=pom;
pom:=FloatToStr(p);
Label3.caption:=pom;
end
else
MessageDlg('Error',mtInformation,[mbok],0);
end;
end.
Жду вопросов если их нет то это означает два варианта или всё понятно или никто не читает ...
|