Para el VirtualStringTree existen unos editores (en la web se llaman vtAddons), son un edit, un edit con un boton, un combobox y un editor numérico que se sitúan en la celda elegida con el ratón. El evento que se lanza es OnCreateEditor (y obviamente se puede modificar cualquier columna que se muestre en el VT. Se mostrará el edit en la columna y fila donde se haga clic o se pulse la tecla F2.
También se dispone de los eventos
OnEditing (justo cuando se va a editar el valor de una columna) donde se puede cancelar la edición de esa celda,
OnEdited cuando se acaba de editar y
OnNewText cuando se quiera asignar el nuevo valor a la columna actual.
Al margen de todo esto, yo dudo de que sea un desbordamiento de pila, ya que diría StackOverflow, es más, pocas veces he tenido que modificar ese parámetro (solo cuando he usado recursividad).
Lo más probable, es que al usar el mismo Form copiado varias veces, haya "algo" incoherente. Ten en cuenta que al copiar el mismo archivo .dfm y .pas varias veces todo el código se repite, por ejemplo la variable que te propone delphi:
Código Delphi
[-]
var agendadetallada :TagendaDetalle;
No solo tendrías que copiar y pegar los archivos dfm sino modificarlos con el bloc de notas fuera de delphi.
Desde luego, lo mejor que haces es tener una sola ventana TagendaDetalles en tu programa y después, en ejecución, crear tantas como necesites.
Yo al menos no veo la necesidad de tener 15 ventanas abiertas al mismo tiempo.... ¿el usuario va a verlas todas al mismo tiempo? lo dudo, porque son muchas y una ventana tapa a la otra. Lo lógico sería crear una sola ventana AgendaDetalle (o dos como mucho) y con un par de botones hacer que avance en los datos, (si está viendo los registros 1-6, al pulsar un botón "adelante", que muestre en la misma ventana los datos del 7-13).
Saludos