Splash windows for all your special occations
Splash windows can be used to dress up many parts of
your application. You could use them at the
initialization of your application to display copyright
and other information, or you could use them to display
"please wait messages" while your application
is in the middle of long operations. You could also use
variations of "splash windows" to display
floating tool bars and other properties. Well, you get
the picture. Here's how to create a simple splash window
dynamically:
var
WaitForm : TForm;
WaitLabel : TLabel;
function WaitStart(
TheParent : TComponent;
sMsg : string )
: boolean;
begin
Result := False;
// create our message form
// only if it's not already
// created
if( Nil = WaitForm )then
begin
WaitForm :=
TForm.Create( TheParent );
with WaitForm do
begin
Position := poScreenCenter;
Width := 500;
Height := 25;
// create the message label
WaitLabel :=
TLabel.Create( WaitForm );
with WaitLabel do
begin
Align := alClient;
Alignment := taCenter;
Font.Height := -30;
ParentFont := False;
Caption := sMsg;
Parent := WaitForm;
end;
// hide the title bar
SetWindowLong( Handle,
GWL_STYLE,
GetWindowLong(
Handle, GWL_STYLE )
and not WS_CAPTION );
ClientHeight := Height;
Show;
Update;
end;
Result := True;
end;
end;
procedure WaitSetMsg( sMsg : string );
begin
WaitLabel.Caption := sMsg;
WaitForm.Refresh;
end;
function WaitEnd : boolean;
begin
Result := False;
if( Nil <> WaitForm )then
begin
WaitForm.Hide;
WaitForm.Free;
WaitForm := Nil;
Result := True;
end;
end;
|
Here's a sample on how to use above splash windows
functions:
// start the splash window
WaitStart( Self {or Nil},
'Please wait...' );
// start the long operation...
WaitSetMsg( 'Almost done!...' );
// continue the operation...
WaitSetMsg( 'One more second...' );
// complete the operation
WaitSetMsg( 'Done.' );
// wait a bit here if you want users
// to see the "done." message
// close the splash window
WaitEnd;
|
Applicable Keywords : Components, Delphi, Delphi 2.x, Functions