Tema: No corre
Ver Mensaje Individual
  #17  
Antiguo 11-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
silviodp ¿no tienes las GExperts instaladas?

Tiene una opción maravillosa: pones el ratón en un begin pulsas CTRL + ALT + < cursor derecho > y te salta a su end correspondiente.

El hecho de "leerte la cartilla" por el mal identado es una crítica constructiva aunque no lo creas, un buen identado hace que encuentres los errores rápidamente, además de ser una de las principales bases en programación.

Añade un :
Código Delphi [-]
 With Modulodatos do
y verás como el código se clarifica muchísimo más, porque hace las líneas más cortas y por ende lees más rápido.

Si a esto le añades el acceso a campos persistentes tu código quedaría así:
Código Delphi [-]
procedure TForm14.DBEdit2KeyPress(Sender: TObject; var Key: Char);
Var
  n,m:Variant;
begin //(1)

  If Key=#13 Then 
  with ModuloDatos do  
  begin //(2)
    TblComprobantes.Active:=True;
    If TblComprobantes.Locate('Numero',TxtNumero.Text,[]) Then 
    begin //(3)
      If TblComprobantesEstado.Value <>'P' Then 
      begin //(4)
        m:=TblComprobantesCod_soc.Value;
        If TblSocios.Locate('Cod_soc',m,[]) Then 
         TxtSocio.Text:=m;
        n:=TblComprobantesCod_periodo.Value;
        If TblPeriodos.Locate('Cod_periodo',n,[]) Then 
          TxtPeriodo.Text:=n;
        TxtImporte.Text:=ModuloDatos.TblComprobantesImporte.Value;
        Confirmar.SetFocus
      end
      Else 
      begin//(4)
        ShowMessage('La factura Nº '+TxtNumero.Text+' ya fue cobrada!!!');
        (Sender as TDBEdit).SelectAll;
      end;
    end
    Else 
    begin//(3)
      ShowMessage('Factura no encontrada. Verifique el Número de la misma.');
      (Sender as TDBEdit).SelectAll;
    end; //(3)
  end; //(2)
end; //(1)

Fíjate también que he eliminado las líneas en blanco porque hace que tu vista pierda el identado.

Personalmente me gusta colocar el begin debajo de su if ya que aumenta la percepción visual de ese identado; además deja claro que lleva su begin correspondiente y por tanto hay más de una línea de código afectada. Si pones el begin al final de la línea, se olvida muchas veces al leerlo.

Creo que ambas formas de poner el begin pertenecen a estandares distintos, solo es cuestión de decidirse por uno de ellos.

Puede que te parezcan tonterías, el tiempo me dará la razón .

Otra cosita más, cuando hiciste ese código estabas algo dormido....
Código Delphi [-]
'La factura Nº'+' '+TxtNumero.Text+' '+'ya fue cobrada!!!'
los espacios en blanco que añades a txtnumero se pueden quitar y añadir en el lado izquierdo y derecho, ahorrando 2 concatenaciones de Strings

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita