Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DBGrid и PageControl [D7, WinXP]


Openfire ©   (2005-03-03 13:45:00) 

Добрый день!
Проблема такая: есть PageControl c тремя закладками (T,B,S), на закладке B расположен DBGrid3 при нажании DblClick выполняется следующее:
  dcl:=true; -- для отловления события что нажали DblClick
  Edit5.Enabled:=True;
  Edit5.Text:=DBGrid3.SelectedField.AsString;
  CheckBox1.Checked:=False;
  Application.ProcessMessages;
  PageControl1.ActivePage:=S;

в PageControl1 S в OnShow стоит следующее:
if dcl=false then
 begin
  Errors_Per(IncDay(Date,-1),IncDay(Date,1)); -- текст ниже
  CheckBox1.Checked:=True;
  Edit5.Enabled:=False;
  Edit5.Text:='';
 end
else
 begin
  Errors_Per_J(IncDay(Date,-1),IncDay(Date,1)); -- аналогично Errors_Per
  dcl:=false;
//   MessageDlg('3',mtInformation,[mbOk], 0);
 end;

Текст Errors_Per
with DataModule1.Errors do
 begin
  Close;
  SetVariable('DT1',dts1);
  SetVariable('DT2',dts2);
  Open;
{-- --}
  DataModule1.DataSource4.DataSet:=DataModule1.Errors;
 end;

Если не раскомментировать MessageDlg, то при двойном нажатии в DBGrid в одной закладке (B), происходит переход на закладку S, информация в DBGrid на это закладке обновляется, но тутже исчезает...
Если не раскомментировать MessageDlg, то происходит тоже самое, но появляется MessageDlg, нажимаем Ок... Информация из DBGrid не исчезает...
При простом нажатии на закладку S информация в DBGrid отображается правильно...
Объясните в чем ошибка? Как ее побороть?


Erik1   (2005-03-04 11:01:00) [1]

При PageControl1.ActivePage:=S; не все события отрабатывают. Можно использовать TPageControl.OnChange А при нажатии DblClick после ActivePage сразу выполнять нужную тебе процедуру.


Openfire   (2005-03-04 09:59:00) [2]

Подскажи куда именно?


Erik1   (2005-03-03 15:25:00) [3]

Сделать так, чтобы не исчезала, например if dcl=false это полный бред. Почему бы тебе неперенести код из OnShow в более подходящее место?


Наверх

Титульная страница Поиск, карта сайта Написать письмо