Странная ситуация наблюдается.
Есть паралельно в соседние папки установленные Lazarus 2.0.8, 2.2.6 и недавно поставил посмотреть что нового 4.2.0
В целом работают нормально.
Но недавно открыл один старый проект случайно не в 2.0.8, а в 2.2.6
При компиляции он зачем-то подтягивает модуль IdHL7 (в проекте его не использую) и выдает ошибку
- Код: Выделить всё
IdHL7.pas(935,7) Error: Incompatible type for arg no. 2: Got "Class Of IIdQueuedMessage", expected "TClass"
в процедуре
- Код: Выделить всё
procedure TIdHL7.PreStop;
procedure JoltList(list: TInterfaceList);
var
i: Integer;
begin
for i := 0 to list.Count - 1 do
begin
==>> IIdQueuedMessage(list[i]).SetEvent;
end;
end;
...
Если открыть проект в 2.0.8 то там компилируется нормально.
2.0.8 установлен indylaz.lpk 10.6.2.5451
2.2.6 установлен indylaz.lpk 10.6.3.11 (обновил через сетевой диспетчер пакетов надеясь исправить ошибку. Какая версия была до этого не помню, может быть такая же 10.6.2.** но на ней тоже ошибка воспроизводилась)
-----------
Вот что не понятно.
1. Зачем подтягивается модуль IdHL7 в версии 2.2.6 если он был не нужен в 2.0.8?
2. какая методика в Lazarus для вычисления что именно использует этот модуль и классы из него. Как это определить?
3. И что можно сделать с этой ошибкой?