Конференция "Базы" » Invalid class typecast. [D6, IB6.x]
 
  • Drowsy (17.09.08 09:13) [0]
    (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
    .......    
  • Поросенок Винни-Пух © (17.09.08 09:24) [1]
    потому что грид у тебя наточен на TTable
  • Drowsy (17.09.08 09:28) [2]
    А его можно переточить на другой тип - tpFIBDataSet?
  • Поросенок Винни-Пух © (17.09.08 09:29) [3]
    Можно.
    Grid.DataSource.DataSet := pFibDataSet1;
  • Drowsy (17.09.08 09:33) [4]
    Так у меня так и есть:
    var AnyTable: tpFIBDataSet;
    .......
    Grid.DataSource.DataSet := AnyTable;
  • Поросенок Винни-Пух © (17.09.08 09:34) [5]
    И чего?
    В области видимости есть еще одна anytable и это TTable
  • Drowsy (17.09.08 09:37) [6]
    Непонятно.
  • Drowsy (17.09.08 09:37) [7]
    У меня все Set-ы типа tpFIBDataSet
  • Поросенок Винни-Пух © (17.09.08 09:38) [8]
    s:= Datasource.Dataset.ClassName + ' ' + Datasource.Dataset.Name;
  • Поросенок Винни-Пух © (17.09.08 09:39) [9]
    У меня все Set-ы типа tpFIBDataSet

    И один TTable. Я даже отсюда вижу.
  • Drowsy (17.09.08 09:42) [10]
    :))
  • Drowsy (17.09.08 09:43) [11]
    Удалено модератором
  • Drowsy (17.09.08 10:00) [12]
    Спасибо, Винни, ты прав!
    У тебя отличное зрение!!! :)
 
Конференция "Базы" » Invalid class typecast. [D6, IB6.x]
Есть новые Нет новых   [134435   +34][b:0][p:0]