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 04-10-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
ejecutar codigo y si tiene valor nulo no de error

que hay amigos aqui con un pequeño problema resulta que tengo un edit en el cual mediante el evento keypress al meter un numero de codigo me trae el resultado a varios edit bueno hasta ahi todo bien, mi problema esta en que si en ese edit no le pongo ningun valor y le doy enter me arroja un error que dice
Código Delphi [-]
evariant invalid arg error with mensaje 'invalid argument'
entones lo intente con lo siguiente pero no me funciono porque pone el letrero pero no detiene el proceso:
Código Delphi [-]
 if(codigo.Text='')then
  Messagebox(Handle,PChar('el campo no puedo estar en blanco'),PChar('Atencion!!!'),Mb_ok);
__________________
saludos!!!
Responder Con Cita
  #2  
Antiguo 04-10-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Este... sino detiene el proceso no es error de delphi sino de la capa 8 del modelo OSI

Seguramente tienes algo:

Código Delphi [-]
if edit1.text = ''
   then MessageBox(....);
Proceso;
Es evidente entonces el porqué continúa con el proceso ¿no?

Para que funcione deberías tener algo como:

Código Delphi [-]
if edit1.text = ''
   then MessageBox(...)
   else Proceso;

O en todo caso un:

Código Delphi [-]
if Edit1.Text = ''
   then begin
            MessageBox(...);
            Exit;
          end;

Yo me inclino por el if-then-else.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 04-10-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
gracias por la respuesta pero sigue marcandome el erro acontinuackion agrego mi codigo a ver si ayuda un poco mas :

Código Delphi [-]
procedure TForm4.codigoKeyPress(Sender: TObject; var Key: Char);
var Total: double;
begin

 if Key = #13 then
  begin


       if codigo.Text='' then
    Messagebox(Handle,PChar('el campo no puedo estar en blanco'),PChar('Atencion!!!'),Mb_ok);

  end
else begin



    query2.Close;
    query2.SQL.Text := 'select * from productos where codigo=:codigo';
    query2.Params[0].Value := codigo.Text;

    query2.Open;


    descripcion.Text := query2.FieldByName('descripcion').asString;
    precio.Text := query2.FieldByName('precio').asString;
   //existencia.Text := query2.FieldByName('existencia').asString;

    form4.clientdataset1.Append;

  form4.clientdataset1['codigo'] := codigo.Text;
  form4.clientdataset1['descripcion'] := descripcion.Text;
  form4.clientdataset1['precio'] := precio.Text;
  form4.clientdataset1['cantidad'] := cantidad.Text;
  form4.clientdataset1['folio'] := folio.Text;
  form4.clientdataset1['fecha'] := fecha.Date;
  form4.clientdataset1['subtotal'] :=  floatToStr( StrTofloat(cantidad.Text) * StrTofloat(precio.Text) );

        form4.clientdataset1.Post;


  query2.Close;
     query2.SQL.Text:='SELECT folio FROM venta ORDER BY folio ASC LIMIT 1';
     query2.Open;
    folio.text := floatToStr( StrTofloat(folio.Text) + StrTofloat(numero.Text)) ;


          ClientDataSet1.First;
   while not ClientDataSet1.eof do begin
      total := total + clientdataset1.FieldByName('subtotal').AsFloat;

      ClientDataSet1.Next;

   end;

      total2.Caption := FormatFloat('###0.00', total);


    begin
      if Key = #13 then
      begin
        Key := #0;
        Perform(WM_NEXTDLGCTL, 0, 0);
        codigo.SetFocus;

      end

    end;

end;

end;
__________________
saludos!!!
Responder Con Cita
  #4  
Antiguo 04-10-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Parece que no estás poniendo el else en lugar adecuado. Tendría que estar como parte del if interno y no del externo.

// Saludos
Responder Con Cita
  #5  
Antiguo 04-10-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Mi ojo compilador me dice que en este código hay un begin-end sobrantes:

Código Delphi [-]
begin
      if Key = #13 then
      begin
        Key := #0;
        Perform(WM_NEXTDLGCTL, 0, 0);
        codigo.SetFocus;

      end

    end;

Justamente el begin y el end exteriores.

En lo demás tendría que probarlo. Por otro lado: Sugiero empezar a identar de forma apropiada el código, por favor. Asi no hay quien le entienda.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 04-10-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Delphius Ver Mensaje
[...]Sugiero empezar a identar de forma apropiada el código[...]
Sangrar o dar sangrado, mi estimado Delphius.
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
Error delphi "valor no puede ser nulo nombre del parametro key" nickolas Varios 0 21-08-2012 02:07:45
Ejecutar codigo despues de insertar valor en columna el_barto Conexión con bases de datos 2 30-08-2005 23:20:57
Valor Nulo o en blanco y nil vtdeleon OOP 1 25-11-2004 05:41:50
Campo con valor nulo fjcg02 Conexión con bases de datos 4 10-11-2004 08:55:07
Valor nulo pache OOP 3 19-06-2003 08:39:13


La franja horaria es GMT +2. Ahora son las 08:43:27.


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