Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-07-2013
Avatar de darkbits
darkbits darkbits is offline
Miembro
 
Registrado: may 2006
Posts: 280
Poder: 18
darkbits Va por buen camino
optimizar el codigo en menos lineas

este codigo me funciona perfectamente
lo utilizo para actualizar el valor utilizo, el mismo codigo utilizo en mas de 10 formularios. y tengo que copiarlos 1x1 para que funcione.

mi consulta es como puedo tener este codigo una sola vez, y que cada vez que lo necesite lo llame como una funcion o mejor como precedure
sin estar copiando 1x1 en cada form q necesito

es para optimizar el codigo en menos lineas nada mas.
ojo el sql y el codigo me funciona de pelo. lo unico quiero optimizar para que no sea pepetitivo mas de 10 veces en el proyecto.


Código Delphi [-]
procedure T_Sisterna.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   _DM.consulta1.SQL.Text:='select * From sisterna Where op_sis='''+operador+'''';
   _DM.consulta1.Open;
    SpeedButton1.caption:= _DM.consulta1.FieldByName('e10').text +' TARJETAS 10BS';
    SpeedButton2.caption:= _DM.consulta1.FieldByName('e20').text +' TARJETAS 20BS';
    SpeedButton3.caption:= _DM.consulta1.FieldByName('e30').text +' TARJETAS 30BS';
    SpeedButton4.caption:= _DM.consulta1.FieldByName('e50').text +' TARJETAS 50BS';
    SpeedButton5.caption:= _DM.consulta1.FieldByName('e100').text +' TARJETAS 100BS';
    SpeedButton6.caption:= _DM.consulta1.FieldByName('e100c').text +' CABINAS 100BS';
 
end;
__________________
Gracias por su coloración club delphi

darkbits ;)
Responder Con Cita
  #2  
Antiguo 18-07-2013
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
Hombre, si todos los formularios tienen los mismmos botones y los mismos nombres no es difícil. Te creas una unit que contenga la función a compartir de este modo:

Código Delphi [-]
 
procedure ActualizarBotones(Formulario: TForm; operador: string );
begin
   _DM.consulta1.SQL.Text:='select * From sisterna Where op_sis='''+operador+'''';
   _DM.consulta1.Open;
    Formulario.SpeedButton1.caption:= _DM.consulta1.FieldByName('e10').text +' TARJETAS 10BS';
    Formulario.SpeedButton2.caption:= _DM.consulta1.FieldByName('e20').text +' TARJETAS 20BS';
    Formulario.SpeedButton3.caption:= _DM.consulta1.FieldByName('e30').text +' TARJETAS 30BS';
    Formulario.SpeedButton4.caption:= _DM.consulta1.FieldByName('e50').text +' TARJETAS 50BS';
    Formulario.SpeedButton5.caption:= _DM.consulta1.FieldByName('e100').text +' TARJETAS 100BS';
    Formulario.SpeedButton6.caption:= _DM.consulta1.FieldByName('e100c').text +' CABINAS 100BS';
end;

Y la llamarías, por ejemplo, así:

Código Delphi [-]
 
procedure T_Sisterna.FormClose(Sender: TObject; var Action: TCloseAction);
var
  Formulario: TForm;
begin
  Formulario := TForm(Sender);
  ActualizarBotones(Formulario, operador); // Supongo que "operador" es alguna variable de todos los formularios
end;

Lo escribo de cabeza, no lo he probado, pero debería funcionar (más o menos)

saludos
Responder Con Cita
  #3  
Antiguo 19-07-2013
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 21
gatosoft Va camino a la fama
Otra posibilidad, si los botones hacen lo mismo en cada formulario, podría ser utilizar un TFrame para definir allí los botones una sola vez e "incrsutar" el TFrame donde corresponda. De ésta manera, el mantenimeinto lo tendrías que ahecr en un solo sitio.
Responder Con Cita
  #4  
Antiguo 19-07-2013
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
Thumbs up

Muy cierto, no había caído en los Frames. Alguna vez los he usado y la verdad, son muy potentes.

Gracias por la aclaración
Responder Con Cita
  #5  
Antiguo 19-07-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 20
ozsWizzard Va por buen camino
Casi mejor crear un formulario padre con esa parte y que el resto de formularios hereden de ahí. No sé si lo habrán arreglado ya, pero hay un bug en la programación de los Frames (yo he trabajado con Delphi 7 y XE2 y en ambos pasa) y a veces los componentes pierden los eventos programados.

Saludos
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita
  #6  
Antiguo 19-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ozsWizzard Ver Mensaje
Casi mejor crear un formulario padre con esa parte y que el resto de formularios hereden de ahí. No sé si lo habrán arreglado ya, pero hay un bug en la programación de los Frames (yo he trabajado con Delphi 7 y XE2 y en ambos pasa) y a veces los componentes pierden los eventos programados. Saludos
Pues nunca me ha pasado y los uso habitualmente en todos los proyectos, desde delphi 4
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
optimizar el codigo para no tener lo mismo mas de 5 veces en el proyecto darkbits Varios 6 28-10-2012 02:28:05
Ayuda como Optimizar Código JerS OOP 3 24-06-2011 05:59:44
optimizar codigo acrophet Varios 5 16-01-2011 23:28:39
Optimizar el sgte codigo BlueSteel Varios 9 14-08-2007 22:33:24
Una web con 225,816,744 lineas de código Jesús Pena Noticias 6 09-02-2006 07:48:35


La franja horaria es GMT +2. Ahora son las 07:59:23.


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