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

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

обращение к элементам TFrame из родительской формы


oleolay ©   (2006-08-03 13:57:00) 

После того, как на родительской форме прописывается фрейм:
...
 fr:=FR_01.TF_FR_01.Create(F_01);
 fr.Parent:=F_01;
 fr.Left:=140;
 fr.Show;
...
На самом фрейме есть TDBGrid к которому надо обратиться при каком-либо условии, кто-нить подскажет как это сделать?

я пишу: FR_01.TF_FR_01.DBG_01.DataSource:=...
а delphi мне :method identifier expected...

Вот бьюсь, не знаю чего делать...


oleolay   (2006-08-03 16:01:00) [1]

А можно еще вопрос....?
Все-таки не до конца работает при вызове из этой процедуры, работает, а как его описать в других процедурах этого-же модуля.... пожааааааалуйста...


oleolay   (2006-08-03 15:29:00) [2]

Спасибо огромное...


Плохиш   (2006-08-03 15:18:00) [3]


> oleolay ©   (03.08.06 14:38) [7]
> Это не воспринимает изначально... при обращении к fr нельзя
> получить доступ к его элементам

Можно, только переменную надо описывать с требуемым типом или приводить к требуемому типу.


Плохиш   (2006-08-03 15:14:00) [4]


> //******************************************************************************
> //Открывает фрейм отчета по ценным бумагам
> procedure TF_01.N5Click(Sender: TObject);
> var
>  fr: FR_01.TF_FR_01;

Читайте книжки - они источник знаний.


oleolay   (2006-08-03 14:38:00) [5]

Это не воспринимает изначально... при обращении к fr нельзя получить доступ к его элементам, в принципе может как-то и можно, но у меня не получилось. П крайней мере так: fr.DBG_01.DataSource:=... ? не работает...


umbra   (2006-08-03 14:34:00) [6]

а если написать

fr.DBG_01.DataSource:=...?


oleolay   (2006-08-03 14:18:00) [7]

Вернее даже не так....

//******************************************************************************
//Открывает фрейм отчета по ценным бумагам
procedure TF_01.N5Click(Sender: TObject);
var
 fr:TFrame;
begin
 {Открывем отчет по ценным бумагам}
 fr:=FR_01.TF_FR_01.Create(F_01);
 fr.Parent:=F_01;
 fr.Left:=140;
 fr.Show;

 {Формируем фильтр по выбранным фирмам в отчете ценных бумаг}
 cb_filter(CB_01,DM_01.T_TMP_01);

end;
//******************************************************************************

Но смысл один и тот-же...


oleolay   (2006-08-03 14:15:00) [8]

//******************************************************************************
//Открывает фрейм отчета по ценным бумагам
procedure TF_01.N5Click(Sender: TObject);
var
 fr:TFrame;
begin
 {Формируем фильтр по выбранным фирмам в отчете ценных бумаг}
 cb_filter(CB_01,DM_01.T_TMP_01);

 {Открывем отчет по ценным бумагам}
 fr:=FR_01.TF_FR_01.Create(F_01);
 fr.Parent:=F_01;
 fr.Left:=140;
 fr.Show;

end;
//******************************************************************************
//******************************************************************************
//Фильтрует таблицу отчета ценных бумаг, в зависимости от выбранных фирм
Function cb_filter(cb:TCheckListBox; table:TIBTable):Boolean;
 var
   filter:string;
   i, kol_vi_firm:integer;
   first_condition:boolean;
 begin
   FR_01.TF_FR_01.DBG_01.DataSource:=dm_01.DS_TMP_CB_01;
   first_condition:=false;
   kol_vi_firm:=0;
   for i := 0 to cb.Items.Count - 1 do
     {Проверяем количество выбранных фирм}
     if cb.Checked[i]=True then
       kol_vi_firm:=kol_vi_firm+1;

       {Если ни одной не выбрано}
       if kol_vi_firm=0 then
           filter:='FIRM='+''''+'q'+'''';
       {Если выбрана одна}
       if kol_vi_firm=1 then
         begin
           first_condition:=true;
           filter:='';
         end
       else
         if kol_vi_firm>1 then
           filter:=table.Filter;

   table.Filtered:=false;
   {Идем по записям списка фирм}
   for i := 0 to cb.Items.Count - 1 do
     {формируем строку фильтра}
     if cb.Checked[i]=True then
       if first_condition=true then
         filter:='FIRM='+''''+cb.Items.Strings[i]+''''
       else
         filter:=filter+' or FIRM='+''''+cb.Items.Strings[i]+'''';

   table.Filter:=filter;
   table.Filtered:=True;
     Result:=true;
 end;
//******************************************************************************


Плохиш   (2006-08-03 14:09:00) [9]

oleolay ©   (03.08.06 14:07) [2]
Спасибо за совет....а посуществу

Только после того, как вы опишите все буковки, которые стоят перед точками, между точками и после точек.


oleolay   (2006-08-03 14:07:00) [10]

Спасибо за совет....а посуществу.......? плз...


Плохиш   (2006-08-03 14:01:00) [11]

Не пора книжку-какую про программирование в делфи прочитать?


Наверх

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