powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка чтение данных из объекта
9 сообщений из 9, страница 1 из 1
Ошибка чтение данных из объекта
    #39882798
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Появилась у меня ошибка, которую не могу понять, итак
объявляю объект

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
  TInfo = record
      sInt : integer;
      sStr : string;
  end;


 TSPInfoObj = class(TObject)
  private
    sStructure : TInfo;
    function GetValue : TInfo;
  public
    constructor Create(ID : string; ID_1 : integer);
    property pValue : TInfo read GetValue;
  end;

...

constructor TSPInfoObj.Create(ID : string; ID_1 : integer);
 begin
    inherited Create;
    sStructure.sStr := ID;
    sStructure.sInt := ID_1;
 end;

function TSPInfoObj.GetValue : TInfo;
 begin
  Result := sStructure;
 end;



Далее заполняю Combobox из запроса

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
var vInfo_1 : TSPInfoObj;
...

    fAddData.cbSP.Clear;
    if UniMainModule.qPlaces.Active then UniMainModule.qPlaces.Close;
    UniMainModule.qPlaces.Prepared := true;
    UniMainModule.qPlaces.Parameters.ParamByName('pID_FILIAL').Value := UniMainModule.qFilials.FieldByName('ID').AsInteger;
    UniMainModule.qPlaces.Open;
    vInfo_1 := TSPInfoObj.Create( '' , -1);
    fAddData.cbSP.Items.AddObject('<без объекта>',vInfo_1);
    while not UniMainModule.qPlaces.Eof do begin
      vInfo_1 := TSPInfoObj.Create(UniMainModule.qPlaces.FieldByName('AddressID').asString, UniMainModule.qPlaces.FieldByName('ID').AsInteger);
      fAddData.cbSP.Items.AddObject(UniMainModule.qPlaces.FieldByName('SUBDIVISION').AsString,vInfo_1);
      UniMainModule.qPlaces.Next;
    end;
    UniMainModule.qPlaces.Close;



и фрагмент чтения из Combobox
Код: pascal
1.
2.
  if (cbSP.Items.Objects[cbSP.ItemIndex] as TSPInfoObj).sStructure.sStr = ''
     then ...



и на этой строке исключение "invalid object typecast" - не могу понять причину. Заранее спасибо.
...
Рейтинг: 0 / 0
Ошибка чтение данных из объекта
    #39882801
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968не могу понять причину

Ну так выведи перед ней .ClassName и посмотри что именно у тебя там. Скорее всего мусор.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка чтение данных из объекта
    #39882809
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShowMessage((cbSP.Items.Objects[cbSP.ItemIndex] as TSPInfoObj).ClassName);
Выдает ту же самую ошибку
...
Рейтинг: 0 / 0
Ошибка чтение данных из объекта
    #39882810
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Включи мозг: эта ошибка выкидывается из оператора "as".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка чтение данных из объекта
    #39882811
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968
Код: pascal
1.
2.
vInfo_1 := TSPInfoObj.Create(UniMainModule.qPlaces.FieldByName('AddressID').asString, UniMainModule.qPlaces.FieldByName('ID').AsInteger);
fAddData.cbSP.Items.AddObject(UniMainModule.qPlaces.FieldByName('SUBDIVISION').AsString,vInfo_1);

И стоит городить объекты, если можно сделать так?
Код: pascal
1.
fAddData.cbSP.Items.AddObject(UniMainModule.qPlaces.FieldByName('SUBDIVISION').AsString,TObject(UniMainModule.qPlaces.FieldByName('ID').AsInteger));



Кстати, тут утечка, если заполнять более одного раза:
patrick1968
Код: pascal
1.
fAddData.cbSP.Clear;
...
Рейтинг: 0 / 0
Ошибка чтение данных из объекта
    #39882820
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужен объект из двух значений, а Classname выдает TSPInfoObj
...
Рейтинг: 0 / 0
Ошибка чтение данных из объекта
    #39882828
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968Classname выдает TSPInfoObj

Значит ты чего-то недоговариваешь или творишь какую-о чушь типа использования DLL и
передачи туда классов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка чтение данных из объекта
    #39882837
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
patrick1968
Код: pascal
1.
2.
  if (cbSP.Items.Objects[cbSP.ItemIndex] as TSPInfoObj).sStructure.sStr = ''
     then ...



и на этой строке исключение "invalid object typecast" - не могу понять причину. Заранее спасибо.


А чему равен cbSP.ItemIndex ?
...
Рейтинг: 0 / 0
Ошибка чтение данных из объекта
    #39882842
patrick1968
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался, всем спасибо за участие
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка чтение данных из объекта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]