Brad Campbell schrieb:
G'day all,

My application remembers where it was previously by doing a simple save of the current geometry. Top/Left/Width/Height. This appears to have worked well for a while now, but one of the users has just reported he ordinarily uses a dual head setup with my little app on the right hand screen.

Recently after he had unplugged the right hand screen, the app proceeded to put itself there anyway (off the edge of the accessible desktop). Is there an easy way to detect the current screen width, so if I sense my geometry is going to be off the edge I can provide a sane default instead?

This app runs on Win32, GTK2 & Carbon, so I assume the problem will manifest itself on all three, but in this instance it's running on a Mac.

Regards,
Brad
Hello Brad,

Below is how we center our main form when it is created (FormCreate) - you can see from it, how we can ask for the screen width/height - hopefully this will work with dual screen setups too!

Regards,
Alexander

 // always keep space around the window for dock panels (OSX/Win7 etc.)
 // this is the desired size (considering the space around the window)
 w:=round(screen.width - 150);
 h:=round(screen.height - 150);

 // this calculates the best size keeping aspect
 CalcResizeKeepAspect(1024, 768, w, h);
 height:=max(600, h);
 width:=max(800, w);



--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to