![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Invalid class typecast. [D6, IB6.x]
Drowsy © (2008-09-17 09:13:00)(FibPlus 1.5)
В модуле данных таблица AnyTable: tpFIBDataSet
На форме Grid
Grid.DataSource.DataSet := Anytable
Почему класс
dmDataModul.AnyTable.ClassName = tpFIBDataSet,
а
Grid.Datasource.Dataset.ClassName = TTable ?
var
s : string;
begin
if (ActiveControl is TDBGrid) then
with TDBGrid(ActiveControl) do begin
s:= dmDataModul.AnyTable.ClassName; // s = 'tpFIBDataSet';
s:= Datasource.Dataset.ClassName; // s = 'TTable'
if (Datasource.Dataset is tpFIBDataSet) then // FALSE
.......
Drowsy (2008-09-17 10:00:00) [1]Спасибо, Винни, ты прав!
У тебя отличное зрение!!! :)
Drowsy (2008-09-17 09:43:00) [2]Удалено модератором
Drowsy (2008-09-17 09:42:00) [3]:))
Поросенок Винни-Пух (2008-09-17 09:39:00) [4]У меня все Set-ы типа tpFIBDataSet
И один TTable. Я даже отсюда вижу.
Поросенок Винни-Пух (2008-09-17 09:38:00) [5]s:= Datasource.Dataset.ClassName + ' ' + Datasource.Dataset.Name;
Drowsy (2008-09-17 09:37:00) [6]Непонятно.
Drowsy (2008-09-17 09:37:00) [7]У меня все Set-ы типа tpFIBDataSet
Поросенок Винни-Пух (2008-09-17 09:34:00) [8]И чего?
В области видимости есть еще одна anytable и это TTable
Drowsy (2008-09-17 09:33:00) [9]Так у меня так и есть:
var AnyTable: tpFIBDataSet;
.......
Grid.DataSource.DataSet := AnyTable;
Поросенок Винни-Пух (2008-09-17 09:29:00) [10]Можно.
Grid.DataSource.DataSet := pFibDataSet1;
Drowsy (2008-09-17 09:28:00) [11]А его можно переточить на другой тип - tpFIBDataSet?
Поросенок Винни-Пух (2008-09-17 09:24:00) [12]потому что грид у тебя наточен на TTable