Ø Its a less certain thing as its still the future, but its my guess likely in 5 years netbooks/laptops and mobile and phone OS will largely kill desktop PCs and in time likely Windows too, as there is not much sign they will be the leading candidate for mobile devices in 5 years. Hence the more cross platform and new UI (read touchscreen) enabled a language is the better positioned it will be.
I am confident that touchscreen is a fad as far as desktop PCs or even notebooks are concerned. Why am I so confident? Because its simply not new - if it were going to go mainstream it could have and would have done so years ago. Touchscreens have been with us for years and the price premium for touch isnt that much greater now than it has ever been. Almost 10 years ago I implemented an equivalent to the touchscreen keyboard demod by Malcolm, for a touchscreen application I was working on back then. I had a little smile to myself when he mentioned a rumoured or speculated ability to define the layout for that keyboard control as this was exactly how my implementation worked it was a general purpose keyboard control, but the keys it displayed were entirely configurable. I still have the code, and heres a standard QWERTY layout (declared as an array) for the control I implemented. Keys with a VKCode display the specified Caption in full. Keys with a 0 VKCode displayed either one of the two character of the caption the first unshifted, the second (if specified) when shifted. So as you can tell from this particular layout, test entry using this particular layout was entirely upper case: const // An array of TtsKeyDef records that defines the keyboard layout for a // "simple" QWERTY keyboard (i.e. with no number pad). // // An entry in the array with an empty Caption, a VKCode of 0 (zero) and a // Proportion of 0 (zero) indicates an end of row or end of column. SIMPLE_KEYS : array [0..60] of TtsKeyDef = ( (Caption: 'Esc'; VKCode: VK_ESCAPE; Proportion: 1), (Caption: '1!'; VKCode: 0; Proportion: 1), (Caption: '2"'; VKCode: 0; Proportion: 1), (Caption: '3£'; VKCode: 0; Proportion: 1), (Caption: '4$'; VKCode: 0; Proportion: 1), (Caption: '5%'; VKCode: 0; Proportion: 1), (Caption: '6^'; VKCode: 0; Proportion: 1), (Caption: '7&'; VKCode: 0; Proportion: 1), (Caption: '8*'; VKCode: 0; Proportion: 1), (Caption: '9('; VKCode: 0; Proportion: 1), (Caption: '0)'; VKCode: 0; Proportion: 1), (Caption: '-_'; VKCode: 0; Proportion: 1), (Caption: '=+'; VKCode: 0; Proportion: 1), (Caption: 'Backspace'; VKCode: VK_BACK; Proportion: 2), (Caption: ''; VKCode: 0; Proportion: 0), (Caption: 'TAB'; VKCode: VK_TAB; Proportion: 1.5), (Caption: 'Q'; VKCode: 0; Proportion: 1), (Caption: 'W'; VKCode: 0; Proportion: 1), (Caption: 'E'; VKCode: 0; Proportion: 1), (Caption: 'R'; VKCode: 0; Proportion: 1), (Caption: 'T'; VKCode: 0; Proportion: 1), (Caption: 'Y'; VKCode: 0; Proportion: 1), (Caption: 'U'; VKCode: 0; Proportion: 1), (Caption: 'I'; VKCode: 0; Proportion: 1), (Caption: 'O'; VKCode: 0; Proportion: 1), (Caption: 'P'; VKCode: 0; Proportion: 1), (Caption: '[{'; VKCode: 0; Proportion: 1), (Caption: ']}'; VKCode: 0; Proportion: 1), (Caption: '#~'; VKCode: 0; Proportion: 1), (Caption: ''; VKCode: 0; Proportion: 0), (Caption: 'CAPS'; VKCode: VK_CAPITAL; Proportion: 2), (Caption: 'A'; VKCode: 0; Proportion: 1), (Caption: 'S'; VKCode: 0; Proportion: 1), (Caption: 'D'; VKCode: 0; Proportion: 1), (Caption: 'F'; VKCode: 0; Proportion: 1), (Caption: 'G'; VKCode: 0; Proportion: 1), (Caption: 'H'; VKCode: 0; Proportion: 1), (Caption: 'J'; VKCode: 0; Proportion: 1), (Caption: 'K'; VKCode: 0; Proportion: 1), (Caption: 'L'; VKCode: 0; Proportion: 1), (Caption: ';:'; VKCode: 0; Proportion: 1), (Caption: '''@'; VKCode: 0; Proportion: 1), (Caption: 'ENTER'; VKCode: VK_RETURN; Proportion: 2), (Caption: ''; VKCode: 0; Proportion: 0), (Caption: 'Shift'; VKCode: VK_LSHIFT; Proportion: 1.5), (Caption: '\|'; VKCode: 0; Proportion: 1), (Caption: 'Z'; VKCode: 0; Proportion: 1), (Caption: 'X'; VKCode: 0; Proportion: 1), (Caption: 'C'; VKCode: 0; Proportion: 1), (Caption: 'V'; VKCode: 0; Proportion: 1), (Caption: 'B'; VKCode: 0; Proportion: 1), (Caption: 'N'; VKCode: 0; Proportion: 1), (Caption: 'M'; VKCode: 0; Proportion: 1), (Caption: ',<'; VKCode: 0; Proportion: 1), (Caption: '.>'; VKCode: 0; Proportion: 1), (Caption: '/?'; vKCode: 0; Proportion: 1), (Caption: 'SHIFT'; VKCode: VK_RSHIFT; Proportion: 2.5), (Caption: ''; VKCode: 0; Proportion: 0), (Caption: 'Ctrl'; VKCode: VK_CONTROL; Proportion: 2), (Caption: ' '; VKCode: VK_SPACE; Proportion: 11), (Caption: 'Ctrl'; VKCode: VK_CONTROL; Proportion: 2) ) ; Touch has long been present and successful in niche verticals. All that has changed is that in recent years touch has found a new vertical that is more directly exposed to consumers handheld devices. Give me a Delphi that can produce applications for handheld devices and then we can talk. Mac/Linux may be a stepping stone to that ambition, but I see no point in wasting time on a cross-platform VCL that will have to be maintained alongside its richer and more capable Windows VCL big brother. I was often slapped down for suggesting that a Unicode switch be supported because of the need to maintain and support two VCL frameworks, one Unicode and one ANSI (the supposition that this would be necessary was a mistake imho, but thats a different discussion). Yet maintaining two VCLs, one of which is required from a single-source to support 3 significantly different platforms is somehow less of a problem? No, handhelds are one thing. Desktops or even notebooks, laptops are something else. Holding out your hand at arms length to manipulate a screen directly is neither comfortable nor accurate enough for prolonged daily activity. The touch support in Delphi is very cool. Its just not very useful. Having said that, the tablet form factor is the platform where the Delphi touch support may have a place but then begs the question again of how relevant cross platform support is in respect of this technology. How many Mac/Linux tablets are there? Ø Also apps are moving more to be web enabled, where the UI is done by the browser instead, This would seem to contradict your own argument for the need for a cross platform Delphi. If the browser is to be the host for the client application then a Mac or Linux version of Delphi is just as irrelevant as even a Windows version. So why are we even bothering to fret about ANY future direction for Delphi?
_______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: delphi@delphi.org.nz Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: unsubscribe