• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема С Создаными Динамически Edit'ами

  • Автор темы Xatiko
  • Дата начала
X

Xatiko

Доброго времени суток!
Подскажите в таком вопросе:
На форме есть memo и buton, в memo мы вводим число нажимаем на buton и создаются edit'ы столько сколько мы указали. Работает все хорошо, но мне надо производить арифметические действия с edit'ами. Например memo2.text:=edit1+edit2; .
Код:

Код:
procedure TForm1.Button1Click(Sender: TObject);

var Lab: Array of TLabel;
Ed: Array of TEdit;
i: Integer;
n: integer;
begin
n := 500;
SetLength(Lab, n+1);
SetLength(Ed, n+1);

for i:=1 to strtoint(memo1.Text) do
begin
Lab[i] := TLabel.Create(self);
Lab[i].Parent := self;
Lab[i].Left := 10;
Lab[i].Top := i*30+20;
Lab[i].Caption := 'Этикетка'+IntToStr(i);
Ed[i] := TEdit.Create(self);
Ed[i].Parent := self;
Ed[i].Left := 150;
Ed[i].Top := i*30+20;
Ed[i].Text := 'Поле ввода '+IntToStr(i);
Ed[i].Name:= 'Edit'+IntToStr(i);
end;
end;
Запись типо: memo2.text:=IntToStr(StrToInt(Edit1 .text)+StrToInt(Edit2.text));
Не пойдет выдает ошибку " is not a valid integer value"
Просьба откликнуться))
 

Вложения

  • 111.jpg
    111.jpg
    15,7 КБ · Просмотры: 499
  • 222.jpg
    222.jpg
    5,6 КБ · Просмотры: 482
M

-master-

Вам переводчик нужен, это не в этом форуме, идите на форум переводчиков.
 
S

sinkopa

Запись типо: memo2.text:=IntToStr(StrToInt(Edit1 .text)+StrToInt(Edit2.text));
Не пойдет выдает ошибку " is not a valid integer value"
Просьба откликнуться))
Ошибка говорит о том, что значение введенное в Ваш TEdit, не является допустимым целым числом.
Вот это
Код:
Ed[i].Text := 'Поле ввода '+IntToStr(i);
зачем Вы делаете? Это точно не целое... :)
Для проверки на правильность вводимых в TEdit значений, воспользуйтесь функцией TryStrToInt
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
a,b: Integer;
begin
if TryStrToInt(Edit1.Text,a) and TryStrToInt(Edit2.Text,b) then
Memo2.Text := IntToStr(a+b)
else
begin
ShowMessage('Введенные значения не являются целыми числами!');
Exit;
end;
end;
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!