Solved

Following a TForm on screen

Posted on 2001-08-17
8
256 Views
Last Modified: 2010-04-06
I need a way to follow a TForm object (Main window) on the screen so that another TForm object (Secondary Window) can follow the first one... I see two ways to do this:

1- I could try to find an event that is called everytime the Main window moves and move my secondary window according to that,

or

2- Set my second window as a child of the Main window. To do this, I would have to find a way to keep this window over every other controls at anytime.

How can I do any of  this?

GunDamn
0
Comment
Question by:comptebidon81
  • 5
  • 2
8 Comments
 
LVL 40

Expert Comment

by:Richard Quadling
ID: 6397446
You could try docking them? (Does that work outside the form? Try NOT using the docking manager)

Or, in the onMouseMove event for one form, position the second form (just like your first suggestion).

Regards,

Richard Quadling.
0
 
LVL 1

Accepted Solution

by:
sundayboys earned 150 total points
ID: 6397517
Main window moves Message:WM_WINDOWPOSCHANGED
0
 

Author Comment

by:comptebidon81
ID: 6397652
sundayboys:
everything works fine except the left property of the form is never updated!
Any idea?

GunDamn
0
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 

Author Comment

by:comptebidon81
ID: 6397701
Richard Quadling:
I dont have any "spot" where I could dock the form, it has to be over the other controls. And the OnMouseMove is not called on the form for the title bar.

Has I said, I tried the WM_WINDOWPOSCHANGED. It works but I still can't find the way to get the left property at runtime. It keeps giving me the left value I gave to my window in design.

What's going on?
GunDamn
0
 
LVL 40

Expert Comment

by:Richard Quadling
ID: 6397741
If the one form is over the other and you want to keep it that way, it sounds like you should be using MDI.

Is the one form acting as a container for the other? If so, then this is the behaviour for MDI.

I created a little form with a label and a timer.

The timer is set to an interval of 10 milliseconds.

The timer event is ...

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption := IntToStr(Form1.Left);
end;

When I move the form with the mouse, the label changes fine.

Added a button.

procedure TForm1.Button1Click(Sender: TObject);
begin
     Form1.Left := Form1.Left + 16;
end;

Still works.

What are you using to get the Left value of the form?

Regards,

Richard Quadling.
0
 

Author Comment

by:comptebidon81
ID: 6397799
I simply do MyForm.Left
Is there any property that could cause this behaviour?

To be more precise, I "recreated" a combobox using an edit box and a ListBox. My second form only contain this ListBox. So I Don't see why I would have to use MDI forms. It would work fine if only I could get the top and left properties of my main form.
GunDamn
0
 

Author Comment

by:comptebidon81
ID: 6397878
Grrrrr....

I just realize my error.
I added a inherited at the beginning of the message....

Well! It works now! your answer was brief, but still, it works now!
thanks, Gundamn
0
 

Author Comment

by:comptebidon81
ID: 6397882
Thaks again!
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Using idhttp to login to instagram 2 106
error 1.1 400 Bad request idhttp delphi 18 149
Strange behavior when a form is closed 6 61
Create a path if not exists 7 90
Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

828 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