Page 1 of 1

Two question on visual aspect (Checkboxes and Sort arrow)...

Posted: Fri Jul 24, 2020 7:42 am
by 18689076
Hello,

Am just getting the hang of the very versatile and impressive TeeGrid. Having
checkboxes is a great addition; and as I understand, they are created as a
separate column (not to be combined with an existing one).
Was able to get the checkboxes to appear using:

Code: Select all

MyTeeGrid.Columns[MyColumn].Render    := TBooleanRender.Create
but then couldn't find an example for VLC on how to catch and process the user's choices...

Another question related to visual aspects came up with sorting. Since am using
TVirtualModeData (which I presume is so fast because it gets the
data from the given source using GetData only when it needs to display it),
am doing the sorting externally, and then re-sending the data (kind of as a result of a new query)
to be displayed. Noticed that there are methods to get the little upward/downward
pointing arrow to be displayed, but could not get a downward pointing arrow
(for Descending) to be displayed.

The code is as follows (_g at end of variable indicates globality)

My obliged for your comments and kind help.
Regards, Sami.

Code: Select all

Procedure display_grid;
BEGIN
Data_tee_G       := TVirtualModeData.Create(
                                                 Nr_Cols_G,Nr_Rows_G,60);
MyTeeGrid.Header.SortRender            := TSortableHeader.Create(MyTeeGrid.Header.Changed);
MyTeeGrid.Header.SortRender           := CreateSortable; // will only use this to display sorting arrow
Data_tee_G.OnGetValue                     := GetCell; 
MyTeeGrid.Data                                 := Data_tee_G; // bind virtual data
MyTeeGrid.Header.Sortable                := True;
END;

procedure TMyForm.TeeGridClickedHeader(Sender: TObject);
Var
is_ascending:Boolean;
cur_tc:TColumn;
cur_tc_i:SmallInt;
BEGIN
cur_tc     :=    (Sender as TColumn); // current column to be sorted
cur_tc_i  :=    (cur_tc).Index; 


If sorted_col_status_g[cur_tc_i] = -1 Then // keep a global for the direction of each sorted column
  is_ascending := True
Else
is_ascending := False;

Data_tee_G.IsSorted(cur_tc,is_ascending); // try to set variable 'is_ascending'

// do the external sorting routine here (not shown)
// provide the grid with the new, sorted data.
display_grid;   // populate grid with new sorted data.
END;

Re: Two question on visual aspect (Checkboxes and Sort arrow)...

Posted: Wed Jul 29, 2020 7:11 am
by yeray
Hello,
Jonsafi wrote:
Fri Jul 24, 2020 7:42 am
couldn't find an example for VLC on how to catch and process the user's choices...
The example here uses the OnCellEdited event to catch the changes.
Jonsafi wrote:
Fri Jul 24, 2020 7:42 am
Another question related to visual aspects came up with sorting. Since am using
TVirtualModeData (which I presume is so fast because it gets the
data from the given source using GetData only when it needs to display it),
am doing the sorting externally, and then re-sending the data (kind of as a result of a new query)
to be displayed. Noticed that there are methods to get the little upward/downward
pointing arrow to be displayed, but could not get a downward pointing arrow
(for Descending) to be displayed.
Take a look at the example here where we are sorting the values and both arrows seem to be correctly displayed.

Re: Two question on visual aspect (Checkboxes and Sort arrow)...

Posted: Wed Jul 29, 2020 2:50 pm
by 18689076
Yeray wrote:
Wed Jul 29, 2020 7:11 am
Hello,
Jonsafi wrote:
Fri Jul 24, 2020 7:42 am
couldn't find an example for VLC on how to catch and process the user's choices...
The example here uses the OnCellEdited event to catch the changes.
Jonsafi wrote:
Fri Jul 24, 2020 7:42 am
Another question related to visual aspects came up with sorting. Since am using
TVirtualModeData (which I presume is so fast because it gets the
data from the given source using GetData only when it needs to display it),
am doing the sorting externally, and then re-sending the data (kind of as a result of a new query)
to be displayed. Noticed that there are methods to get the little upward/downward
pointing arrow to be displayed, but could not get a downward pointing arrow
(for Descending) to be displayed.
Take a look at the example here where we are sorting the values and both arrows seem to be correctly displayed.
Hello,
Thanks for your helpful reply. Regarding sorting, I did have a look at the nice sorting example you mentioned,
but my case is a bit out of the ordinary as am not using the Teegrid properties for sorting, am
doing the sorting stuff externally and just 'pumping' the sorted data into the grid..all I need is to call separately
the procedure for displaying the downward pointing arrow, to show the user the current sorted status...
is this possible..?

Kind regards.

Re: Two question on visual aspect (Checkboxes and Sort arrow)...

Posted: Thu Jul 30, 2020 9:08 am
by yeray
Hello,

I still think the easiest would be to use the TSortableHeader class. In your case you'd only need to use the OnSortState event from it so it can draw the arrow in the correct direction according to your external sorting.