Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Recoger datos de un TreeView a un DBgrid (https://www.clubdelphi.com/foros/showthread.php?t=59310)

cslbcn 22-08-2008 09:09:10

Recoger datos de un TreeView a un DBgrid
 
Hola! Espero que me podáis ayudar con este problemas. He intentado que me salga, de verdad, pero no hay manera, os explico.

Tengo un TreeView con unos Items dentro (Figura 1)


Figura 1

Cuando pulso dentro de TreeView, quiero que se me abra otro Form (Form2) y que en un DBgrid me muestre los datos del TreeView de esta manera (Figura 2)


Figura 2

Alguna idea?
Gracias de antemano

tcp_ip_es 22-08-2008 10:05:47

Pero los datos que hay en el treeview los tienes en la base de datos no?? ya que sino un Dbgrid no te puede mostrar datos de un treeview asi por que si :D

cslbcn 22-08-2008 10:08:16

Los datos estan en una base de datos, pero primero quiero hacerlo poniendo los items manualmente, sin que los recoja de la base de datos.

No hay manera de hacerlo sin bbdd??

cslbcn 22-08-2008 10:09:53

EDITO: puede que me equivoque
es un StringGrid

tcp_ip_es 22-08-2008 11:35:52

Entonces los datos los quieres pintar manualmente en el treeview y en el StringGrid???
Si es asi cuando pulses en el treeview recorrelo nodo a nodo y añadelo al stringgrid y muestra el formulario.... no se si es lo que quieres...

cslbcn 22-08-2008 11:37:46

los datos en el treeview los introduzco manualmente. Cuando hago click en el treeview se me tiene que abrir el form2 con la parrila y dentro los datos del treeview que los recoge del treeview.

Lo que no me sale es como desplazar datos del treeview al grid.

tcp_ip_es 22-08-2008 12:33:09

para pasar de un treeview a un stringgrid tendrás que aprender a utilizar los dos objetos mirate la ayuda de delphi o mirate por los foros código referente a los dos objetos...

treview
http://www.clubdelphi.com/foros/show...light=treeview

stringgrid

http://www.clubdelphi.com/foros/show...ght=stringgrid

hay que currárselo un poco :D

Caro 22-08-2008 14:21:06

Hola cslbcn, tienes que recorrer tu TreeView y preguntar por el nivel si es 0 ira como encabezado de tu StringGrid y asi sucesivamente, te pongo un ejemplo de como mas o menos tendrías que hacerlo.

Código Delphi [-]
var
 i, aCol, ARow : Integer;
begin
 aCol := 0;
 ARow := 1;
 for i:=0 to TreeView1.Items.Count-1 do
  begin
   if TreeView1.Items[i].Level=0 then
    begin
     Inc(aCol);
     StringGrid1.Cells[aCol,0] := TreeView1.items[i].Text;
     ARow := 1;
    end
   else
    begin
     StringGrid1.Cells[aCol,aRow] := TreeView1.items[i].Text;
     Inc(aRow);
    end;
  end;
end;

Cita:

Empezado por tcp_ip_es (Mensaje 308761)
hay que currárselo un poco :D

Una pregunta tcp_ip_es, que significa currárselo :confused:, suena un poco raro la palabrita.

Saluditos

cslbcn 22-08-2008 14:39:53

entiendo. y de esta manera el grid del form2 recibirá los datos del treeview del form1?

Caro 22-08-2008 14:50:06

Cita:

Empezado por cslbcn (Mensaje 308778)
entiendo. y de esta manera el grid del form2 recibirá los datos del treeview del form1?

Solo tienes que hacer referencia al StringGrid del formulario del cual quieres llenar.

Código Delphi [-]
   ..............................
   .............................
     form2.StringGrid1.Cells[aCol,0] := TreeView1.items[i].Text;
     ARow := 1;
    end
   else
    begin
     form2.StringGrid1.Cells[aCol,aRow] := TreeView1.items[i].Text;
     Inc(aRow);
    end;
  end;//for
 form2.Show;

Saluditos

cslbcn 22-08-2008 15:02:25

vale vale. ya lo entiendo.

Soy muy, pero que muy novato en delphi y me piden hacer cosas dificiles para mi, cuando aun no sé qué significa procedure... pero bueno.

muchas gracias por vuestra ayuda

tcp_ip_es 25-08-2008 09:20:18

:D Currárselo significa trabajarselo o laburarselo , vamos que buscará un poco por su cuenta y no darselo todo hecho :D espero que te sirva la respuesta :p

Trabajar=Currar=Laburar

Caro 25-08-2008 14:13:01

Cita:

Empezado por tcp_ip_es (Mensaje 309171)
:D Currárselo significa trabajarselo o laburarselo , vamos que buscará un poco por su cuenta y no darselo todo hecho :D espero que te sirva la respuesta :p

Trabajar=Currar=Laburar

esta claro amiguito tcp ;), conste que no le he dado todo hecho, tenía que seguir currandosela :D.

Saluditos


La franja horaria es GMT +2. Ahora son las 08:19:04.

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