Yo lo hice alguna vez de forma muy simple, explicarlo no va a ser fácil XD:
Primero tienes el form general que mostrará los parámetros. Dentro de él tienes un Scrollbox (por ejemplo), y ahora diseñas cada serie de parámetros en un TFrame distinto. (Quien dice TFrames, también dice una serie de paneles ocultos en el form, que los haces visible según quieras).
Por ejemplo:
- Un Frame que tenga dos TDateTimePicker, (para seleccionar las fechas inicio y fin)
- Otro frame que tenga un combo con las opciones a mostrar, etc.
Ahora en el form te creas un tipo enumerado:
Código Delphi
[-]
type
TSqlOption = (soFechas, soCombo);
TOptionToShow = set of TSqlOption ;
FormX = class(tform)
public
property Mostrar : TOptionToShow read FMostrar write SetMostrar;
Cuando quieras cear el form con distintos parámetros para el Sql, solo tienes que modificar la propiedad "Mostrar", de forma que en SetMostrar, lo que haces es crear los Frames adecuados, y ponerlos uno debajo de otro en el ScrollBox del Form.
Para hacerlo "más profesional", puedes quitar las barras del ScrollBox y hacer que el Form cambie de tamaño para acomodar todos los parámetros posibles.
Otra forma más laboriosa, fue crear un estilo a Windows XP, que te añade paneles a la izquierda de la ventana, cada uno con los TFrames que quieras añadir. Cosa que queda muy bien y es estandard.
Espero se entienda, cualquier duda, dispara.