Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
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: Fri Jul 18 11:45:15 CEST 2025

Total time taken to generate the page: 0.03421 seconds