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 [message #840 is a reply to message #839] Sat, 04 February 2006 12:10 Go to previous messageGo to previous message
mirek is currently offline  mirek
Messages: 14266
Registered: November 2005
Ultimate Member
Good idea. I have changed it a little

#include <CtrlLib/CtrlLib.h>

static String sNumberAsText(int 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);
	return "";
}

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

GUI_APP_MAIN
{
	ArrayCtrl array;
	array.AddRowNumColumn("number", 20);
	array.AddRowNumColumn("text", 80).SetConvert(Single<NumberToText>());
	array.SetVirtualCount(900000);
	TopWindow win;
	win.Zoomable().Sizeable();
	win.Add(array.SizePos());
	win.Run();
}


and saved as reference/VirtualArray.

Note that some issues you have done in a little bit complicated way - I am not sure whether you wanted to demostrate other things, however I decided to use to smallest possible code (as I always try for reference examples).

Mirek
 
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:28 CEST 2025

Total time taken to generate the page: 0.04162 seconds