Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-08-2011
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Item en dbgrid

Hola amigos

Pengo un DBGrid con varias columnas en una aplicacion. Tengo algunos valores en la propiedad PickList de algunas columnas. El problema es el siguiente, como puedo asignar uno de esos valores para que salga por defecto. En el caso de las columnas que no tienen PickList como puedo introducurles algun valor a traves del codigo ?

O sea algo similar a lo que hacemos con un Combobox


escojer el valor a mostrar por defecto
Código:
ComboBox1->ItemIndex = 4;
agregar un Item desde una BD
Código:
ComboBox1->Items->Add(ADOQuery1->FieldByName("campo")->AsString)
agregar un Item diractamente
Código:
ComboBox1->Items->Add("cualquier cosa")
Gracias de antemano
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #2  
Antiguo 04-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 impadron.

Te pongo un ejemplo de como agregar valores a PickList (TStrings) de determinada columna, por código.
Código:
...
 /* Agrega dos valores a la columna 2 */
  DBGrid1->Columns->Items[2]->PickList->Clear();
  DBGrid1->Columns->Items[2]->PickList->Add("Valor 1");
  DBGrid1->Columns->Items[2]->PickList->Add("Valor 2");
  /* Agrega valores 1 a 10 a la columna 0 */
  DBGrid1->Columns->Items[0]->PickList->Clear();
  for(int i=0; i< 10; i++)
   DBGrid1->Columns->Items[0]->PickList->Add(IntToStr(i+1));
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 04-08-2011
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
muchas gracias ecfisa por tu ayuda en estos tres temas, pero el problema realmente esta en definir uno de estos valores que agregamos para que salga por defecto ya seleccionado, q el usuario no tenga que desplegar la lista y seleccionarlo.
El otro asunto es como poder introducir valores en una celda del dbgrid, o sea escribirle el valor directamente como si fuera un edit
Código:
Edit1->Text = "un texto";
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #4  
Antiguo 04-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 impadrón.

Cita:
pero el problema realmente esta en definir uno de estos valores que agregamos para que salga por defecto
No contesté esa pregunta por que no conozco propiedad o función en la clase TStrings que permita eso, es decir algo similar a ItemIndex.
(que yo no conozca no quiere decir que no exista o se pueda ).

En cuanto a asignar un valor a una celda, no te olvides que el TDBGrid es como una "representación visual" de los datos que existen en un TDataSet, por lo que podrías hacer algo así:
Código:
  DBGrid1->DataSource->DataSet->Edit();
  DBGrid1->SelectedField->Value = "Valor 1";
Pero si das un ejemplo en concreto de lo que queres implementar, quizá podamos encontrar algo más adecuado.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 04-08-2011
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola lmpadrón.


No contesté esa pregunta por que no conozco propiedad o función en la clase TStrings que permita eso, es decir algo similar a ItemIndex.
(que yo no conozca no quiere decir que no exista o se pueda ).

(...)

Pero si das un ejemplo en concreto de lo que queres implementar, quizá podamos encontrar algo más adecuado.
Código:
ADOQuery6->SQL->Clear();
        ADOQuery6->SQL->Add("SELECT distribucion FROM distribucion WHERE proceso = '" + id_proceso +"'");
        ADOQuery6->Open();

        while (!ADOQuery6->Eof)
        {
                DBGrid1->Columns->Items[4]->PickList->Add(ADOQuery6->FieldByName("distribucion")->Text);
                ADOQuery6->Next();
        }
Aqui ya tego los valores en el PickList ahora lo que quiciera es ver si puedo poner uno de ellos que ya salga por defecto seleccionado.

Con respecto a lo de asignar un valor a una celda, bueno voy a probar con la idea que me acabas de dara ver que tal resulta.

Saludos y Muchas Gracias
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #6  
Antiguo 04-08-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Los TDataSet tienen un evento llamado OnNewRecord, el cual te puede servir para inicializar valores en un registro nuevo. Esto te lo comento por que me imagino que quieres que al insertar un nuevo registro en la rejilla el campo que cuenta con el PickList ya tenga seleccionado un valor.


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #7  
Antiguo 04-08-2011
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
Hola...

Los TDataSet tienen un evento llamado OnNewRecord, el cual te puede servir para inicializar valores en un registro nuevo. Esto te lo comento por que me imagino que quieres que al insertar un nuevo registro en la rejilla el campo que cuenta con el PickList ya tenga seleccionado un valor.


Saludos...
Exactamente, jejeje esa es la idea, me podrias postear aolgun ejemplo que pueda ser de utilidad

gracias
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #8  
Antiguo 04-08-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Pues básicamente la idea es la misma que te mencionó ecfisa, solamente que tienes que hacerlo desde el evento que te comenté:

Código Delphi [-]
// Código en Delphi pero fácilmente traducible a C++
procedure TForm1.DataSetOnNewRecord(DataSet: TDataSet);
begin
  DataSet.FieldByName('CampoX').AsString = 'Valor predeterminado';
end;


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #9  
Antiguo 04-08-2011
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje

Código Delphi [-]

// Código en Delphi pero fácilmente traducible a C++
procedure TForm1.DataSetOnNewRecord(DataSet: TDataSet);
begin
  DataSet.FieldByName('CampoX').AsString = 'Valor predeterminado';
end;

Saludos...
Gracias a ambos por la ayuda.


Creo que la traduccion es algo asi no ?

Código:
void __fastcall TForm2::ADOQuery1NewRecord(TDataSet *DataSet)
{
      ADOQuery1->FieldByName("campo")->AsString = "Valor";
}
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #10  
Antiguo 04-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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
Cita:
Creo que la traduccion es algo asi no ?
Correcto; o con el mismo resultado:
Código:
   DBGrid1->DataSource->DataSet->FieldByName("campo")->AsString = "Valor";
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 04-08-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Cita:
Empezado por ecfisa Ver Mensaje
Correcto; o con el mismo resultado:
Código:
   DBGrid1->DataSource->DataSet->FieldByName("campo")->AsString = "Valor";
Saludos.
Yo no usaría esa forma dentro de un evento OnNewRecord. Es más, aún de la forma en que lo puse no es del todo "segura". Lo ideal sería algo como:

Código:
void __fastcall TForm2::ADOQuery1NewRecord(TDataSet *DataSet)
{
  DataSet->FieldByName("campo")->AsString = "Valor";
}
Y de esta forma nos aseguramos que el campo que recibe el valor predeterminado pertenece al DataSet que lanza el evento.



Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #12  
Antiguo 04-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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
Cita:
Y de esta forma nos aseguramos que el campo que recibe el valor predeterminado pertenece al DataSet que lanza el evento.
Es cierto, de ese modo se evita cualquier posible equivocación.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Seleccionar item de DbLookUpComboBox chorrito OOP 1 20-08-2010 01:33:24
index de item en listbox rogger .NET 2 22-04-2009 19:06:34
¿Como Eliminar de la Bd el item seleccionado en un DbGrid? day_eli Conexión con bases de datos 1 09-02-2007 16:36:33
Seleccionar un item de un List Box zvf OOP 2 06-04-2006 16:45:38
Item selecionado en un Tlistbox llonigualker Varios 3 09-02-2005 15:30:21


La franja horaria es GMT +2. Ahora son las 23:48:10.


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