mojaSymfonia FORUM
https://forum.mix-soft.pl/

Drzewo w MxGrid
https://forum.mix-soft.pl/viewtopic.php?f=15&t=4196
Strona 1 z 1

Autor:  infonet [ 2012-09-24, 13:30 ]
Tytuł:  Drzewo w MxGrid

Jak w ambasic stworzyć drzewo w mxgrid?
Mam ustawione mxgrid.TreeMode = 1. Dodaje wiersze za pomocą InstertRow i drzewa nie widzę.

Autor:  rafal [ 2012-09-24, 21:54 ]
Tytuł:  Re: Drzewo w MxGrid

Powinieneś użyć TreeMode = 3

Kod:
// typy kolumn w MxGrid
#define ftString   0   
#define ftInt      1   
#define ftLong      16
#define ftMoney      2
#define ftDate      3
#define ftBitmap      17
#define ftCheck      7
#define ftDrop      128

#define COL_ROOT_ID      1
#define COL_PARENT_ID   2
#define COL_NAME      0

#define EC_DROPLISTITEM   35

dispatch Grid

//----
int Sub AddColumn(dispatch g, string ColName, int ColWidth, int ColType, int ColSize, int ColHidden, int ColLocked)
//----
   int col

    G.ColumnCount = G.ColumnCount + 1
    col = G.ColumnCount - 1
    G.Columns(col).Name       = ColName
    G.Columns(col).Width       = ColWidth
    G.Columns(col).FieldType(ColType,ColSize)
    G.Columns(col).hidden       = ColHidden
    G.Columns(col).Locked       = ColLocked

endsub

//----
int Sub AddRow(dispatch g, int root_id, int parent_id, string nazwa)
//----
dispatch dRow

   // dodanie wiersza
   dRow = g.InsertRow(-1)
   dRow.Value(COL_NAME)      =   nazwa
   dRow.Value(COL_ROOT_ID)   =   root_id
   dRow.Value(COL_PARENT_ID)   =   parent_id

   // ustawienie drzewa
   g.Execute(51,COL_ROOT_ID,COL_PARENT_ID)    

endsub

//----
int sub OnCommand(int id, int msg)
//----
int i,k

   if msg==0 && id==0 then
      grid.columncount = 0
      grid.treemode = 3

      AddColumn(grid, "nazwa", 100, ftString,200, 0, 1)
      AddColumn(grid, "root_id", 100, ftLong,200, 0, 1)
      AddColumn(grid, "parent_id", 100, ftLong,200, 0, 1)

   

      for i = 1 to i > 10
         for k = 0 to k > 10
      
            AddRow(grid, i, k, using "wiersz %3.3d:%3.3d",i,k)
   
         next k
      next i


   endif

endsub

FORM "Przykład drzewa", 1000,800
   BUTTON "Anuluj",5,740,80,25,-1
   CONTROL "grid",grid,5,5,985,730

int rv = ExecForm(OnCommand)


wyremuj na chwilę linię

Kod:
   g.Execute(51,COL_ROOT_ID,COL_PARENT_ID) 


wtedy zrozumiesz jak to działa

Załącznik:
mxgrid01.jpg
mxgrid01.jpg [ 41.23 KiB | Przeglądany 3133 razy ]

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/