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

Тема в разделе "Delphi - Система", создана пользователем FreeZ, 1 ноя 2007.

Статус темы:
Закрыта.
  1. FreeZ

    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);
     
  2. Silver Wind

    Silver Wind Гость

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

    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);
     
  4. Silver Wind

    Silver Wind Гость

    Итак предположим, что все едиты лежат на Panel1. Тогда каждому едиту в порядке очередности проставляем его номе в свойство Tag. Ну а обход и проверку делаем, например следующим образом:
    Код (Text):
    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;
     
  5. FreeZ

    FreeZ Гость

    ок спасиб B)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей