Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Docking Question

Posted on 2002-05-18
7
Medium Priority
?
285 Views
Last Modified: 2010-04-04
Hi,

I am writing an app and I would like to implement docking.  I have two questions I would like to ask.  I'll give 50 points for each question with a grade of A.

1. How do I prevent floating windows (which are undocked) from being closed?  IE.  If you undock a panel, it gives you a ToolWindow style window with a close control.  I'll like to make it impossible for this ToolWindow to close.

2. How to you automatically show the docking caption bar in the application?  I'll explain.  If you have a control docked, by default you don't get the double lined caption bar above the control.  The way I force this is to first undock the control using Control.ManualDock(nil) in the FormCreate, then Control.ManualDock(DockContainer) in the FormShow.  This works well, but the docked controls flash up on the screen when they're being created.  It's not neat.

Delphi manages this well with the Messages ListBox which docked at the bottom of the editor.

Thanks for any info.

Stu

0
Comment
Question by:Stuart_Johnson
7 Comments
 
LVL 3

Expert Comment

by:tongalite
ID: 7019167
Hi

this should deal with the first part of your question:
a small example, Delete the messagebox code if you wish and just use the Canclose:=False; command.

// hook up the FormCloseQuery event

procedure TForm1.FormCloseQuery
(Sender: TObject; var CanClose: Boolean);
begin
if MessageDlg('Really close this window?',
 mtConfirmation, [mbOk, mbCancel], 0) = mrCancel then
 CanClose := False;
end;

good luck
T.
0
 
LVL 6

Author Comment

by:Stuart_Johnson
ID: 7019171
Hi T,

It's not the form that closing, it's the undocked component.  Components don't have a FormCloseQuery event.

Stu
0
 
LVL 3

Expert Comment

by:tongalite
ID: 7019490
OOPS!
Silly me! :)
Sorry about that, I misunderstood.
t.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
LVL 14

Expert Comment

by:DragonSlayer
ID: 7020628
Okay this might not be a solution, but you can try using the Toolbar2000 components (http://www.jrsoftware.org/tb2k/). Either the component itself (or one of its plugins) will be able to do what you want.
0
 
LVL 6

Author Comment

by:Stuart_Johnson
ID: 7020638
Hi DS,

Thanks for that, but I'm trying to steer clear of 3rd party components.  There must be a way of doing it without using components.

I just found out that if you 'close' a ToolWindow containing the undocked controls, Delphi doesn't actually close the window, but hides it.  So, I can quite easily reshow the control if needed.

Stu
0
 
LVL 6

Author Comment

by:Stuart_Johnson
ID: 7061172
I'm going to ask for this question to be deleted as there was no additional information provided.

Please post any objections.

Stu
0
 
LVL 1

Accepted Solution

by:
Moondancer earned 0 total points
ID: 7061753
50 points refunded, question closed.  This has been "pending deletion"; but will not complete without Moderator intervention once comments have been added.
Moondancer - EE Moderator
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
This video shows how to quickly and easily deploy an email signature for all users in Office 365 and prevent it from being added to replies and forwards. (the resulting signature is applied on the server level in Exchange Online) The email signat…
With just a little bit of  SQL and VBA, many doors open to cool things like synchronize a list box to display data relevant to other information on a form.  If you have never written code or looked at an SQL statement before, no problem! ...  give i…
Suggested Courses

578 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question