7

Possible Duplicate:
Start program on a second monitor?

I have two monitor a monitor connected to my laptop. How can I choose the monitor where my application will show?

Also how can I detect how many monitor do I have connected so that I can select one ?

Thanks

Community
  • 1
  • 1
Jlouro
  • 4,515
  • 9
  • 60
  • 91

1 Answers1

7

Use the Screen object.

Getting the monitor count

ShowMessage(IntToStr(Screen.MonitorCount))

Getting monitor details

Screen.Monitors[i].Left (integer)
                  .Top (integer)
                  .Width (integer)
                  .Height (integer)
                  .BoundsRect (TRect)
                  .WorkareaRect (TRect)
                  .Primary (boolean)

where i is the index of the monitor, that is, i = 0, 1, ..., Screen.MonitorCount - 1.

So, for instance, to make the form occupy the entire ith monitor, use

BoundsRect := Screen.Monitors[i].BoundsRect; // or you could make the rect smaller
WindowState := wsMaximized; // possibly
Andreas Rejbrand
  • 105,602
  • 8
  • 282
  • 384