Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   cxgrid y cells (https://www.clubdelphi.com/foros/showthread.php?t=69972)

Rofocale 22-09-2010 11:19:46

cxgrid y cells
 
Hola a todos me pregunto donde se encuentra la propiedad cells de un cxgrid ya que con un grid normal se puede hacer grid.cells[0,1] := ''; y no se como hacerlo con un cxgrid...
alguien me da una mano ?
gracias

Neftali [Germán.Estévez] 22-09-2010 12:25:20

Es grid de las Quantum (cxGrid) no es un grid sencillo de utilizar; Trabaja como un DBGrid (no como un StringGrid), por lo tanto no se accede a él por celdas.

La forma más habitual de acceder es utilizando el DBTableView asociado al Grid.

Te recomiendo que revises la página del componente; Tiene infinidad de ejemplos acerca del componente y mucho código que te puede servir.

Encontrarás códigos como este:

Código Delphi [-]
procedure TForm1.TVCellDblClick(Sender: TcxCustomGridTableView;  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;   AShift: TShiftState; var AHandled: Boolean);
var  vTV: TcxCustomGridTableView;
       vColumn: TcxGridDBColumn;
       vValue: String;
begin
  vTV:= (Sender as TcxCustomGridTableView);
  vColumn:= TcxGridDBColumn(ACellViewInfo.Item);
  vValue:= MyCustomFunction(InputBox('User Input','Enter value','default_value'));
  if vValue <>'bad_data/not_found' then   
  begin
     DataSet.Edit;
     vColumn.DataBinding.Field.Value := vValue;
     DataSet.Post;
  end
 else   //do nothing...

end;

Rofocale 22-09-2010 16:53:57

ummm.. Bueno mira tengo este codigo que es para un grid normal, ya he buscado pero no encuentro algo similar para una cxgrid mi cxgrid esta asociado a
un cxgrdidBandedTableView1 y como soy novato no se como puedo hacer algo que haga casi lo mismo con un cxgrid

Código Delphi [-]
    grdgrid.Cells[0,1] := '';
    grdgrid.Cells[1,1] := '';
    grdgrid.Cells[2,1] := '';
    grdgrid.Cells[3,1] := '';
    grdgrid.Cells[4,1] := '';
    grdgrid.Cells[5,1] := '';
    grdgrid.Cells[6,1] := '';

Rofocale 22-09-2010 17:20:07

he encontrado esto pero no se si hace lo mismo, alguien me puede dar una mano con las cxgrid?
Código Delphi [-]
cxgrdidBandedTableView1.ViewData.Records[i].Values[j]

gracias

ElDioni 22-09-2010 17:28:45

A lo mejor tienes suerte y alguien te pone exactamente el código que necesitas, pero yo creo que deberías ver la información a la que te apuntaba Neftali y ver hasta donde puedes llegar por tus propios medios y cuando te atasques preguntar como seguir, porque si la gente del foro entiende que no quieres molestarte en ver información y lo quieres todo mascado puede que ellos tampoco se molesten en contestarte.

Un saludo.

Neftali [Germán.Estévez] 22-09-2010 17:38:06

Cita:

Empezado por Rofocale (Mensaje 377158)
he encontrado esto pero no se si hace lo mismo, alguien me puede dar una mano con las cxgrid?

Hazme caso, donde más información puedes encontrar es aquí:
http://www.devexpress.com/Support/Center/

Selecciona VCL y ExpressQuantumGrid Suite en los desplegables y luego busca en el cuadro de consulta.
* Cell Band
* Cell Banded
* Value cell Band
*...

Y el resto de combinaciones que se te ocurran. De verdad que esta gente tiene miles de consultas y multitud de ejemplos en si KB. Seguro que encuentras código como el que necesitas.

Rofocale 23-09-2010 05:23:47

ya busque donde me dijiste puse de todo para lo de las cells no quiero llamar a un cxgrid con un dbtableview si no solo con un tableview porque no quiero asociar la tabla a una tabla fija de la base de datos...
con un grid normal puedo crear los labels de las celdas y asignar los valores facilmente en tiempo de ejecucion

pero realmente no se como hacerlo con un cxgrid he buscado en todo el foro de aqui tambien y no hay casi informacion sobre esto, ya me puse a ver tambien los ejemplos que vienen con la misma devexpress

este es otro ejemplo que tengo con un grid normal pero quisiera cambiarlo por la apariencia bonita que tiene y no se como hacer el codigo,por cierto si he buscado por todos lados no solo quiero que me peguen el codigo pero realmente no encuentro y no se muy bien como hacerlo.. si alguien sabe agradeceria una explicacion si es que me ayudaria para asi poder aprender y se me quede para futuros proyectos

gracias

Código Delphi [-]
            grdVenta.RowCount := iNumero + 2;
            grdVenta.Cells[0,iNumero + 1] := IntToStr(iNumero + 1);       
            grdVenta.Cells[1,iNumero + 1] := sDescrip;                     
            grdVenta.Cells[2,iNumero + 1] := '1';                            // Cantidad
            grdVenta.Cells[3,iNumero + 1] := FloatToStr(fPrecio);            // Precio
            grdVenta.Cells[4,iNumero + 1] := grdDatos.Cells[8,iNumero];     
            grdVenta.Cells[5,iNumero + 1] := FloatToStr(fPrecio*(1-    StrToFloat(grdDatos.Cells[8,iNumero])/100));
            grdVenta.Cells[6,iNumero + 1] := grdVenta.Cells[5,iNumero + 1]; 
            grdVenta.Row := iNumero + 1;

Neftali [Germán.Estévez] 23-09-2010 11:26:52

No se, no debes haber buscado mucho.
Aquí en el foro, es cierto que no hay mucha información, pero en la dirección que te he dicho de la página de las Quantum sí que la hay. Hay que entretenerse en buscar.

También es cierto que yo nunca he trabajado con las quantum en este modo "desconectado", siempre lo he hecho con Base de Datos.

En tu caso, si creas el cxGrid, con un cxGridLevel y le añades una cxGridTableView (que creo que es como está trabajando), puedes hacer cosas como...

Código Delphi [-]
  cxGrid1TableView1.ViewData.DataController.AppendRecord;

Con eso puedes añadir nuevas líneas al Grid (a la TableView).

Código Delphi [-]
  i := cxGrid1TableView1.ViewData.RowCount;
  MessageDlg(IntToStr(i) + ' lineas en el Grid', mtInformation, [mbOK], 0);

Con este puedes consultar cuantas hay.

Código Delphi [-]
  cxGrid1TableView1.ViewData.Records[0].Values[0] := 'col1';
  cxGrid1TableView1.ViewData.Records[0].Values[1] := 'col2';
  cxGrid1TableView1.ViewData.Records[0].Values[2] := 'col3';

Y con este puedes añadir valores a las celdas.



Como te he dicho busca en los foros, en la ayuda y en los ejemplos.

Un saludo.


La franja horaria es GMT +2. Ahora son las 13:47:38.

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