My MyTable/MyGrid

Applications, Games, Tools, User libs and useful stuff coded in PureBasic
Cyllceaux
Enthusiast
Enthusiast
Posts: 458
Joined: Mon Jun 23, 2014 1:18 pm
Contact:

Re: My MyTable

Post by Cyllceaux »

there is no link...

I added the source in the code (post 2/3 and 12)
(there is a character limit for posts, so I have to split)
Mr.L
Enthusiast
Enthusiast
Posts: 104
Joined: Sun Oct 09, 2011 7:39 am

Re: My MyTable

Post by Mr.L »

Cyllceaux wrote: Sun May 02, 2021 6:14 pm there is no link...

I added the source in the code (post 2/3 and 12)
ahh, ok... then I really am stupid :lol:

well done, I really like your table!
Can you tell me if it its possible to create a combination of a tree and a list? The tree on the left side and additional columns on the right side? I guess the name would be TreeListView.
User avatar
HeX0R
Addict
Addict
Posts: 980
Joined: Mon Sep 20, 2004 7:12 am
Location: Hell

Re: My MyTable

Post by HeX0R »

Cyllceaux wrote: Sun May 02, 2021 2:48 pm Soooo:

Return starts editing. Editing Return is a commit, Shift+Return is a linebreak.
linebreak works.
Now it feels perfectly fine, good work!
I might have a project, where I could give it a go, not sure if I do it (I had a long ride already, switching between different grid gadgets).
If I go for it, there might follow some more feature requests, or bug reports :mrgreen:
Cyllceaux
Enthusiast
Enthusiast
Posts: 458
Joined: Mon Jun 23, 2014 1:18 pm
Contact:

Re: My MyTable

Post by Cyllceaux »

HeX0R wrote: Sun May 02, 2021 7:34 pm Now it feels perfectly fine, good work!
I might have a project, where I could give it a go, not sure if I do it (I had a long ride already, switching between different grid gadgets).
If I go for it, there might follow some more feature requests, or bug reports :mrgreen:
not really perfect.
At the moment I'm working on
  • column resize
  • row resize
  • fixed columns
  • data grid (unlimited grid)
  • formulas
  • import/export (xml, json, csv, (maybe excel))
and there are some slowdowns at the redraw. I know where and try some solutions
Cyllceaux
Enthusiast
Enthusiast
Posts: 458
Joined: Mon Jun 23, 2014 1:18 pm
Contact:

Re: My MyTable

Post by Cyllceaux »

Next round
Image

New: FixedColumns
New: ColumnsResize
Both features in the new table. (resize only for column ID and Nachname)

Code: Select all

EnableExplicit

UsePNGImageDecoder()

XIncludeFile "mytable.pbi"

