update..
I believe I may have figured out how the FMXGrid from TMS pack for Firemonkey works, finally. The columns auto-sort and there is no way to turn that off. Instead, you have to do the following:
1. In your table, add an unique numeric (primary key) id field, and call that in the grid as the first column.
2. Then, hide that column. But there doesn't appear to be a grid.hide.column(number) function. So, I set the column width to 1.
Now, the only problem I have in this project, is how to sync the data updates. You see, when i update the checkbox in the grid, and move to another record or refresh the query to the grid, the data is not updated in the database. So, the old data is still present.
To get around that, (after many hours and days of trial and error) I found a band-aid solution.
3. go into code view and locate the grid's OnCellCheckBoxClick() event, and add these two functions: edit; and post;
In other words, if your grid is driven from a query, then the following code snippet should take care of the updates to the database:
procedure TForm1.TMSFMXGrid1CellCheckBoxClick(Sender: TObject; ACol,
ARow: Integer; Cell: TFmxObject);
begin
qry.Edit;
qry.Post;
end;
note: this works only for the checkbox column updates when you are in that column. If you are in another column and update that column's data, TMS grid will mess it up due to the way it sorts columns or groups of column. You may have to add the edit; and post; functions in similar events for those columns to update them correctly. I haven't tested it since I only just found that out, like a minute or two ago. Eventually, i'll figure the rest of that out later. For now, I finally have the checbox solved
If all goes well in my larger project, I will update this topic to 'resolved'.