Al,
        I never thought of creating my SplashForm without an owner, but when
I read your reply to Joe I got thinking about this.  I gave it a try and
sure enough, it solved the visual problems with my MainForm!  Evidently
D2009 is confused when more then one form is owned by the Application in the
dpr!  Is that strange or what? 

from "Robert Meek" dba "Tangentals Design"
Creative Concepts Programming for Windows Vista
E-mail:  ffo...@comcast.net

See my full review of Dr. Bob's 'Delphi 2009 Development Essentials' at:
http://edn.embarcadero.com/article/39782 

Best quote from CNN Morning News  8/12/09:
"WTF...Carrie Underwood was #9!  Opps!  Did I say that again?" 


-----Original Message-----
From: delphi-boun...@elists.org [mailto:delphi-boun...@elists.org] On Behalf
Of Alan Colburn
Sent: Friday, August 14, 2009 12:16 PM
To: Borland's Delphi Discussion List
Subject: Re: Unable to Get Handle On Monitor

Thanks, Jeremy. I'm using Delphi 2006. I experimented with different default
monitor settings, and always got the same error. All that changed was the
line in which the error happened; the line corresponded to whatever I had
set for the default monitor property. I will continue to experiment, using
your stable code as a starting point.

Thanks again -- Al

p.s. D2006 doesn't have an Application.MainFormOnTaskBar property.


On Thu, Aug 13, 2009 at 5:52 PM, Jeremy North <jeremy.no...@gmail.com>
wrote:

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;
_______________________________________________
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