Define rowImage=LoadImage(#PB_Any,"C:\Users\silko\OneDrive\Dokumente\Icons\office\png-hot\48x48\Briefcase.png")
Define rowImageSub=LoadImage(#PB_Any,"C:\Users\silko\OneDrive\Dokumente\Icons\office\png-hot\48x48\Lock.png")
Define rowImageSub2=LoadImage(#PB_Any,"C:\Users\silko\OneDrive\Dokumente\Icons\office\png-hot\48x48\Attach.png")

Global mainWindow=OpenWindow(#PB_Any,0,0,1100,600,"MyTable",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)

Global canvasTable=CanvasGadget(#PB_Any,0,0,WindowWidth(mainWindow),WindowHeight(mainWindow),#PB_Canvas_Container|#PB_Canvas_Border|#PB_Canvas_Keyboard)
Global hscrollTable=ScrollBarGadget(#PB_Any,0,GadgetHeight(canvasTable)-20,GadgetWidth(canvasTable)-20,20,0,0,100)
Global vscrollTable=ScrollBarGadget(#PB_Any,GadgetWidth(canvasTable)-20,0,20,GadgetHeight(canvasTable)-20,0,0,100,#PB_ScrollBar_Vertical)              
CloseGadgetList()

Global canvasTable2=CanvasGadget(#PB_Any,0,0,WindowWidth(mainWindow),WindowHeight(mainWindow),#PB_Canvas_Container|#PB_Canvas_Border|#PB_Canvas_Keyboard)
Global hscrollTable2=ScrollBarGadget(#PB_Any,0,GadgetHeight(canvasTable2)-20,GadgetWidth(canvasTable2)-20,20,0,0,100)
Global vscrollTable2=ScrollBarGadget(#PB_Any,GadgetWidth(canvasTable2)-20,0,20,GadgetHeight(canvasTable2)-20,0,0,100,#PB_ScrollBar_Vertical)              
CloseGadgetList()

Global canvasTree=CanvasGadget(#PB_Any,0,0,WindowWidth(mainWindow),WindowHeight(mainWindow),#PB_Canvas_Container|#PB_Canvas_Border|#PB_Canvas_Keyboard)
Global hscrollTree=ScrollBarGadget(#PB_Any,0,GadgetHeight(canvasTree)-20,GadgetWidth(canvasTree)-20,20,0,0,100)
Global vscrollTree=ScrollBarGadget(#PB_Any,GadgetWidth(canvasTree)-20,0,20,GadgetHeight(canvasTree)-20,0,0,100,#PB_ScrollBar_Vertical)              
CloseGadgetList()

Global canvasTree2=CanvasGadget(#PB_Any,0,0,WindowWidth(mainWindow),WindowHeight(mainWindow),#PB_Canvas_Container|#PB_Canvas_Border|#PB_Canvas_Keyboard)
Global hscrollTree2=ScrollBarGadget(#PB_Any,0,GadgetHeight(canvasTree2)-20,GadgetWidth(canvasTree2)-20,20,0,0,100)
Global vscrollTree2=ScrollBarGadget(#PB_Any,GadgetWidth(canvasTree2)-20,0,20,GadgetHeight(canvasTree2)-20,0,0,100,#PB_ScrollBar_Vertical)              
CloseGadgetList()

Global canvasBild=CanvasGadget(#PB_Any,WindowWidth(mainWindow)-150,0,150,WindowHeight(mainWindow),#PB_Canvas_Container|#PB_Canvas_Border|#PB_Canvas_Keyboard)
Global hscrollBild=ScrollBarGadget(#PB_Any,0,GadgetHeight(canvasBild)-20,GadgetWidth(canvasBild)-20,20,0,0,100)
Global vscrollBild=ScrollBarGadget(#PB_Any,GadgetWidth(canvasBild)-20,0,20,GadgetHeight(canvasBild)-20,0,0,100,#PB_ScrollBar_Vertical)              
CloseGadgetList()

Global canvasTable3=CanvasGadget(#PB_Any,WindowWidth(mainWindow)-150,0,150,WindowHeight(mainWindow),#PB_Canvas_Container|#PB_Canvas_Border|#PB_Canvas_Keyboard)
Global hscrollTable3=ScrollBarGadget(#PB_Any,0,GadgetHeight(canvasTable3)-20,GadgetWidth(canvasTable3)-20,20,0,0,100)
Global vscrollTable3=ScrollBarGadget(#PB_Any,GadgetWidth(canvasTable3)-20,0,20,GadgetHeight(canvasTable3)-20,0,0,100,#PB_ScrollBar_Vertical)              
CloseGadgetList()

Global canvasTable4=CanvasGadget(#PB_Any,WindowWidth(mainWindow)-150,0,150,WindowHeight(mainWindow),#PB_Canvas_Container|#PB_Canvas_Border|#PB_Canvas_Keyboard)
Global hscrollTable4=ScrollBarGadget(#PB_Any,0,GadgetHeight(canvasTable4)-20,GadgetWidth(canvasTable4)-20,20,0,0,100)
Global vscrollTable4=ScrollBarGadget(#PB_Any,GadgetWidth(canvasTable4)-20,0,20,GadgetHeight(canvasTable4)-20,0,0,100,#PB_ScrollBar_Vertical)              
CloseGadgetList()



Global splitter=SplitterGadget(#PB_Any,0,0,0,0,canvasTable,canvasTable2,#PB_Splitter_FirstFixed|#PB_Splitter_Separator)
Global splitter2=SplitterGadget(#PB_Any,0,0,0,0,canvasTree,canvasTree2,#PB_Splitter_FirstFixed|#PB_Splitter_Separator)
Global splitter3=SplitterGadget(#PB_Any,0,0,0,0,splitter2,splitter,#PB_Splitter_FirstFixed|#PB_Splitter_Vertical|#PB_Splitter_Separator)
Global splitter4=SplitterGadget(#PB_Any,0,0,0,0,splitter3,canvasBild,#PB_Splitter_SecondFixed|#PB_Splitter_Vertical|#PB_Splitter_Separator)
Global splitter5=SplitterGadget(#PB_Any,0,0,0,0,canvasTable3,canvasTable4,#PB_Splitter_FirstFixed|#PB_Splitter_Separator)
Global splitter6=SplitterGadget(#PB_Any,0,0,WindowWidth(mainWindow),WindowHeight(mainWindow),splitter4,splitter5,#PB_Splitter_FirstFixed|#PB_Splitter_Vertical|#PB_Splitter_Separator)

SetGadgetState(splitter,300)
SetGadgetState(splitter2,300)
SetGadgetState(splitter3,300)
SetGadgetState(splitter4,400)
SetGadgetState(splitter5,300)
SetGadgetState(splitter6,800)

Procedure CanvasTable3Callback(canvas,*row.strMyTableRow)
	Protected titelnr=*row\id
	Protected albumnr=1
	If titelnr>10
		albumnr=titelnr/10
		titelnr-(albumnr*10)
	EndIf
	Protected *cell.strMyTableCell=SelectElement(*row\cells(),0)
	*cell\text="Titel "+titelnr
	*cell=SelectElement(*row\cells(),1)
	*cell\text="Album "+albumnr
	*cell=SelectElement(*row\cells(),2)	
	*cell\text=FormatDate(*cell\col\format,AddDate(0,#PB_Date_Second,Random(10000,100)))	
EndProcedure

Procedure evtResizeWindow()
	ResizeGadget(splitter6,
	             #PB_Ignore,
	             #PB_Ignore,
	             WindowWidth(EventWindow()),
	             WindowHeight(EventWindow()))
EndProcedure

BindEvent(#PB_Event_SizeWindow,@evtResizeWindow(),mainWindow)
BindEvent(#PB_Event_RestoreWindow,@evtResizeWindow(),mainWindow)
BindEvent(#PB_Event_MaximizeWindow,@evtResizeWindow(),mainWindow)

MyTableRegister(mainWindow,canvasTable,hscrollTable,vscrollTable)
MyTableRegister(mainWindow,canvasTable2,hscrollTable2,vscrollTable2,#MYTABLE_TABLE_FLAGS_FULL_ROW_SELECT|#MYTABLE_TABLE_FLAGS_LAST_STRETCH|#MYTABLE_TABLE_FLAGS_GRID)
MyTableRegister(mainWindow,canvasTree,hscrollTree,vscrollTree,#MYTABLE_TABLE_FLAGS_LAST_STRETCH|#MYTABLE_TABLE_FLAGS_HIERARCHICAL_ARROW|#MYTABLE_TABLE_FLAGS_CHECKBOX)
MyTableRegister(mainWindow,canvasTree2,hscrollTree2,vscrollTree2,#MYTABLE_TABLE_FLAGS_LAST_STRETCH|#MYTABLE_TABLE_FLAGS_NO_HEADER|#MYTABLE_TABLE_FLAGS_MULTISELECT)
MyTableRegister(mainWindow,canvasBild,hscrollBild,vscrollBild,#MYTABLE_TABLE_FLAGS_LAST_STRETCH|#MYTABLE_TABLE_FLAGS_NO_HEADER|#MYTABLE_TABLE_FLAGS_GRID)
MyTableRegister(mainWindow,canvasTable3,hscrollTable3,vscrollTable3,#MYTABLE_TABLE_FLAGS_GRID|#MYTABLE_TABLE_FLAGS_MULTISELECT|#MYTABLE_TABLE_FLAGS_CALLBACK,@CanvasTable3Callback())
MyTableRegister(mainWindow,canvasTable4,hscrollTable4,vscrollTable4,#MYTABLE_TABLE_FLAGS_GRID|#MYTABLE_TABLE_FLAGS_MULTISELECT|#MYTABLE_TABLE_FLAGS_STOP_DRAWING)

MyTableAddColumn(canvasTree,"Kategorien",0)
MyTableAddColumn(canvasTree2,"Orte",0)
MyTableSetTableRowHeight(canvasTree2,30)

MyTableAddColumn(canvasTable,"ID",50,#MYTABLE_COLUMN_FLAGS_RIGHT|#MYTABLE_COLUMN_FLAGS_INTEGER)
MyTableAddColumn(canvasTable,"Vorname",200,#MYTABLE_COLUMN_FLAGS_EDITABLE)
MyTableAddColumn(canvasTable,"Nachname",200,#MYTABLE_COLUMN_FLAGS_EDITABLE)
MyTableAddColumn(canvasTable,"Geburtsdatum",150,#MYTABLE_COLUMN_FLAGS_CENTER|#MYTABLE_COLUMN_FLAGS_DATE|#MYTABLE_COLUMN_FLAGS_EDITABLE)
MyTableAddColumn(canvasTable,"Uhrzeit",150,#MYTABLE_COLUMN_FLAGS_CENTER|#MYTABLE_COLUMN_FLAGS_TIME_LONG|#MYTABLE_COLUMN_FLAGS_EDITABLE)


MyTableAddColumn(canvasTable2,"ID",50,#MYTABLE_COLUMN_FLAGS_RIGHT|#MYTABLE_COLUMN_FLAGS_INTEGER|#MYTABLE_COLUMN_FLAGS_MIDDLE)
MyTableAddColumn(canvasTable2,"Firma",200,#MYTABLE_COLUMN_FLAGS_EDITABLE|#MYTABLE_COLUMN_FLAGS_BOTTOM)
MyTableAddColumn(canvasTable2,"Privat",50,#MYTABLE_COLUMN_FLAGS_BOOLEAN|#MYTABLE_COLUMN_FLAGS_CENTER|#MYTABLE_COLUMN_FLAGS_EDITABLE|#MYTABLE_COLUMN_FLAGS_MIDDLE)
MyTableAddColumn(canvasTable2,"Info",150,#MYTABLE_COLUMN_FLAGS_EDITABLE)
MyTableSetTableRowHeight(canvasTable2,40)

MyTableAddColumn(canvasBild,"",150,#MYTABLE_COLUMN_FLAGS_CENTER|#MYTABLE_COLUMN_FLAGS_IMAGE|#MYTABLE_COLUMN_FLAGS_MIDDLE)
MyTableSetTableRowHeight(canvasBild,128)


MyTableSetBackground(canvasTree2,RGBA(10,10,10,255))
MyTableSetForecolor(canvasTree2,RGBA(210,210,210,255))
MyTableSetSelectedforecolor(canvasTree2,RGBA(10,10,10,255))

MyTableSetBackground(canvasBild,RGBA(10,10,10,255))


MyTableAddColumn(canvasTable3,"Titel",0)
MyTableAddColumn(canvasTable3,"Album",0)
MyTableAddColumn(canvasTable3,"Länge",0,#MYTABLE_COLUMN_FLAGS_CENTER|#MYTABLE_COLUMN_FLAGS_TIME_LONG)
MyTableAddDirtyRow(canvasTable3,1000)

MyTableAddColumn(canvasTable4,"ID",0,#MYTABLE_COLUMN_FLAGS_RIGHT|#MYTABLE_COLUMN_FLAGS_INTEGER|#MYTABLE_COLUMN_FLAGS_RESIZEABLE)
MyTableAddColumn(canvasTable4,"Firma",0)
MyTableAddColumn(canvasTable4,"Vorname",0)
MyTableAddColumn(canvasTable4,"Nachname",0,#MYTABLE_COLUMN_FLAGS_RESIZEABLE)
MyTableAddColumn(canvasTable4,"Geburtsdatum",0)
MyTableAddColumn(canvasTable4,"Mail",0)
MyTableAddColumn(canvasTable4,"Telefon",0)
MyTableSetTableFixedColumns(canvasTable4,2)


Define i,g,h
i=0
MyTableRedraw(canvasBild,#False)
If ExamineDirectory(0,"C:\Users\silko\OneDrive\Dokumente\Icons\hardware\png-hot\48x48","*.png")
	While NextDirectoryEntry(0)
		MyTableAddRow(canvasBild,"")
		MyTableSetCellImage(canvasBild,i,0,LoadImage(#PB_Any,"C:\Users\silko\OneDrive\Dokumente\Icons\hardware\png-hot\48x48\"+DirectoryEntryName(0)))
		i+1
		If i=10
			Break
		EndIf
	Wend
	FinishDirectory(0)
EndIf
MyTableRedraw(canvasBild,#True)




MyTableRedraw(canvasTree,#False)
For i=1 To 10
	Define id=MyTableAddRow(canvasTree,"Kategorie "+Str(i),"",#PB_Ignore,rowImage,0,Random(1,0),Random(1,0))	
	For g=1 To Random(5,0)
		Define sub= MyTableAddRow(canvasTree,"SubKategorie "+Str(g),"",#PB_Ignore,rowImageSub,0,Random(1,0),Random(1,0),id)
		For h=1 To Random(3,0)
			MyTableAddRow(canvasTree,"SubKategorie "+Str(g)+" "+Str(h),"",#PB_Ignore,rowImageSub2,0,Random(1,0),Random(1,0),sub)
		Next
	Next
Next
MyTableRedraw(canvasTree,#True)

MyTableRedraw(canvasTable,#False)
For i=1 To 100
	MyTableAddRow(canvasTable,Str(i)+"|Vorname "+Str(i)+"|Nachname "+Str(i)+"|"+FormatDate("%dd.%mm.%yyyy",AddDate(Date(1980,1,1,0,0,0),#PB_Date_Day,i))+"|"+FormatDate("%hh:%ii:%ss",AddDate(Date(),#PB_Date_Second,i)),"|",#PB_Ignore,rowImageSub2)
Next
MyTableRedraw(canvasTable,#True)

MyTableRedraw(canvasTree2,#False)
For i=1 To 100
	MyTableAddRow(canvasTree2,"Ort "+Str(i))
Next
MyTableRedraw(canvasTree2,#True)

MyTableRedraw(canvasTable2,#False)
For i=1 To 10000
	MyTableAddRow(canvasTable2,Str(i)+"|firma "+Str(i)+"|"+Str(Random(1,0))+"|Info "+Str(i)+#CRLF$+"UnterInfo "+Str(i))
Next
MyTableRedraw(canvasTable2,#True)

For i=1 To 10000
	MyTableAddRow(canvasTable4,Str(i)+"|firma "+Str(i)+"|Vorname "+Str(i)+#CRLF$+"|Nachname "+Str(i)+"|"+FormatDate("%dd.%mm.%yyyy",AddDate(Date(1980,1,1,0,0,0),#PB_Date_Day,i))+"|012345678-"+Str(i)+"|test"+Str(i)+"@test.de")
Next
MyTableRedraw(canvasTable4,#True)


MyTableAutosizeColumn(canvasTable,#PB_Ignore)
MyTableAutosizeColumn(canvasTable2,#PB_Ignore)
MyTableAutosizeColumn(canvasTable3,#PB_Ignore)
MyTableAutosizeColumn(canvasTable4,#PB_Ignore)

PostEvent(#PB_Event_SizeWindow,mainWindow,0)

Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow

MyTableUnRegister(canvasTable)
MyTableUnRegister(canvasTable2)
MyTableUnRegister(canvasBild)
MyTableUnRegister(canvasTree)
MyTableUnRegister(canvasTree2)
MyTableUnRegister(canvasTable3)
MyTableUnRegister(canvasTable4)

User avatar
HeX0R
Addict
Addict
Posts: 980
Joined: Mon Sep 20, 2004 7:12 am
Location: Hell

Re: My MyTable

Post by HeX0R »

Would it be possible to add at least the icons to your examples like this:

Code: Select all

DataSection
	Pic1:
	;briefcase.png"
	Data.l $474E5089, $0A1A0A0D, $0D000000, $52444849, $20000000, $20000000, $00000608, $7A7A7300, $000000F4, $58457419, $666F5374, $72617774, $64410065, $2065626F, $67616D49, $61655265
	Data.l $C9717964, $00003C65, $44494804, $DA785441, $8C4B57CC, $3D144554, $AFDEAAF5, $4C26C607, $4183068C, $624086C4, $6546A5D4, $0EC4E316, $C4DECE8C, $FC4A5C4F, $BA295C6C, $5D1A0372
	Data.l $62B8919A, $64251C61, $89217134, $6362B891, $699866A2, $12824489, $4F60D3E5, $55EF7EBF, $77556F71, $C2DD03DB, $4AD46E9B, $AAF53FAA, $EF7539CE, $09F75BAD, $CFFE0C63, $9BBEC82D
	Data.l $F7F9DC35, $FA2758AD, $57F9A98C, $3CAE7CB7, $40DAD553, $7A0EDAE7, $821083D2, $B3333FFA, $BDAAD941, $204F3CEB, $F66162D3, $68A7A9E0, $D6455B28, $80F62307, $246E186A, $175D1C90
	Data.l $EBB68289, $9EC5232C, $E72BD094, $FD4D8CAB, $44048DF2, $548F73BC, $8155DF6C, $560BBAD6, $8F6891B8, $B8FE4E80, $EC64C60C, $7820119B, $D204AFAE, $0C04EA56, $300580A1, $DEBFE396
	Data.l $2004FD8E, $52A40DCF, $37273C96, $8B18DB0C, $3535FB31, $92949028, $6059DC96, $8358C6B8, $015F7B4E, $697CA9CC, $C02247C9, $C0101562, $CF294827, $8663251E, $C38DA013, $0B4175CA
	Data.l $4CB7E404, $B5C31CF7, $1630A186, $2015174B, $CCD27549, $C34E9247, $60151648, $E91ADF9C, $3F280448, $0281E4E8, $33664841, $243138EC, $BA5871BB, $31D00C78, $621018A4, $431C0538
	Data.l $0048558C, $3DF49DC7, $009C079B, $B3EDE6B1, $942AC600, $84CE3207, $9A715292, $ED701BB9, $080277D6, $09922B2B, $4906495B, $9DAEE857, $576D6177, $912BEAE1, $66F318B1, $ABE081EA
	Data.l $B7247637, $45112657, $365691A5, $E70366CD, $D4C6BF16, $BC853FDB, $82027EC7, $24B7D785, $893E769B, $F8E30DF1, $7B33E176, $18E28D93, $A47F3A70, $17EA34FA, $C3F338EA, $73BEA817
	Data.l $83A22BAA, $E5791C1E, $43F364CE, $1E50D8B3, $37DAA5C7, $15E7E5F8, $E28C485B, $73617014, $6E313DF7, $2E28FADB, $F4E3AC5C, $BCCC7989, $608AD67B, $FCF73574, $AF33F31D, $0513DA1D
	Data.l $BE32F474, $61FA2901, $E53C05AC, $A7109043, $7B627456, $3F573F80, $669B7C37, $B630A6AE, $61949036, $1CAD9A25, $773C0E47, $7E8F85F4, $8C20E59B, $E4F66103, $F1382BAD, $602B7EC9
	Data.l $E8F7BEF7, $819345BB, $A3EC1F63, $115A164C, $6D186B1D, $E4C113AE, $5DDD13C2, $26967933, $01D2FDD8, $C2FAE2C2, $5FF7B1C7, $CFB602B6, $327307EC, $73080B37, $EA4DFB4D, $EDC6C788
	Data.l $A3F7FCE4, $C84D5BC8, $2E222F6D, $4B0A83AD, $2C7CCD94, $04B45C9D, $76952ADB, $AEFE69D1, $5CF8A87C, $BF3F6C5A, $768C82AF, $2A0D259E, $5F2236C2, $1C9C90FA, $04997E11, $64E62E38
	Data.l $D9E0166E, $611D693F, $4017025C, $BC04DD72, $4A8B49B4, $79109174, $420C2314, $15FB5F7C, $8ADA6EF7, $F34CB972, $BC0AD774, $1A02497B, $67CB10CD, $81FFB86A, $12B49107, $0C20E648
	Data.l $8404FD7F, $8D2C211F, $ED337AC1, $4B94F00A, $5E9104BD, $FDB10121, $7320D30D, $C44B36A7, $5C88B463, $EA214610, $B3B5017F, $AE1F2C35, $FDDEE8C1, $4B60F753, $95139E76, $994FFA62
	Data.l $86314494, $8DFB0910, $07144BC6, $276972C6, $6D2225C0, $3AAD2CC8, $636020FC, $43CDEE62, $8F98D416, $A4C4F931, $78049645, $EE7022FE, $377C0C4F, $849CA5B0, $657CAB9D, $67B9B14B
	Data.l $D2F9A31F, $7A9C9D8A, $E5A50F9C, $00AECE62, $5552778A, $76F81047, $A77BD33F, $B74C02DA, $3B00E120, $D633D6F8, $339283D4, $935D84BB, $BEFB2052, $7BD3B24B, $DAF06DA7, $B0AEDCB4
	Data.l $3B398B99, $26A5CC02, $F87A7F8E, $EE8D87CB, $2E11097D, $2CEC7AC8, $B30DC7DC, $DD66B9AF, $99BC58B5, $E71C2DCB, $9EB27E41, $13EA66FA, $5B86EE83, $F862F8D0, $D169FA83, $6FDB8D26
	Data.l $125FE22D, $63A0B6C0, $FCFF9586, $00AAFBF5, $9EEF0003, $91A850EF, $000085C2, $45490000, $42AE444E
	Data.b $60, $82
	Pic2:
	;lock.png"
	Data.l $474E5089, $0A1A0A0D, $0D000000, $52444849, $20000000, $20000000, $00000608, $7A7A7300, $000000F4, $58457419, $666F5374, $72617774, $64410065, $2065626F, $67616D49, $61655265
	Data.l $C9717964, $00003C65, $44498105, $DA785441, $6C4B57B4, $FE18451B, $B6BBD776, $B7129493, $D24DA3CD, $3A9D69BA, $0849A3CD, $0A437009, $5C2E0712, $44555090, $D405A025, $A0903703
	Data.l $C6E0854A, $385AAAAD, $71210554, $02551681, $2153940E, $34DB4949, $5347930F, $24414D27, $7979C3CE, $F0EEEF6D, $49C6ECCF, $1C7638D3, $63C8F631, $F7CCECCF, $FFF7FF7F, $8C6258FF
	Data.l $24937D61, $7C9A6909, $2797E2E1, $81F5C514, $C0B52B2C, $65A6B3EA, $E4C91AF6, $7E9DEF17, $B57D0AE7, $FEB06DD2, $005B293C, $AA7DBD6F, $E6E699F0, $7B3DA2FE, $0081034A, $E5EDF6CA
	Data.l $5AD181BB, $17319645, $EC78439D, $87070621, $F8E8E9FE, $9757E8FD, $0366CE2E, $DA2C85C0, $F4DE3789, $9C686B1D, $40686A6E, $C6394545, $FB7027C6, $AC0A4F4E, $2D28A9AA, $6D5D4629
	Data.l $3A1F0E0D, $BB71EA58, $7C7AE267, $2E57D7D7, $3BDA64CF, $B71A001B, $16D6F9FC, $A1E417E4, $489FD6F3, $C9444D26, $8534D362, $17AF5E45, $911C78F1, $07FC34C8, $EDADA3F6, $CC2FCC45
	Data.l $FD8013F7, $3B627CF4, $73F6E400, $292C9E9F, $17A12E2E, $A5F0E8BA, $CDCC25E5, $686861CE, $3D7BDBE8, $45F26F77, $2FF57575, $5E040E1C, $0A0FFBF7, $65151530, $96091E08, $773F6D9C
	Data.l $27ECFDB2, $44D33697, $C79A0026, $575339EB, $A3078357, $85965861, $170448E9, $2D7F9FCE, $A4181A14, $E8BE05F9, $DEBF1BB7, $D783060C, $FEFBBD4E, $3315DC77, $5438B333, $3AB627E9
	Data.l $65F4D0CF, $0B5A7AEA, $12F00033, $7DF2C1C3, $8E9A9865, $1A6A6A60, $2E4647F7, $34DDE1D3, $C27D4A37, $50A1A3E9, $78787BA8, $C506E698, $40699683, $7BE41482, $26714A6C, $D33F088D
	Data.l $912D8B8B, $870E11D0, $27DFA17F, $FE3A2FA9, $C9E3384D, $CFF0B1F1, $A28A45DC, $48160690, $96465623, $0C900133, $0896E4C3, $3CE8D100, $A1FD5DAE, $6D74A1C3, $FEB1F13C, $9DABB5E3
	Data.l $6414C891, $2C58CB0A, $D88373C6, $60003B63, $0B7C0310, $E1B3800E, $B46C6E1C, $7AE9CF94, $B12B61DC, $05B600C2, $D3F26120, $8A384A15, $CD15B63D, $7C31CA36, $62CA6E2E, $0371EF3D
	Data.l $64B007DB, $6ECA61B8, $163E5218, $AF321A93, $052860D7, $F102E430, $59B6A66C, $7EEF562A, $86B6F7BE, $DA658D78, $468ACAB4, $A130ABE6, $465AE06C, $599098D6, $29202282, $3D176566
	Data.l $C77DDCCD, $91BBFC3E, $52B726BE, $CFEED40B, $5ACB7BCA, $6A2AAE5F, $7CE44579, $C95A9C48, $AE9D3839, $9CB31D68, $C9FAC4CE, $E898EBAE, $E9B069F8, $1CB587A3, $20B5B644, $5557248F
	Data.l $E612F4D4, $7F8C7C6E, $B4B14627, $105820B8, $25CA904C, $7386C459, $18A0132C, $87462A25, $F8029EAB, $5850CB8A, $C6A28952, $7AE004E3, $7A93DF15, $A84CDB34, $241B0509, $3FBE5278
	Data.l $2A0740D0, $BD43C3A9, $9955505D, $94E4A0AA, $60D30662, $A66D1C08, $200A696C, $86040DC2, $8B1A7525, $92B6D068, $3F83258A, $F51001C3, $C2FF460F, $0DC03132, $6E3C00E6, $497DDD15
	Data.l $6763D1FC, $3DEAE7D8, $0B75AA68, $35F63C60, $890A3E77, $08F11F01, $62C30623, $DA41F369, $5F71652C, $F378F891, $18A75657, $647FB5E0, $FA7A16F0, $EC0AF875, $B9B8F93D, $FAEA8DDE
	Data.l $3A42BB56, $D0CD080C, $A1CB161E, $14F45A1A, $CFDCF423, $A40FEE0F, $BC00E018, $0DE81A79, $B2C4EA8F, $EE066F93, $AB000875, $9982140C, $272BD8BA, $5B3D1C00, $C17700C7, $1A1740D0
	Data.l $1E18BD6B, $4D505DB6, $F464CB63, $B02E42D9, $F0E01956, $A2A8B88D, $85C0065B, $FC765925, $224065AF, $0BAAA84D, $AE8D41D5, $001B315F, $42DD758D, $88874F5F, $F9031482, $611B9E3E
	Data.l $80B83958, $C465820C, $CAFE1584, $6C80C4A3, $86E39D87, $BE41D261, $305EA56B, $5679A91C, $33819DA8, $700C52C0, $472C5A37, $42664817, $6066C908, $04B1D1DE, $D55B9517, $CC9E42ED
	Data.l $FFB6B59C, $4C3A0005, $B030ACF3, $95A116DB, $42210893, $560A3568, $0DC99019, $B44EBEA1, $336D3DB4, $483B2540, $3F96E7FE, $32A700CE, $B9089B96, $C3089806, $5CF00CF5, $090810A0
	Data.l $6E636749, $5FF93F75, $0C53D35C, $65308B94, $9CE59506, $20B7E018, $81927F43, $9AD5D2C7, $9492BC42, $28A9101D, $87200CE0, $49C6E028, $7E722E2C, $5A581898, $B0FEA68C, $65C7F46C
	Data.l $312A6FED, $80A92BE0, $4855076F, $1129C8CB, $C2C13D31, $07FB9EA1, $D8653582, $B37BB851, $DC4F6BBF, $58576C4A, $4212FD64, $27A08F03, $89734E10, $778E5B49, $6FA1C7D2, $9EFCEF4E
	Data.l $18055DB2, $651CD4B6, $127AD008, $442FC7E3, $461FA55F, $FACC3578, $BB1F403E, $FEA3EFA8, $A7373654, $480252B4, $7D4478BD, $C0FBA37A, $A72237A6, $6E996B86, $E0C819B6, $ADE5F6D7
	Data.l $7FF088DE, $FDE7F5B5, $B400C027, $D24DDDCB, $00796BA3, $49000000, $AE444E45
	Data.b $42, $60, $82
	Pic3:
	;attach.png"
	Data.l $474E5089, $0A1A0A0D, $0D000000, $52444849, $20000000, $20000000, $00000608, $7A7A7300, $000000F4, $58457419, $666F5374, $72617774, $64410065, $2065626F, $67616D49, $61655265
	Data.l $C9717964, $00003C65, $4449CF04, $DA785441, $4C7D57AC, $3F14555B, $16D0B5EF, $D85070DC, $94968C0A, $CDD10431, $F128CE6D, $1231A18F, $2D7E6621, $9C460D46, $0473259A, $71239F8D
	Data.l $0CC344D3, $99A2C99B, $CCB71738, $1AC988B9, $CCD98C4D, $E3648112, $88828863, $A3E5B5C5, $F4613DF2, $CF3DF5F3, $BE857D79, $5B683F62, $E7BBC272, $E7B9CEFE, $B9EE7B9C, $208230F7
	Data.l $C31FB840, $9EE76130, $2EBF5BD9, $82D05747, $1D01DDA0, $BE105E22, $EADBB49B, $9E689CCE, $5B87C60B, $00C38987, $EFFD85E6, $69D6331A, $79D8AAFF, $FDBDDC27, $53AB5076, $CB9709C5
	Data.l $7EBB5703, $BF2BB687, $D373BFC2, $E4F8BE9B, $3B5A61FD, $3CD406A9, $2A2DAB55, $DCF532D9, $ED60479E, $BCE8349A, $63230036, $C6DCE213, $63B0F5BC, $2FCC296B, $73ABE038, $B07983DF
	Data.l $CDF4DB37, $0648E9A9, $3F756128, $D9516165, $75E89DC9, $7C2A5A5A, $5823FADD, $CE9ED62C, $342D4BB6, $B2A2A3B9, $EDB7FCCE, $7D1E27AE, $E3E30800, $BD9127BC, $AB0B891B, $68069570
	Data.l $D529A994, $E846A5E5, $A36DCF22, $BF379FDD, $33F90FB7, $D9DBD934, $C352F3D6, $B738E3A1, $66F94B6D, $5FD3DAB8, $0B48324D, $ABB214E1, $A2954034, $16599B44, $A1A7C6C6, $51CAF7BF
	Data.l $469059E4, $200CB224, $0A7C6C6F, $3F80C418, $2188AAEC, $D7F2168D, $C0BB1D0F, $2F156C30, $8D23A6F0, $9802BEAF, $038E3E16, $FC34E4FB, $0E87E972, $7BB650C4, $F11CFC24, $0155762A
	Data.l $E7F01887, $A3274450, $3E834045, $A075BD54, $1A3FCC56, $781F5E73, $FD605EBC, $DE481DCA, $3B7D3C20, $6138B8BC, $1A421898, $C0B500CD, $7370B00B, $8D3FE811, $4BC7AB49, $7CF389DE
	Data.l $8E0598E0, $6393C8BB, $A1803212, $B874DE30, $0C89C296, $3BC87AF0, $54509226, $80A7CC4C, $4E9C3854, $C70F2A99, $F0E4F3C9, $AB2C0BB1, $9F79E2A8, $E620E9A9, $DC4C4AC9, $D18B1011
	Data.l $2B2DC3A2, $4545214A, $3E9262C3, $860F7954, $8E91AD87, $702A441D, $1E863EAB, $90CE5BAF, $38F3572B, $E03E7DE6, $564F2905, $20331262, $31909BD4, $2E27A943, $4CEB2C2E, $82E8045E
	Data.l $A33961E3, $62B1C743, $3A008FE2, $3FCDA218, $1F128D0E, $52B12651, $FFCE121C, $F05725BB, $32039992, $78AF5047, $7851081F, $00CB240C, $42978F01, $5352F056, $390F9656, $FC4CA56F
	Data.l $850EA006, $25D25982, $A1529FE0, $DE5FACC0, $DE26FA73, $C887E652, $45095424, $9DB9592B, $E40A654A, $1786C86E, $2DE91BEB, $712B7E20, $551AD40B, $0C849958, $E8AC3050, $2F1BE8B9
	Data.l $6EE766B8, $6D96B7A8, $312351A2, $E0791BE9, $FE5CB872, $32882012, $2CC52B49, $6B19415E, $1FFB816E, $F5F7D6AC, $6E5C3474, $F39A26BF, $225F9630, $B97DA301, $8E6817BD, $0CCCDA30
	Data.l $61884651, $8046A20F, $93851C2A, $7AF9A01E, $96D9C163, $FD9117A3, $1FF7DE06, $5CF330A8, $5C07ADE2, $3BFB775F, $5FCE993F, $40EEBA7C, $C2B706A5, $DF8905BF, $E3D78286, $6627DB36
	Data.l $720B0A8B, $686A36C1, $2E215E42, $16D48AD4, $E7F078B8, $F1A7A244, $D0DF2EBC, $01945844, $14768D92, $67016DA2, $369CB11F, $DC811F5F, $36182D1C, $BFF7D2EA, $D2A7D1FD, $BF488362
	Data.l $13DF4449, $C2184734, $46C90C92, $D2C7117A, $A6CDD017, $71F83FAF, $B3F7BE3B, $A00A8A4A, $AE1FABA3, $3D17C6DB, $4C5EE76E, $E8A9218F, $34AAA715, $F4F3D027, $C197B77B, $FD46D9A0
	Data.l $E1F34CC2, $DA70FB86, $BC4B3D4A, $2845098D, $2BA39B53, $E6F7DDAF, $28EEDBCF, $3D62B281, $C0CE4F8C, $DF0C65B0, $97114E09, $A301A69E, $94A30F21, $5643FD05, $841BEEE8, $DC3FC753
	Data.l $A7693D35, $53FACCE8, $88CEFE29, $AC9CAEFA, $3DB70DEC, $E76BF2FB, $33EB74F2, $A00D8B4B, $B0C9D7CF, $0C3B51D6, $0C60590C, $67F4FF37, $4CCCF647, $B207F3FD, $E62F0327, $AA335B44
	Data.l $F948D930, $FF3E4F35, $F9B8DE98, $635A9571, $BECA8210, $58B4E5DB, $D6FCFF87, $56CBFE74, $4D228E1C, $CD993B11, $2D624529, $ADD21652, $49416948, $F44F4BCC, $3497521B, $242BD41F
	Data.l $25663BB5, $11D23443, $E39E8266, $3D1C749C, $8B104192, $3009FF01, $2DBC8600, $68ED11A1, $0000001D, $4E454900, $6042AE44
	Data.b $82
	PicEnd:
EndDataSection
Cyllceaux
Enthusiast
Enthusiast
Posts: 458
Joined: Mon Jun 23, 2014 1:18 pm
Contact:

Re: My MyTable

Post by Cyllceaux »

yes... sure... but give me a moment please, I want to finish the row resize :)
Cyllceaux
Enthusiast
Enthusiast
Posts: 458
Joined: Mon Jun 23, 2014 1:18 pm
Contact:

Re: My MyTable

Post by Cyllceaux »

Sooooo... next Version:

Image
  • RowResize
  • ColumnResize
  • AutoSize Row/Column (DoubleClick)
  • CSV Export
And cause of reasons... I don't like to split my code to post it here. So I made a github project.
https://github.com/Cyllceaux/MyTable

The project (main.pb) contains now all images.
User avatar
HeX0R
Addict
Addict
Posts: 980
Joined: Mon Sep 20, 2004 7:12 am
Location: Hell

Re: My MyTable

Post by HeX0R »

Are there any plans to add comboboxes also?
Cyllceaux
Enthusiast
Enthusiast
Posts: 458
Joined: Mon Jun 23, 2014 1:18 pm
Contact:

Re: My MyTable

Post by Cyllceaux »

yes and no...

In my first version der were a DateGadget, which doesn't work very well. (years lower 1970)
I had A LOT of workarounds and alternative gadgets and functions (DateQ, Autocomplete,...) but I'm not sure about the benefit.

But I think I have an idea. A Callback to override the Edit-Gadget. Or does it sound stupid?

I want add some more callbacks, like Rightclick on cells, cols, rows... and I'm still on the formula feature.
User avatar
HeX0R
Addict
Addict
Posts: 980
Joined: Mon Sep 20, 2004 7:12 am
Location: Hell

Re: My MyTable

Post by HeX0R »

It doesn't sound stupid at all, no.
But I didn't want to interrupt your progress, just go on with all the stuff you need.
In the end, you can decide what makes sense and what not.
I would have a need for comboboxes, but it is not that important, that project runs already pretty well (with esgrid from srod... only Windows was required), there is no real need for me to swap.
Cyllceaux
Enthusiast
Enthusiast
Posts: 458
Joined: Mon Jun 23, 2014 1:18 pm
Contact:

Re: My MyTable

Post by Cyllceaux »

I used esgrid and exgrid a lot but since all of my programs are made with the DialogManager, I can't use them anymore. And yes, in fact the windows-only problem... and there are some other issues which only make them usable with a lot of workarounds (e.g. DPI, encodings... and so on).
And it's slow sometimes. That mocks me most.
Cyllceaux
Enthusiast
Enthusiast
Posts: 458
Joined: Mon Jun 23, 2014 1:18 pm
Contact:

Re: My MyTable

Post by Cyllceaux »

Hey there,
Next Version: https://github.com/Cyllceaux/MyTable
  • RightClick on Cell, Row and Column
  • SpecialDebug for Performance
  • CustomEdit for Cells (Combobox Example)
  • Performance Update
There are still lots of things to do. 8)
User avatar
HeX0R
Addict
Addict
Posts: 980
Joined: Mon Sep 20, 2004 7:12 am
Location: Hell

Re: My MyTable

Post by HeX0R »

Cyllceaux wrote: Thu May 06, 2021 12:37 pm CustomEdit for Cells (Combobox Example)
Damn, now I'm running out of excuses not to rebuild my project :lol:
Just tested it, seems to work exactly as needed.
Cyllceaux
Enthusiast
Enthusiast
Posts: 458
Joined: Mon Jun 23, 2014 1:18 pm
Contact:

Re: My MyTable

Post by Cyllceaux »

I changed the AutoSizer for Columns and now you can change the Images for Sort, Checkboxes, and Folding Icons.
And I fixed an embarrassing DPI-Bug.

In that state, I don't check size for the Images, so you must create a 16x16 Images.
Post Reply