Yo tampoco estoy peleando, es simplemente un intercambio de ideas
Estoy de acuerdo con lo que propones:
Código Delphi
[-]
type
IGuardadorDeArchivos = interface
procedure GuardarArchivo(const Ruta: string);
end;
...
var
Form: TAlgunForm;
GuardadorDeArchivos: IGuardadorDeArchivos;
begin
GuardadorDeArchivos := TGuardadorDeArchivos.Create;
Form := TAlgunForm.Create(Self, GuardadorDeArchivos);
end;
procedure
begin
GuardadorDeArchivos.GuardarArchivo('C:\nueva carpeta\');
end;
Eso es genial, pero lo que a mi me molesta es que si yo quisiera, podria hacer esto:
Código Delphi
[-]
procedure
begin
Form.ActionList1.Actions[0].ExecuteTarget(NIL);
Form.ActionGuardarArchivoExecute();
end;
La "solucion" es meter el ActionList en la parte privada del form e instanciarlo en runtime
Pero es muy incomodo, a todos nos gusta diseñar forms con el IDE; por codigo es mucho mas tedioso (una subclase de TForm es "posible" manejar el layout de todo los controles por codigo, pero cuando estas por los tataranietos de TForm?? se hace imposible)
Código Delphi
[-]
type
TFormAlgo = class(TForm);
edRutaArchivo: TEdit;
btnAceptar: TButton;
btnCancelar: TButton;
private
end;