Tengo una clase de configuración en mi sistema, donde almaceno valores de configuración para configuraciones importantes. Se parece al código siguiente, pero con muchos más atributos de diferentes tipos. Ahora necesito implementar un formulario con el que pueda ajustar y configurar estos ajustes en tiempo de ejecución. Es muy engorroso implementar los campos para cada atributo y garantizar que todos los valores se mapeen sin error.¿Hay algún componente para crear automáticamente un formulario de configuración?
Ahora mi pregunta: es un componente vcl que podría crear automáticamente una interfaz para resolver eso. P.ej. ofrecen una interfaz tipo árbol o lista de lista con los nombres de los atributos y campos para editar los valores (como el panel de propiedades en el IDE, con la configuración de la impresora, ver la captura de pantalla a continuación). Eso sería una gran cosa. ¿No?
¿Cómo lidiar con formularios de configuración como ese?
¡Gracias por su contribución!
TGoldmannSettings = class
private
FInitialSymbolSize : Integer;
FPenWidth : Single;
FCanvasColor : TColor;
FShowLiveCoordinates : Boolean;
FFont1 : TFont;
FMsmPointSymbol : TAvailableSymbols; // own type
...
public
constructor Create;
destructor Destroy; override;
property SymbolSize : Integer read FInitialSymbolSize write FInitialSymbolSize;
property Font1: TFont read FFont1 write FFont1;
...
published
property PenWidth: Single read FPenWidth write FPenWidth;
property CanvasColor: TColor read FCanvasColor write FCanvasColor;
property ShowLiveCoordinates: Boolean read FShowLiveCoordinates write FShowLiveCoordinates;
...
end;
que a veces encontrar algo que decir en los diálogos de configuración de la impresora:
VirtualTreeView tiene un buen ejemplo de editor de propiedades en su ['AdvancedDemo'] (http://code.google.com/p/virtual-treeview/source/browse/#svn%2Ftrunk%2FDemos%2FAdvanced). Es posible que pueda personalizarlo para sus necesidades. – TLama
Normalmente, uso una clase TForm para mantener la configuración, crearla al inicio (pero no mostrarla hasta que el usuario quiera cambiar la configuración). Cualquier otra unidad/clase/lo que sea que quiera leer una configuración tiene que obtenerla del formulario. Esto rompe la encapsulación, pero no me importa demasiado para este propósito en particular, especialmente porque tengo una forma de persistir en la forma de configuración entre sesiones. Tenga en cuenta que, debido a que estoy usando un formulario VCL, la seguridad de subprocesos es un tema del que tengo que ocuparme explícitamente: (( –
) JVCL tiene un componente de editor de propiedades. No es exactamente lo que está buscando, pero quizás sea suficiente – dummzeuch