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

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

Вопрос по извлечению имен компонентов [D7, IB6.x]


meckon ©   (2005-08-26 23:21:00) 

Уважаемые господа! Есть проблема, над которой бьюсь уже давно. Прошу помощи.

Использую interbase6.0+D7+FIBPlus6.0+ExpressQuantumGrid5
Есть база данных со справочниками, допустим:
Таблицы
Lib:
ID: Integer, not null
Name: Varchar(50)
Source: Varchar (50)

L1:
ID: Integer, not null
Name: Varchar(50)
L2:
ID: Integer, not null
Name: Varchar(50)
...

В Lib.Source записаны имена датасурсов(TDataSource)(Dm.dsCarType...) - Dm: TDataModule
При клике на грид пытаемся присвоить значение
procedure TfOtherLirary.grvLibListCellClick(Sender: TcxCustomGridTableView;
 ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
 AShift: TShiftState; var AHandled: Boolean);
var
ds: TDataSource;
begin
with Dm do begin
 ds:=TDataSource(Dm.tLibSOURCE.AsString);
 grvLib.DataController.DataSource:=ds;
 ds.DataSet.Open;
end;
end;

Получаем AV.

Вопрос в орешник, или я действительно что-либо не понимаю?

С уважением, Кабулов Максим Валерьевич, ICQ: 196400657, mailto:meckon@mail.ru


tomkat   (2005-08-31 11:34:00) [1]

есть такое выражение : "Зачем просто, если можно сложно "
наверное это отсюда ...


meckon   (2005-08-31 11:02:00) [2]

Спасибо за советы.

Действительно, лопухнулся.

Код:

procedure TfOtherLirary.grvLibListCellClick(Sender: TcxCustomGridTableView;
 ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
 AShift: TShiftState; var AHandled: Boolean);
var
ds: TDataSource;
begin
with Dm do begin
 ds:=TDataSource( FindComponent(Dm.tLibSOURCE.AsString));
 grvLib.DataController.DataSource:=ds;
 ds.DataSet.Open;
end;
end;

Работает.

При этом необходимо в поле SOURCE указывать только название датасурса, имя модуля данных - в with(если датасурс лежит не на форма, а на модуле данных).

2 Zacho:
Я хочу брать имя датасурса из поля таблицы и открывать его как источник данных грида. Другое решение - CASE, ну, а если подобных таблиц много? Я, конечно, могу создать вместо этих 30 таблиц-справочников две - собственно справочник и таблицу имен справочников, но ТЗ такое... Сам знаю, что это геморрой, но приходится мучаться таким способом.

С уважением, Кабулов Максим Валерьевич.


Zacho   (2005-08-27 01:39:00) [3]

Sergey Masloff   (27.08.05 1:30) [5]

Неа ... Без учебника - неразберётся... Ж)


Sergey Masloff   (2005-08-27 01:30:00) [4]

Zacho ©   (26.08.05 23:48) [3]
>Автору топика - срочно читать учебники.
Да ладно typinfo.pas посмотрит пусть и без учебника можно разобраться.


DrPass   (2005-08-27 00:54:00) [5]


> Потому что я не понял что именно ты хотел. Объясни это.

Он таким способом хотел по имени компонента получить ссылку на него. В общем,
> Автору топика - срочно читать учебники.


Zacho   (2005-08-26 23:48:00) [6]

О, блин !!!!

Ещё пропустил...

Автору топика - срочно читать учебники.


Zacho   (2005-08-26 23:47:00) [7]

ООО !!! Только заметил...

ds:=TDataSource(Dm.tLibSOURCE.AsString);

Ну и какого хрена ты это делаешь ???? Срочно читать любой учебник по Object Pascal, он же Delphi Language.

Извени, но сольюшена не будет. Потому что я не понял что именно ты хотел. Объясни это.


Zacho   (2005-08-26 23:36:00) [8]

meckon ©   (26.08.05 23:21)
Вопрос в орешник


Нет, это вопрос в форум пользователей  ExpressQuantumGrid

P.S. Выкинь нафиг IB6.0


Наверх

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