You didn't state your delphi version or which default monitor settings are applied to the forms.
A project source as below works as expected for me on a multi-monitor system. This is in Delphi 2009. program SplashTest; uses Forms, SysUtils, MainForm in 'MainForm.pas' {Form29}, DataModule in 'DataModule.pas' {data: TDataModule}, SplashForm in 'SplashForm.pas' {frmSplash}; {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(Tdata, data); frmSplash := TfrmSplash.Create(nil); try frmSplash.Show; frmSplash.Update; Application.CreateForm(TForm29, Form29); finally FreeAndNil(frmSplash); end; Application.Run; end. I just run a simple loop in the FormCreate to delay the launching and allow the marquee progress bar to update on the splash. If you want the test project I can can it to you directly. procedure TForm29.FormCreate(Sender: TObject); var LCnt: Int64; I: Integer; begin LCnt := 0; for I := 1 to 99999999 do begin Inc(LCnt, I); Application.ProcessMessages; end; Caption := IntToStr(LCnt); end; On Fri, Aug 14, 2009 at 1:16 AM, Alan Colburn<aicolb...@hotmail.com> wrote: > > Thank you all for your responses. It looks like I need to keep experimenting > :-) > > > > Jeremy, the actual problem is an access violation that occurs in the first > few lines of the TCustomForm.SetWindowToMonitor method of the Forms unit. > Depending on how I've set the default monitor property in my forms, it'll be > either line 3958, 3960, or 3963. In each case, the program is unable to get a > value for a Monitor.Handle property. > >> Date: Thu, 13 Aug 2009 11:37:11 +1000 >> Subject: Re: Unable to Get Handle On Monitor >> From: jeremy.no...@gmail.com >> To: delphi@elists.org >> >> So what is the actual problem? >> >> >> On Thu, Aug 13, 2009 at 4:31 AM, Alan Colburn<aicolb...@hotmail.com> wrote: >> > >> > Hi folks -- >> > >> > When I start my app with: >> > >> > Data:=TData.Create(Application); >> > Application.Title := 'Performance Gradebook'; >> > Application.CreateForm(TfrmMain, frmMain); >> > Application.Run; >> > >> > everything works fine. (Data is a DataModule.) >> > >> > However, when I add a splash screen I run into problems: >> > >> > Data:=TData.Create(Application); >> > frmSplashScreen := TfrmSplashScreen.Create(nil); >> > try >> > frmSplashScreen.Show; >> > Application.Initialize; >> > frmSplashScreen.Update; >> > Application.Title := 'Performance Gradebook'; >> > Application.CreateForm(TfrmMain, frmMain); >> > frmSplashScreen.Hide; >> > finally >> > frmSplashScreen.Free; >> > end; >> > Application.Run; >> > >> > The problem relates specifically to users with dual monitors--see the >> > subject line; it's in the Forms unit in the TCustomForm.SetWindowToMonitor >> > block. I've never really used two monitors before, so I'm kind of lost in >> > terms of what is happening. Do you have any thoughts? >> > >> > Thanks, as always -- Al C. >> > _________________________________________________________________ >> > Get your vacation photos on your phone! >> > http://windowsliveformobile.com/en-us/photos/default.aspx?&OCID=0809TL-HM >> > _______________________________________________ >> > Delphi mailing list -> Delphi@elists.org >> > http://lists.elists.org/cgi-bin/mailman/listinfo/delphi >> > >> _______________________________________________ >> Delphi mailing list -> Delphi@elists.org >> http://lists.elists.org/cgi-bin/mailman/listinfo/delphi > > _________________________________________________________________ > Get your vacation photos on your phone! > http://windowsliveformobile.com/en-us/photos/default.aspx?&OCID=0809TL-HM > _______________________________________________ > Delphi mailing list -> Delphi@elists.org > http://lists.elists.org/cgi-bin/mailman/listinfo/delphi > _______________________________________________ Delphi mailing list -> Delphi@elists.org http://lists.elists.org/cgi-bin/mailman/listinfo/delphi