At the moment I run intensive memory tests here and found two handle leaks in your code.
1. "procedure TNxCustomGridControl.RedrawBorder" seems to have a handle leak.
The following code fixes this leak:
CODE
procedure TNxCustomGridControl.RedrawBorder;
......
DrawThemeBackground(Theme, DC, 1, 0, R, @R);
ReleaseDC(Handle, DC);
CloseThemeData(Theme); // <------------ added
end else BorderWidth := 0;
end;
......
DrawThemeBackground(Theme, DC, 1, 0, R, @R);
ReleaseDC(Handle, DC);
CloseThemeData(Theme); // <------------ added
end else BorderWidth := 0;
end;
2. Another thing I have observed is that "procedure TNxCustomGridControl.CreateWnd;" is called twice in certain TForms here. I could fix this leak by changing this method as follows:
CODE
procedure TNxCustomGridControl.CreateWnd;
begin
inherited;
if IsThemed then
begin
if FTheme = 0 then // <------------ added
begin // <------------ added
FTheme := OpenThemeData(Handle, teHeader);
FDefaultStyleDisplay.Theme := FTheme;
end; // <------------ added
end;
end;
begin
inherited;
if IsThemed then
begin
if FTheme = 0 then // <------------ added
begin // <------------ added
FTheme := OpenThemeData(Handle, teHeader);
FDefaultStyleDisplay.Theme := FTheme;
end; // <------------ added
end;
end;