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-11-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 19
Mathom Va por buen camino
Problema de código

Hola, este es el código de un botón "aceptar". Es un pequeño formulario donde hay 2 DBEdits, el tema es que quiero que si los dos han sido rellenados inserte el nuevo registro pero si uno de los dos está vacio aparezca un mensaje de advertencia pero sin grabar el dato que si que está. Utilizo un "if" donde si los dos son "<>" de vacio inserte el registro pero cuando solo relleno uno no entre en el with y por lo tanto no grabe nada, sin embargo aunque sólo rellene uno de los dos me entra en el with modificando el registro. Os dejo el código a ver si veis el fallo, yo me he encabezonado y no lo veo...

Código Delphi [-]
 procedure TForm2.BitBtn2Click(Sender: TObject);
  begin
    If ((DBEdit1.text <> '') and (DBEdit2.text <> '')) then
    begin
      With DataModule7.Table1 Do
      Begin
        Try
          Insert;
          Post;
         Except
          Application.MessageBox ('El nombre introducido no es correcto'+chr(13)+
          'El nombre esta repetido, prueba con otro',
          'Insertar registro',
          Mb_Ok+Mb_IconStop);
          Cancel;
          Insert;
        End;
       End;
     end
    else
    ShowMessage ('¡Debe rellenar todos los campos!')
  end;
  
  end.
aleee

Última edición por dec fecha: 18-11-2005 a las 17:17:03. Razón: ¡¡Encerrad el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!!
Responder Con Cita
  #2  
Antiguo 18-11-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Prueba con esto (trim())
Código Delphi [-]
If ((trim(DBEdit1.text) <> '') and (trim(DBEdit2.text) <> '')) then
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 18-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

Prueba así:

Código Delphi [-]
 procedure TForm2.BitBtn2Click(Sender: TObject);
 begin
   If (DBEdit1.text <> '') and (DBEdit2.text <> '') then
   begin
   With DataModule7.Table1 Do
   Begin
     Try
     Insert;
     Post;
      Except
     Application.MessageBox ('El nombre introducido no es correcto'+chr(13)+
     'El nombre esta repetido, prueba con otro',
     'Insertar registro',
     Mb_Ok+Mb_IconStop);
     Cancel;
     Insert;
     End;
    End;
    end
   else
   ShowMessage ('¡Debe rellenar todos los campos!')
 end;
 
 end.

Tenías unos parentesis demás..
__________________
No todo es como parece ser...
Responder Con Cita
  #4  
Antiguo 18-11-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 19
Mathom Va por buen camino
Ante todo, gracias. La solción que me da LucasArt ya la he probado y no funciona correctamente (al menos como yo quería). Ahora probaré lo vtdeleon a ver que tal....
Responder Con Cita
  #5  
Antiguo 18-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola.

Seguro debe ser un espacio que te queda en blanco, en ese sentido lo de VTDELEON debería funcionar, aún así yo te recomiendo que no uses de esa forma los parentesis, de hecho nunca he visto de esa forma la sentencia.

Hasta Luego -
__________________
No todo es como parece ser...
Responder Con Cita
  #6  
Antiguo 18-11-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 19
Mathom Va por buen camino
No es lo normal. Me refiero a utilzar así los parentesis, lo que pasa es que como no me funcionaba como yo esperaba he empezado a hacer pruebas por si era algo de los parentesis. Lo normal es que los ponga:

Código:
if (DBEdit1.text = ' ') and (DBEdit2.text = ' ' ) then
aún no he probado lo de trim. Tengo tres frentes abiertos ahora con la aplicación.. en cuanto lo pruebe os comento como he quedado.

gracias a los dos.
Responder Con Cita
  #7  
Antiguo 18-11-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 19
Mathom Va por buen camino
Bien, he probado tanto el que me ha dicho vtdeleon
Código:
If ((trim(DBEdit1.text) <> '') and (trim(DBEdit2.text) <> '')) then
...como...

Código:
If((trim(DBEdit1.text) <> '') and (trim(DBEdit2.text) <> '') then
...el resultado sigue siendo el mismo..me sigue entrando dentro del with de todos modos...
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


La franja horaria es GMT +2. Ahora son las 04:33:29.


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