U++ framework
Do not panic. Ask here before giving up.

Home » U++ Library support » ArrayCtrl, HeaderCtrl & GridCtrl » large ArrayCtrl
Re: large ArrayCtrl, virtual array count limits [message #19156 is a reply to message #840] Sat, 15 November 2008 18:20 Go to previous messageGo to previous message
jaynorwood is currently offline  jaynorwood
Messages: 7
Registered: May 2008
Promising Member
I'm experiencing limits in the VirtualArray example beyond which there is no refresh. It works for 100million, but not 200million virutal array count in its current form.

I attempted changing some parameters to int64, but the limit still occurs. Below is my modified code.

I'm a bit surprised at the 200 million limit. I thought perhaps a 2Gig limit in the original due to the signed int parameter range.

Aside from figuring out what this strange 200 million limit is about, I'd like to see the framework improved so that int64 ranges could be used throughout.

#include <CtrlLib/CtrlLib.h>

using namespace Upp;

static String sNumberAsText(int64 number)
{
static const char * const digits[20] = {
"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen",
"seventeen", "eighteen", "nineteen"
};
static const char * const tens[10] = {
"", "ten", "twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"
};

if(number < 20)
return digits[number];
if(number < 100)
return tens[number / 10] + String(" ") + sNumberAsText(number % 10);
if(number < 1000)
return digits[number / 100] + String(" hundred ") + sNumberAsText(number % 100);
if(number < 1000000)
return sNumberAsText(number / 1000) + " thousand, " + sNumberAsText(number % 1000);
if(number < 1000000000)
return sNumberAsText(number / 1000000) + " million, " + sNumberAsText(number % 1000000);
if(number < 1000000000000ULL)
return sNumberAsText(number / 1000000000) + " billion, " + sNumberAsText(number % 1000000000);
return "";
}

struct NumberToText : public Convert {
virtual Value Format(const Value& q) const {
int64 n = q;
return n == 0 ? String("zero") : sNumberAsText(n);
}
};

GUI_APP_MAIN
{
ArrayCtrl array;
array.AddRowNumColumn("number", 20);
array.AddRowNumColumn("text", 100).SetConvert(Single<NumberToText>());
array.SetVirtualCount(200000000);
TopWindow win;
win.Zoomable().Sizeable();
win.Add(array.SizePos());
win.Run();
}
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: HomeBudget or DropGrid bug (svn 634)?
Next Topic: Scroll bars and grid ?
Goto Forum:
  


Current Time: Sun Apr 26 11:58:32 GMT+2 2026

Total time taken to generate the page: 0.00596 seconds