Очень давно был написан этот отличный компонент. Работал без проблем. Сейчас потребовался снова. Установить не могу.
1) Ругается на отсутствие fOnChange, хотя по истории это событие давно введено (но нигде в коде ни описания, ни реализации нет).
function TmdvXLGrid.EndEdit(ASave: Boolean; AEndEdit: Boolean = False): Boolean;
var
S,SS: KOLString;
i: Integer;
H: HWnd;
begin
Result:= True;
if (PKOLXLGridData(FCustomObj).FShowEditor=nil) then Exit;
if (PKOLXLGridData(FCustomObj).FShowEditor.Visible) then begin
if (PKOLXLGridData(FCustomObj).FShowEditor=nil) then Exit;
H:= GetFocus;
for i:=0 to PKOLXLGridData(FCustomObj).FShowEditor.ChildCount-1 do if (PKolXLGridData(FCustomObj).FShowEditor.Children[i].Handle = H)and(H<>PKolXLGridData(FCustomObj).FTextEditor.Handle) then Exit;
SetLength(S,1024);
SetLength(S,GetWindowText(PKolXLGridData(FCustomObj).FTextEditor.handle, PKOLChar(S),1024));
if Assigned(PKolXLGridData(FCustomObj).FOnEndEdit) then PKolXLGridData(FCustomObj).FOnEndEdit(@Self,Position.X,Position.Y,PKolXLGridData (FCustomObj).FShowEditor,PKolXLGridData(FCustomObj).FTextEditor,S,ASave,Result);
if not Result and not AEndEdit then Exit;
if ASave and Result then begin
SS:=Cells[Position.X,Position.Y].Text;
Cells[Position.X,Position.Y].Text:= S;
if Assigned(fOnChange) and (SS<>S) then fOnChange(@Self);
end;
if (PKOLXLGridData(FCustomObj).FShowEditor <> nil) then PKOLXLGridData(FCustomObj).FShowEditor.Visible:= False;
end;
PKOLXLGridData(FCustomObj).FShowEditor:= nil;
PKOLXLGridData(FCustomObj).FTextEditor:= nil;
end;
2) Ругается на отсутствующий параметр fUpdCount, который нигде не задан, но используется в нескольких местах.
TControl.fUpdCount, как я понял, упразднен. Добавил его отдельно для проверки к самому гриду. TControl.fOnChange также упразднен. Если я правильно понял, то теперь он засунут в TControl.EV.fOnChangeCtl. Вписал - все ставится, компилируется. В design-time таблицу видно. В runtime - черный цвет на весь компонент.
Как быть?