Jump to content
uniGUI Discussion Forums
Sign in to follow this  
jaromir

ForceFit at runtime

Recommended Posts

Hello,

 

Is it possible to change grid forcefit property at runtime ? If so how i can achieve this.

I tried this but without luck:

function reconfigure(sender, store, columns, oldStore, oldColumns, eOpts)
{
  sender.headerCt.forceFit=true
}

Regards

Share this post


Link to post
Share on other sites

ForceFit works for me only when i set up this property in design time.

At runtime (in code) set grid.forcefit := true doesn't work.

So it is possible to change forcefit in code ?

Share this post


Link to post
Share on other sites

Can you try this config?:

 

function beforeInit(sender, config)

{

config.forceFit = true;

}

Share this post


Link to post
Share on other sites

Thank You !

 

It works like expected.

I tried to turn on forcefit in code when columns width sum is less or equal than grid size.

 

Columns width sum is easy:

  TUniDBGridColumnsHelper = class helper for TUniDBGridColumns
  public
    function ColumnsWidth: Integer;
  end;

function TUniDBGridColumnsHelper.ColumnsWidth: Integer;
var
  i: Integer;
begin
  Result := 0;
  for i := 0 to Self.Count - 1 do
    if Self[i].Visible then
      Result := Result + Self[i].Width;
end;

But unfortunately I can't get grid width at code. Grid.width is the same as in design time.

Delphi Developer could You help again please ?

Share this post


Link to post
Share on other sites

Solved. Thank You.

  grData.ClientEvents.UniEvents.Values['beforeInit'] :=
    Format('function (sender, config) 
      { if (config.width >= %d) {config.forceFit = true;} }',
    [grData.Columns.ColumnsWidth]);

Share this post


Link to post
Share on other sites

ForceFit:
 

Grid.ClientEvents.UniEvents.Values['beforeInit'] :=
    'function (sender, config) { config.forceFit = true; }';

AutoSize:
 

Grid.ClientEvents.ExtEvents.Values['store.load'] :=
    'function (sender, records, successful, eOpts) ' +
    ' { ' +
    '   sender.grid.columnManager.columns.forEach(function(col) '+
    '   { '+
    '    col.autoSize(); '+
    '   }) '+
    ' } ';

Share this post


Link to post
Share on other sites

Thank You Marlon. I didn't know autosize.

 

I wanted to forced fit only if all columns could have minimum designed size.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×