Не могу разобраться - прошу помощи. Проект был портирован из Kylih с опцией {$mode Delphi} (Laz 0.9.24), недавно перешел на 0.9.30, был приятно удивлен - все красиво и работает. Заменил опцию компилятора на {$mode objfpc} во всех модулях проекта, кое-что подпилил - все работает, кроме куска кода в главном модуле - подкрашивание TEdit при получении им фокуса и возврата цвета при потере.
- Код: Выделить всё
- procedure TMainFrm.FormCreate(Sender: TObject);
 var
 ......
 for i:=0 to ComponentCount-1 do
 if Components[i] is TEdit then begin
 if((Components[i] as TEdit).Name<>'EdPsw')and
 ((Components[i] as TEdit).Name<>'EdInpBarCod')and
 .............................................
 ((Components[i] as TEdit).Name<>'EdNewPsw2')
 then (Components[i] as TEdit).OnEnter:=TEditEnter
 
 if (Components[i] as TEdit).Name<>'EdInpBarCod' then
 (Components[i] as TEdit).OnExit:=TEditExit;
 end;//if TEdit
 end;//FormCreate
 procedure TMainFrm.TEditEnter(Sender: TObject);
 begin//подкрашиваем
 TEdit(Sender).Color:=$0093FCF9;
 end;
 procedure TMainFrm.TEditExit(Sender: TObject);
 begin//возвращаем цвет
 TEdit(Sender).Color:=clWhite;
 end;
Компилятор ругается на неверный вызов процедур TEditEnter и TEditExit.
(Wrong number of parameters specified for call to "TEditEnter").
От отчаянья попробовал вызов TEditEnter(nil) - получаю "Несоответствие типов и т.д."
Повторюсь, что с опцией {$Mode Delphi} все работает.
Спасибо.


