Re: How long Win32 viable?




"Ingvar Nilsen" <my.adress@xxxxxxxxxxxx> wrote in message
news:42d8d955$1@xxxxxxxxxxxxxxxxxxxxxxxxx
> Roger Lascelles wrote:
> > Win32 so far is a bitmapped world where images map straight onto
> > monitor pixels.
>
> I think you mean graphics card pixels?
Yes.

>> You do find programmers turning off the TForm.Scaled property and
>> requiring users to run at 96 dpi.

> Well, if you have a bitmap painted on the form, and don't want to
> stretch it, you have no other choice..

When you say "you have no other choice", you are indicating the problem with
the pixel based world we have with the Win32 API approach to graphics. I
would translate your comment as meaning that your apps are designed for one
bitmapped screen resolution - a contradiction in a GUI world where device
drivers separate us from differences in actual hardware capabilities.

I think you do have a choice, even now, but you may have to write more code.
If you stop your form scaling, your app is out of step beside all the other
windows apps which are running at the same time - for example, at some
resolutions, users see small buttons and windows and small windows when
using your app.

I certainly do think that a non-scaled application might have a shorter life
than a scaled one, where both use the Win32 API. A real example is laptop
screens with their smaller pixels. With my eyesight, I would have to run a
1280 x 1024 15" laptop at 120 dpi - 96 dpi is unreadable. Now just imagine
if laptop pixel density comes to the desktop. Then add another degree of
pixel shrinking - not inconceivable over the next 10 years. 96dpi Win32
programs will look like midgets and people can't use them.

I design at 96 dpi and eliminate resolution assumptions. I test my apps
running scaled at 120 dpi. I tend to add code which calculates control
positions as forms are resized. I realise that button graphics will shrink
in proportion at higher dpi, and so I try to make them on the large side at
96 dpi, and put text on buttons when possible. Sizeable forms are also good
insurance against future resolution changes, because the user can always
size to fit their future mega screens. It is not easy when you have a
bitmapped background - I have had some success with stretched bitmaps,
expecially when the bitmap has a lot more pixels than the form it is
stretched onto.

Back in the old days of defining dialogs in resource files, Microsoft had a
special standard dialog unit which was screen resolution independent, so
they have known about this problem for 20 odd years. It is interesting that
Windows did not take off until scalable True Type fonts replaced the
bitmapped fonts.

Its just an issue ticking away which will affect the life of Win32 programs.
Microsoft built the issue into Win32 and Delphi accepts that limitation and
we can't defeat it - just minimize it to give our apps decent lifespans.

Roger


>
> > Only in the last few years have PCs had the power to run Avalon type
> > display technology.
>
> Interesting, I know almost nothing about this, yet, can you elaborate?
>
> --
> Ingvar Nilsen
> http://www.ingvarius.com
>


.



Relevant Pages

  • Re: Problem with SavePicture, and a question on new versions
    ... > mode does not have to be in pixels. ... 500 pixels then the picture box will also be 700 x 500 pixels. ... and the bitmap shows ... to be *smaller* than the scale units that the BitBlt API is using ...
    (comp.lang.basic.visual.misc)
  • Anti-aliasing idea for bitmap
    ... How to edit a button's bitmap so that only the button ... I load an 8-bit bitmap as a resource. ... and edit its pixels depending on which state the button is in. ... Problem: No anti-aliasing. ...
    (microsoft.public.win32.programmer.gdi)
  • Re: how to get a bitmap from the screen and then inside lisp?
    ... Getting pixels off the screen quickly is a bit complicated and you ... have to do some decoding of Windows bitmap data structures. ... int x, int y, int w, int h, ... // get the window handle ...
    (comp.lang.lisp)
  • Re: Delphi Roadmap (by David I)
    ... The programloads a bitmap, and applies a gaussian blur to it. ... image was 4105x3182 pixels. ... Under win32, my gaussian blur routine uses 3.0-3.1 seconds per run, ... Without copying to and from this buffer, ...
    (borland.public.delphi.non-technical)
  • Porting of Bitmap code from Win32 to Windows CE
    ... I am trying to port a Win32 application to Windows CE but have a problem. ... The application places a bitmap image on the screen, ... unsigned char startColumn = m_dispDriver.GetColumn; ... CRect m_clientRect; ...
    (microsoft.public.windowsce.embedded.vc)