Location of help files for TAdvStringGrid events?

Am looking for info on events such as OnBeforeEdit, OnCellChanging, OnCellsChanged, etc.

They do not seem to be in the developer's guides that came with the recent VCL UI Pack download.



Documentation is provided via https://download.tmssoftware.com/download/manuals/TMS%20TAdvStringGrid%20Developers%20Guide.pdf and via the over 90 included demos.

Yes, though it is missing descriptions of some events, like OnCellsChanged and a few others.

These are apparently not inherited from TStringGrid, so no help there.

But I am able to determine their behavior, so no problem.



Question on OnEditCellDone. Using F4 the debugger will take me here when hitting Enter or Tab in the cell, and it gives the correct ARow and ACol. If I hit F4 again, it doesn't take me to the grid but brings me back here with the ACol incremented -- though the cursor is still in the original cell. A third F4 brings me back to the grid in the next cell. I have AdvanceOnEnter enabled.
It seems OnEditCellDone is fired twice in this case, with the second event giving the next cell address, which will give me the wrong cell value.

How to disable or ignore the second event?


Follow up on my previous:

I have Navigation->AdvanceAutoEdit and Navigation->AdvanceOnEnter enabled.

If I turn off AdvanceAutoEdit, the OnEditCellDone event fires only once with Enter. But it fires twice if I exit the cell with the mouse - giving the next cell's coordinates.

Same effect if I turn off AdvanceOnEnter. Mouse causes event to fire twice.

There must be a simple way to read a cell when the user finishes editing, while keeping the auto advance feature. What am I missing?

thank you


I retested this here with a default TAdvStringGrid on the form and code

procedure TForm1.AdvStringGrid1EditCellDone(Sender: TObject; ACol,
  ARow: Integer);

procedure TForm1.FormCreate(Sender: TObject);
  advstringgrid1.Options := advstringgrid1.Options + [goEditing];
  AdvStringGrid1.Navigation.AdvanceAutoEdit := true;
  AdvStringGrid1.Navigation.AdvanceOnEnter := true;

I tested with all variations of the AdvanceAutoEdit & AdvanceOnEnter setting but could not see the event OnEditCellDone triggered twice.

void __fastcall TCircuitForm::sgEditCellDone(TObject *Sender, int ACol, int ARow)
String vs = String("[") + String(ACol) + String(",") + String(ARow) + String("]");
bool x(true);


It seems that I have other events that are also triggering this event. I created a basic app like yours and it works as expected, and I don't get the event fired twice.

Thanks for your help, and patience.


If a problem persists, please try to create a sample source app with which we can reproduce this issue here so we can investigate.