Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Как проверить введены ли данные в edit?


Автор: DenRip 16.6.2007, 11:10
На форме 10 Editov, если они все пустые то выходит сообщение 'Вы не ввели ни одного параметра, продолжить???'

Если хоть один заполнен то выполнение кода......???

Автор: gambit 16.6.2007, 11:36
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
if (edit1.text='') and (edit2.text='') and (edit3.text='') and (edit4.text='') and (edit5.text='') and (edit6.text='') and (edit7.text='') and (edit8.text='') and (edit9.text='') and (edit10.text='') then
begin
if MessageDlg('Вы не ввели ни одного параметра, продолжить???', mtConfirmation, [mbOk, mbCancel], 0) = mrOK then qwe;
end
else
begin
qwe;
end;
end;

procedure qwe;
begin
showmessage('hello');
end;

Автор: DenRip 16.6.2007, 13:06
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
if (edit1.text='') and (edit2.text='') and (edit3.text='') and (edit4.text='') and (edit5.text='') and (edit6.text='') and (edit7.text='') and (edit8.text='') and (edit9.text='') and (edit10.text='') then
begin
if MessageDlg('Вы не ввели ни одного параметра, продолжить???', mtConfirmation, [mbOk, mbCancel], 0) = mrOK then form2.show;
end
else
begin
form3.show;
end;
end.


Не ругается и ни чего не происходит!! что тут не так??

Автор: Guedda 16.6.2007, 13:11
gambit, у тебя код не заработает, так как процедура qwe стоит ниже по коду, чем процедура её вызвавшая.

Автор: mr.Anderson 16.6.2007, 13:17
Используйте IsEmpty().

Автор: Rodman 16.6.2007, 15:43
Код

procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
  for i:=1 to 10 do
    if(Length(TEdit(FindComponent('Edit' + IntToStr(i))).Text)=0)then
    begin
      ShowMessage('Enter some in '+IntToStr(i)+' Edit');
      Exit;
    end;
  Form3.show;
end;

Цитата(DenRip @  16.6.2007,  12:06 Найти цитируемый пост)
Не ругается и ни чего не происходит!! что тут не так?? 

а пошагово проверял???

Автор: lukas 16.6.2007, 18:42
DenRip, 

так дык... условие не правильно поставлено...  smile , логику нужно развивать...

не and а or

У тебя условие: если все едиты пустые, то тогда выводить сообщение...

а нужно, если хотя бы один пустой, выводить сообщение...  smile 

Но я бы посоветовал код Rodman, (а если едитов будет 20, 30, 40, ты будешь все вручную писать...?)

Автор: DenRip 17.6.2007, 15:37
н
Цитата

е and а or

Как 
gambit,  подсказал

Цитата

я бы посоветовал код Rodman

Да это грамотно будет, спасибо!! бум использовать!!!!
А теперь я позволю себе задать вам нескроный вопрос!

мне надо запретить ввод текста в едиты, только цифры, ??? 
Во как!??

Автор: Rodman 17.6.2007, 16:34
Цитата(DenRip @  17.6.2007,  14:37 Найти цитируемый пост)
мне надо запретить ввод текста в едиты, только цифры, ??? 

Код

procedure TForm1.FormCreate(Sender: TObject);
var i, j:Integer;
    st:String;
begin
  for j:=1 to 10 do
    for i:=Length(TEdit(FindComponent('Edit' + IntToStr(j))).Text) downto 1 do
      if not(TEdit(FindComponent('Edit' + IntToStr(j))).Text[i] in ['0'..'9'])then
      begin
        st:=TEdit(FindComponent('Edit' + IntToStr(j))).Text;
        Delete(st, i, 1);
        TEdit(FindComponent('Edit' + IntToStr(j))).Text:=st;
      end;
end;

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