Страница 1 из 1

не выполняются циклы

СообщениеДобавлено: 01.09.2015 10:18:24
sqrt314
Доброго времени суток, возникла проблема при выполнении кода
while not Dbf1.EOF do
begin
Edit1.text:=Dbf1.FieldByName('GL_ID').AsString;
Dbf1.Next;
end;

цикл не выполняется, пробовал for таже проблема в Edit не попадают значения из таблицы gl_id, если же использовать без цикла то все корректно работает,
подскажите в чем может быть причина и как исправить ?

Re: не выполняются циклы

СообщениеДобавлено: 01.09.2015 10:37:59
serg_iv
последнее поле из таблицы будет в едите после выполнения цикла. А оно возможно просто пустое.

Re: не выполняются циклы

СообщениеДобавлено: 01.09.2015 10:38:34
sts
перед while not Dbf1.EOF do

Dbf1.First стоит?

Re: не выполняются циклы

СообщениеДобавлено: 01.09.2015 10:46:34
sqrt314
Да Dbf1/First стоит, точно если подождать то он выведет последнее значение в edit, но как сделать, что бы он визуализировал свои действия ?? т.е. что бы выполнял данное действие, а затем делал dbf1.next, что бы оно отображалось в BDgrid ?

Re: не выполняются циклы

СообщениеДобавлено: 01.09.2015 11:11:11
serg_iv
попробуйте Мемо использовать заместо едита
Код: Выделить всё
Memo1.Lines.Add(Dbf1.FieldByName('GL_ID').AsString);

по крайней мере увидите значения

Re: не выполняются циклы

СообщениеДобавлено: 01.09.2015 12:29:30
alexs
sqrt314
Может быть вы имели ввиду:
while not Dbf1.EOF do
begin
Edit1.text:=Edit1.text + Dbf1.FieldByName('GL_ID').AsString;
Dbf1.Next;
end;

Re: не выполняются циклы

СообщениеДобавлено: 01.09.2015 12:49:34
serg_iv
alexs писал(а):sqrt314
Может быть вы имели ввиду:
while not Dbf1.EOF do
begin
Edit1.text:=Edit1.text + Dbf1.FieldByName('GL_ID').AsString;
Dbf1.Next;
end;

нет не это. Значений может быть много, удобнее их просмотреть именно в мемо. И да я понимаю, что и мемо может не хватить, надеюсь это не тот случай

Re: не выполняются циклы

СообщениеДобавлено: 01.09.2015 12:51:45
sts
я понял, автор ожидал что по мере прохода по датасету будут меняться значения в Edit1, а вот хрен, отрисовка не будет проходить, в итоге Edit1 покажет последнее значение.
Application.ProcessMessages (или как там) надо в цикл засунуть (для винды, как в линухах qt\gtk работают не знаю)

Re: не выполняются циклы

СообщениеДобавлено: 01.09.2015 13:02:45
sqrt314
точно Application.ProcessMessages помогло, я просто не хотел нагружать вас лишним кодом поэтому просто в цикле прописал edit, без Application.ProcessMessages в memo так же цикл не писал записей, а сейчас все гуд, спасибо вам форумчане =)

Re: не выполняются циклы

СообщениеДобавлено: 01.09.2015 16:24:34
alexs
Ну тогда просто DBGrid подключить - и не морочить голову.