Ver Mensaje Individual
  #9  
Antiguo 22-02-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 17
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
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;

// en algun otro punto se puede disparar esto

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({hay que mandar un parametro sender ¡?¡?¡?¡});
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);
    // todo lo que esta desde aca hasta el "private" es accesible desde afuera! esto me molesta mucho
    edRutaArchivo: TEdit;
    btnAceptar: TButton;
    btnCancelar: TButton;
  private
  end;
Responder Con Cita