Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Realizar varias operaciones con un mismo formulario (https://www.clubdelphi.com/foros/showthread.php?t=83115)

webmasterplc 13-05-2013 04:01:28

Realizar varias operaciones con un mismo formulario
 
Hola estoy desarrollando un sistema y me gustaría usar un formulario para registrar, editar y eliminar registros, para evitar cargar el sistema de form, ya lo estoy haciendo de la manera mas artesanal que se me ocurrio y quisiera su opinión si es la manera mas optima o si hay alguna otra manera.

en la unidad del Form cree una variable tipo string llamada rol.

Código Delphi [-]
Var
rol:string;

y en la unidad principal le paso el valor en el evento clic del menu

Registrar:
Código Delphi [-]
With formconsolidadores do
      Begin
      Caption:='Registrar Líderes';
      rol:='Registro';
      ShowModal;
      end;

Modificar:
Código Delphi [-]
With formconsolidadores do
      Begin
      Caption:='Registrar Líderes';
      rol:='Editar';
      ShowModal;
      end;

Eliminar:
Código Delphi [-]
With formconsolidadores do
      Begin
      Caption:='Registrar Líderes';
      rol:='Eliminar';
      ShowModal;
      end;


En El Evento del Formulario
Procesar:
Código Delphi [-]
begin
if rol='Registro'  then
  begin
  MessageDlg(rol, mtCustom, [mbOK], 0);

  end
        else
        if rol='Editar'  then
        begin
        MessageDlg(rol, mtCustom, [mbOK], 0);
        end
        else

if rol='Eliminar'  then
  begin
 MessageDlg(rol, mtCustom, [mbOK], 0);
  end;

  end;

Hasta ahora no me da error solo quisiera saber si es la manera mas optima y ademas de ser asi puede servirle a alguien que necesite esto. Saludos.

ozsWizzard 13-05-2013 10:37:10

Así, de primeras, se me ocurre cambiar el tipo de Rol de un string a un tipo

En la misma unit dle formulario, justo antes de declarar el formulario
Código:

TRol = (rRegistro, rEditar, rEliminar)
De es manera se cambia

Código:

Var
  Rol: TRol;

Registrar:
Código:

With formconsolidadores do
      Begin
      Caption:='Registrar Líderes';
      rol:= rRegistro;
      ShowModal;
      end;

Modificar:
Código:

With formconsolidadores do
      Begin
      Caption:='Registrar Líderes';
      rol:= rEditar;
      ShowModal;
      end;

Eliminar:
Código:

With formconsolidadores do
      Begin
      Caption:='Registrar Líderes';
      rol := rEliminar;
      ShowModal;
      end;

Procesar:
Código:

begin
  case rol of
      rRegistro: AccionRegistrar;
      rEditar:  AccionEditar;
      rEliminar: AccionEliminar;
  end;
end;

(Entiendo que los MessageDlg eran para probar que funciona, por tanto me permito ser algo más explícito, en caso que realmente se debiera hacer el MessageDlg...)
Código:

var
  lRol: String;
begin
  case rol of
      rRegistro: lRol := 'Registrar';
      rEditar:  lRol := 'Editar';
      rEliminar: lRol := 'Eliminar';
  end;
  MessageDlg(lRol, mtCustom, [mbOK], 0);
end;

(Que por cierto, en tú código hubiese bastado con
Código:

begin
  MessageDlg(Rol, mtCustom, [mbOK], 0);
end;


webmasterplc 13-05-2013 14:13:56

Listo voy a probar este método una consulta y las diferentes operaciones donde las hago, osea la de guardar o editar


La franja horaria es GMT +2. Ahora son las 10:18:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi