xGrid (Spreadsheet / Grid Control) for PB4

Developed or developing a new product in PureBasic? Tell the world about it.
User avatar
aszid
Enthusiast
Enthusiast
Posts: 162
Joined: Thu May 01, 2003 8:38 pm
Location: California, USA
Contact:

Post by aszid »

hmm... i would say prolly the best thing, would be to just clear the contents of the current selected sheet. No need to clear them all.

CSV files are pretty much the most basic spreadsheet type files there are... multiple sheets don't need to be supported for the format... but if you could load 3 different CSV files i could see how that would be handy.

just my 2 cents.
--Aszid--

Making crazy people sane, starting tomorrow.
User avatar
Progi1984
Addict
Addict
Posts: 806
Joined: Fri Feb 25, 2005 1:01 am
Location: France > Rennes
Contact:

Post by Progi1984 »

Some tips (from openoffice to xgrid):
- When i click on the cell on the top of 1, and on the left of A, that selects all.
- When we choose multiple cases, the bitmap on bottom right corner shoud permit to resize the selected rectangle
- Bug #1 :
1 - I dbl click on a case
2 - I write =
3 - I click on a another case
4 - Error of the compiler
File : xGrid.pb
Line : 1291
Error : Specified Address is null !
- Bug #2 :
1- I launch Main.pb
2 - I click on the cross for closing the window
3 -Error of the compiler
File : xGrid.pb
Line : 11047
Error : The memory pointer passed to Freememory() is invalid.
Some ideas :
- More examples (code more short)
- Documentation

- Insert line before/after selected
- Insert row before/after selected
- Hide / Show lines
- Choose height of row
- Choose width of column
- Delete row/column
- Management of rtf for cell content like bold, italic, underline, alignment, color, font style
- Management of different borders
- Undo / Redo
User avatar
Progi1984
Addict
Addict
Posts: 806
Joined: Fri Feb 25, 2005 1:01 am
Location: France > Rennes
Contact:

Post by Progi1984 »

I may preview export and load from Excel 2 and Excel 97 from a prime time if you develop again your grid !
Xombie
Addict
Addict
Posts: 898
Joined: Thu Jul 01, 2004 2:51 am
Location: Tacoma, WA
Contact:

Post by Xombie »

I have not forgotten xGrid. I somewhat recently began reworking the code to make it cleaner and faster. Make take a little bit of time but I wasn't happy with the old code.

Hope that answers your question!
User avatar
Progi1984
Addict
Addict
Posts: 806
Joined: Fri Feb 25, 2005 1:01 am
Location: France > Rennes
Contact:

Post by Progi1984 »

Xombie wrote:I have not forgotten xGrid. I somewhat recently began reworking the code to make it cleaner and faster. Make take a little bit of time but I wasn't happy with the old code.

Hope that answers your question!
That answers my questions !
And i follow your project ...
User avatar
GG
Enthusiast
Enthusiast
Posts: 266
Joined: Tue Jul 26, 2005 12:02 pm
Location: Lieusaint (77), France

Post by GG »

Progi1984 wrote
That answers my questions !
And i follow your project ...
Idem for me...
Purebasic 6.12 64 bits - Windows 11 Pro 64 bits 23H2
quasiperfect
Enthusiast
Enthusiast
Posts: 157
Joined: Tue Feb 13, 2007 6:16 pm
Location: Romania
Contact:

any news on xgrid ?

Post by quasiperfect »

any update on xgrid ?
Xombie
Addict
Addict
Posts: 898
Joined: Thu Jul 01, 2004 2:51 am
Location: Tacoma, WA
Contact:

Post by Xombie »

I'm still working on it. Worked on it quite a while yesterday. I'd estimate a couple of weeks before I put something out. I'm almost completely rewriting it to update the logic and add in a lot of optimizations.

Sorry for the delay but I haven't forgot!
quasiperfect
Enthusiast
Enthusiast
Posts: 157
Joined: Tue Feb 13, 2007 6:16 pm
Location: Romania
Contact:

glad to hear that

Post by quasiperfect »

great to hear that take u'r time the final result is important
thanks for u'r time and effort i know that the development of component is not a easy task

best regards
Xombie
Addict
Addict
Posts: 898
Joined: Thu Jul 01, 2004 2:51 am
Location: Tacoma, WA
Contact:

Post by Xombie »

Just to prove I haven't been slacking off, here's a test app showing what I've got so far. It may not seem like much but most of the groundwork is done. The rest is just adding stuff. Mostly it's selecting and moving things around.

The logic is totally rebuilt and should be quicker. Also, I've been following a way of only writing to an area once so that flicker is drastically minimized.

Column size limit will be around 702 and row limit is almost limitless. Far greater than Excel 2003 or before.

Drawing has been completely overhauled and should look and perform much more Excel-like.

I suspect the rest of the coding should follow much more quickly and nicely.

Sorry the demo isn't much at the moment.

http://www.seijin.net/Storage/xGrid-Test.zip
rsts
Addict
Addict
Posts: 2736
Joined: Wed Aug 24, 2005 8:39 am
Location: Southwest OH - USA

Post by rsts »

Very impressive.

No noticable flicker here at all.

Nice work.

cheers
Xombie
Addict
Addict
Posts: 898
Joined: Thu Jul 01, 2004 2:51 am
Location: Tacoma, WA
Contact:

Post by Xombie »

Thanks, rsts :)

First, the good news...

I'm home now so I can mention a little more about what this version signifies. The only time I draw over an area twice is when I draw the small corner rectangle in a single ranged selection. Everything else is drawn once. In the old version, I'd paint a white background, paint the cells, paint background colors and just layer on stuff as I needed it. That leads to flickering in larger areas.

Also, I've completely redone every single procedure. I've moved my custom hybrid arrays around to store information more intelligently and started saving shortcut information more often. That helps tremendously in the size of the code as well as the complexity. Already the selection process is probably only 20% as complex as the original. I guess it just comes with learning as I go.

The tabs are manually drawn which gives me more power over what I can do with them. I can easily color parts as needed and blend in the selected tab with the sheet so you can easily see which tab is selected - like Excel. also like Excel I've gone with tab selector buttons on the bottom left. Also manually drawn. Those aren't useful in the demo as only three tabs are visible but I've tested them out with much more and they work great. I'll just have to iron out a delayed click problem.

The grid itself is more intelligent. Again, like Excel, the maximum scrollbar positions increase as you scroll in either directions. At start it looks like you can only scroll twice in either direction but if you hold down the scroll arrows, use the mouse scroll button or hold down the middle button you'll see that the range increases until you reach the preset maximum number of columns and rows. Header text will change to white if the column or row is selected so you can actually see what's happening. That effect happens with the tabs as well - if you have a dark colored tab, the text will change to white. There is no layered painting. I simply paint the new information once over the old.

As I've said, the demo looks sparse but most of the base code is there. I'm going to add in making selections with the keyboard (won't take long), add in a few other keyboard commands and then add in the in-cell edit box. After that I'll take another look at my expression evaluator and spruce it up a bit to (hopefully) make it even faster. I'll probably also add in a custom "SupaText" module to do special text formatting in-cell. Like having some words bold and some not, some with different sizes, etc...

From there I'll start adding in the other bells and whistles.

Now the bad news which will probably turn nearly everyone away. The final product will not be free. I'm thinking of pricing but it will most likely be a one time $5 payment with eternally free upgrades. This will be in the form of a library with documentation. The plus side is that if I ever reach a point where I find that I can't continue updating, I'll release the (well documented so far) code to the registered users. There may be a slight license agreement on that but probably not much of anything.

If that turns you off, sorry. I just can't even think of maintaining something that large without some compensation. Job and life intrudes and I'd need motivation beyond just "let me see if I can make that faster/better".

I think that's it for now. I'm post more complete demos in the near future.

Take care!
Karbon
PureBasic Expert
PureBasic Expert
Posts: 2010
Joined: Mon Jun 02, 2003 1:42 am
Location: Ashland, KY
Contact:

Post by Karbon »

Xombie, don't apologize for trying to make a living.

Food isn't free, neither is good software!

Charge more than $5 and don't get updates forever -- that's silly. Your updates cost you time and money. It's reasonable to get updates for a period of time (I do a year) but free updates for life is bad for you and your customers.

Good luck!
-Mitchell
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net
User avatar
yoxola
Enthusiast
Enthusiast
Posts: 386
Joined: Sat Feb 25, 2006 4:23 pm

Post by yoxola »

Cna't see a thing wrong of charging it, however you have to beat srod's eGrid down if you want to use it for food.
Xombie
Addict
Addict
Posts: 898
Joined: Thu Jul 01, 2004 2:51 am
Location: Tacoma, WA
Contact:

Post by Xombie »

@Karbon - thanks ^_^ I'll think about it but I probably will stick with somewhere around $5 and free updates. My reasoning is that it's not a huge major project like billing software. It's a supplement that other people use in their programs. Also, I do enjoy working on it.

@yoxola - I'm not out to beat anyone. eGrid and xGrid are completely different schools of thought. And, also, I'm not doing this to try and make money to live off of. I'm doing it for a little extra compensation and to motivate me to continue working on it.

One other thing that I'm not sure I stressed is that the final project will be a new spreadsheet-like gadget that can be used in your own project. I'm not marketing an executable Excel clone. The demo is just so you can quickly see the current progress. I think I said as much but wanted to make sure that's clear.
Post Reply