Не могу разобраться - прошу помощи. Проект был портирован из 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} все работает.
Спасибо.