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

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

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

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

Проверка Edit'ов

  • Автор темы FreeZ
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

FreeZ

Как зделать так, чтобы не проверять каждый Едит, например :

дано 12 едитов, нужно зделать проверку, чтобы каждый едит не был пустой, как зделать проще чем так ?

If Edit1.Text <> '' then c1:=StrToint(Edit1.Text);
if Edit2.Text <> '' then c2:=StrToInt(Edit2.Text);
if Edit3.Text <> '' then c3:=StrToInt(Edit3.Text);
If Edit4.Text <> '' then c4:=StrToint(Edit4.Text);
if Edit5.Text <> '' then c5:=StrToInt(Edit5.Text);
if Edit6.Text <> '' then c6:=StrToInt(Edit6.Text);
If Edit7.Text <> '' then c7:=StrToInt(Edit7.Text);
if Edit8.Text <> '' then c8:=StrToInt(Edit8.Text);
if Edit9.Text <> '' then c9:=StrToInt(Edit9.Text);
If Edit10.Text <> '' then c10:=StrToInt(Edit10.Text);
if Edit11.Text <> '' then c11:=StrToInt(Edit11.Text);
if Edit12.Text <> '' then c12:=StrToInt(Edit12.Text);
 
S

Silver Wind

Если имеется в виду как перебрать все едиты не обращаясь к ним по имени, то можно пройтись по свойству Components, той компаненты, на которой эти контролы лежат.
 
F

FreeZ

Да, я понял, но, допустим, мне например нужно следущие :
13 едитов , нужно, чтобы в кажом стоояло число иначе выйти из цыкла и выдать сообщение об ошибки, как мне организовать такую проверку ?
Не подскажите код? B)

вот как я зделал :

If Edit1.Text <> '' then c1:=StrToint(Edit1.Text);
if Edit2.Text <> '' then c2:=StrToInt(Edit2.Text);
if Edit3.Text <> '' then c3:=StrToInt(Edit3.Text);
If Edit4.Text <> '' then c4:=StrToint(Edit4.Text);
if Edit5.Text <> '' then c5:=StrToInt(Edit5.Text);
if Edit6.Text <> '' then c6:=StrToInt(Edit6.Text);
If Edit7.Text <> '' then c7:=StrToInt(Edit7.Text);
if Edit8.Text <> '' then c8:=StrToInt(Edit8.Text);
if Edit9.Text <> '' then c9:=StrToInt(Edit9.Text);
If Edit10.Text <> '' then c10:=StrToInt(Edit10.Text);
if Edit11.Text <> '' then c11:=StrToInt(Edit11.Text);
if Edit12.Text <> '' then c12:=StrToInt(Edit12.Text);
if Edit13.Text <> '' then c13:=StrToInt(Edit13.Text) else Messagebox(0,'Не введен штрихкод!','Fatal Error',0);
 
S

Silver Wind

Итак предположим, что все едиты лежат на Panel1. Тогда каждому едиту в порядке очередности проставляем его номе в свойство Tag. Ну а обход и проверку делаем, например следующим образом:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var c:array[1..13] of integer; i,ind,res:integer; flag:boolean; str:string;
begin
flag:=true;
for i:=0 to Panel1.ControlCount-1 do
if (Panel1.Controls[i] is TEdit)
then begin
ind:=(Panel1.Controls[i] as TEdit).Tag;
str:=(Panel1.Controls[i] as TEdit).Text;
if TryStrToInt(str,res)
then c[ind]:=res
else begin flag:=false; break; end;
end;
if not flag then Messagebox(0,'Не введен штрихкод!','Fatal Error',0);
end;
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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