Sounds like using TMap would be step one so you can easily check for "TaskXY" instead of iterating till the end of the world.
The alternative is an Array of tasks and store the index of the task within those fields for example.
But here the problem is quite obvious: You don't need to put in first_solution and second solution anymore on the extended task, only things they need to know as wizard tasks actually that is "above" the basic task knowledge.
Because then you can "fire" the task by using the Type TTask method for executing the task or howere you planned that to make it work.
The wizard task then just would reimplement the same method so it works in the "wizard" way ...
But I might missunderstand at what you attempt.
The alternative is an Array of tasks and store the index of the task within those fields for example.
But here the problem is quite obvious: You don't need to put in first_solution and second solution anymore on the extended task, only things they need to know as wizard tasks actually that is "above" the basic task knowledge.
Because then you can "fire" the task by using the Type TTask method for executing the task or howere you planned that to make it work.
The wizard task then just would reimplement the same method so it works in the "wizard" way ...
But I might missunderstand at what you attempt.