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   |
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();
}
|
|
|
 |
|
large ArrayCtrl
By: hojtsy on Wed, 04 January 2006 14:28
|
 |
|
Re: large ArrayCtrl
By: mirek on Wed, 04 January 2006 14:48
|
 |
|
Re: large ArrayCtrl
By: hojtsy on Wed, 04 January 2006 16:32
|
 |
|
Re: large ArrayCtrl
By: mirek on Wed, 04 January 2006 17:54
|
 |
|
Re: large ArrayCtrl
By: hojtsy on Sat, 04 February 2006 11:18
|
 |
|
Re: large ArrayCtrl
By: mirek on Sat, 04 February 2006 12:10
|
 |
|
Re: large ArrayCtrl
By: hojtsy on Sat, 04 February 2006 13:05
|
 |
|
Re: large ArrayCtrl, virtual array count limits
|
 |
|
Re: large ArrayCtrl, virtual array count limits
By: mirek on Sun, 16 November 2008 18:58
|
 |
|
Re: large ArrayCtrl, virtual array count limits
|
Goto Forum:
Current Time: Fri Jul 18 15:27:08 CEST 2025
Total time taken to generate the page: 0.00736 seconds
|