Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Говорит не совместимые type.


Автор: BlauTood 7.9.2004, 20:05
procedure TOSN.FormCreate(Sender: TObject);
var i:integer;
begin
ibtdol.Last;
ibtdol.First;
for i=0 IBTDOl.RecordCount-1 do( ругается на эту строку что Boolean и Integer не совместимы)
begin
spso.gridspso.Columns.Items[4].PickList.add(IBTDol.fieldbyname('DOL').AsString);
IBTdol.Next;
end;
end;


в чем траблы?

Автор: Vit 7.9.2004, 20:12
for i:=0 to IBTDOl.RecordCount-1 do
Добавлено @ 20:14
i=0 - результат типа Boolean
i:=0 - это присвоение переменной i значения

В конструкции For требуется присвоение а не сравнение
Добавлено @ 20:17
корректнее будет:

Код
procedure TOSN.FormCreate(Sender: TObject);
var i:integer;
begin
 ibtdol.First;
 while not ibtdol.eof do
   begin
      spso.gridspso.Columns.Items[4].PickList.add(IBTDol.fieldbyname('DOL').AsString);
      IBTdol.Next;
   end;
end;


Потому как если записей много (больше буффера обмена потока), а другой клиент удалит записи, то у тебя будет фигня...

Автор: BlauTood 8.9.2004, 13:39
Вот что делфя пишет на твой пример sad.gif
Project uchetvrem.exe raised exception class EAccessViolation with messeage 'Access violation at address 004D93BE in module 'uchetvrem.exe'. Read of address 000002F8/ Process stopped/ Use Step or Run to continue.

И че это такое значит ???

Автор: Ripper 8.9.2004, 14:29
Access violation возникае вроде када объект ещё не создан

Автор: <Spawn> 8.9.2004, 15:22
Цитата(BlauTood @ 8.9.2004, 05:39)
Вот что делфя пишет на твой пример sad.gif
Project uchetvrem.exe raised exception class EAccessViolation with messeage 'Access violation at address 004D93BE in module 'uchetvrem.exe'. Read of address 000002F8/ Process stopped/ Use Step or Run to continue.

И че это такое значит ???

Это значит, что ты пытаешься прочитать\записать что то в неинициализированую область памяти. Ищи ошибку, например, в индексации.
Код
spso.gridspso.Columns.Items[4].PickList.add(IBTDol.fieldbyname('DOL').AsString);

Ты уверен, что тут существует 5-ый элемент массива?

Автор: BlauTood 8.9.2004, 15:45
Большой ТЕБЕ сенкс.

Автор: Vit 8.9.2004, 16:16
Если заглянешь в FAQ там есть большая статья по Access Violation...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)