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

Reply via email to