Task Bar Entries and dialog hiding
D6 RB7.04 EUR with Report Explorer and modal Designer
One option in our app is a standalone program for the Report Explorer.
My users didn't like having a main program entry on the task bar that
didn't actually have a form so I followed an ng posting and used a
SetWindowLong in the FormCreate of the main dummy form to hide it from
the Task bar.
However once that is done then dialog boxes (such as error messages
from the report explorer or even the query designer) can get hidden if
the user switches focus.
What are my options? Is there a way to only have one task bar entry
that will always focus the active modal form/dialog. At least in my
case all the major forms are modal.
What is the purpose of having a separate task bar entry for the main
form, the report explorer and the designer given that they are (I
think) all modal?
Many thanks
Rick Matthews
Dartek Systems Inc.
One option in our app is a standalone program for the Report Explorer.
My users didn't like having a main program entry on the task bar that
didn't actually have a form so I followed an ng posting and used a
SetWindowLong in the FormCreate of the main dummy form to hide it from
the Task bar.
However once that is done then dialog boxes (such as error messages
from the report explorer or even the query designer) can get hidden if
the user switches focus.
What are my options? Is there a way to only have one task bar entry
that will always focus the active modal form/dialog. At least in my
case all the major forms are modal.
What is the purpose of having a separate task bar entry for the main
form, the report explorer and the designer given that they are (I
think) all modal?
Many thanks
Rick Matthews
Dartek Systems Inc.
This discussion has been closed.
Comments
Delphi applications do not inherently manage the application, taskbar, or
modal windows very well. (The Delphi IDE has the same issue). I thinks its a
flaw in their application architecture.
To manage the windows more effectively, implement an event-handler for the
the Application.OnActivate event.
Example:
if Screen.ActiveForm.WindowState = wsMinimized then
Screen.ActiveForm.WindowState := wsMaximized;
Screen.ActiveForm.BringToFront;
--
Nard Moseley
Digital Metaphors Corporation
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Cheers,