Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 21-02-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

No pude compilar y/o ejecutar tu código por que me faltan componentes, pero cuando usas la propiedad vectorial FieldValues en el evento OnCellClick deberías revisar que el valor del campo actual no sea nulo:
Código PHP:

void __fastcall TForm2
::DBGrid1CellClick( TColumn *Column )
{
  
TDBGrid  *GR = static_cast<TDBGrid*>( DBGrid1 );
  
TDataSet *DS = static_cast<TDataSet*> ( DBGrid1->DataSource->DataSet );

  
EditNombre->Text = VarToStrDef(DS->FieldValues["Name"], "");  // <-
  
EditPrecio->Text = VarToStrDef(DS->FieldValues["Area"], "0"); // <-  

  
if ( EditUnidades->Text != "" && EditPrecio->Text != "" )
    
EditTotal->Text = EditUnidades->Text.ToDouble() *
                      
EditPrecio->Text.ToDouble();
} 
Por mi parte prefiero no usar la propiedad FieldValues ya que, debido a que usa Variants, es la opción mas lenta.

Mas rápido es:
Código PHP:
...
void __fastcall TForm2::DBGrid1CellClick( TColumn *Column )
{
  
TDBGrid  *GR = static_cast<TDBGrid*>( DBGrid1 );
  
TDataSet *DS = static_cast<TDataSet*>( DBGrid1->DataSource->DataSet );

  
EditNombre->Text = DS->FieldByName("Nombre")->AsString;
  
EditPrecio->Text = DS->FieldByName("Precio")->AsString;

  if ( 
EditUnidades->Text != "" && EditPrecio->Text != "" )
    
EditTotal->Text = EditUnidades->Text.ToDouble() *
                      
EditPrecio->Text.ToDouble();
}
... 
Por último la opción mas eficiente es crear los campos persistentes del TDatSet y citarlos por su nombre.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Proteger y desproteger hoja en excel karla Servers 4 06-08-2010 13:20:14
Tiempo de ejecución. Columnas en DBGrid. manueljgc OOP 0 07-03-2009 22:30:36
DBGrid en tiempo de ejecución iga Gráficos 6 14-12-2007 01:52:10
Modificar campos en un DBGrid en tiempo de ejecuciòn maravert Conexión con bases de datos 3 14-05-2006 08:37:41
Columnas de DBGrid en tiempo de ejecución dape Varios 1 17-03-2005 03:57:31


La franja horaria es GMT +2. Ahora son las 10:04:37.


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
Copyright 1996-2007 Club Delphi