Alexander Todorov wrote:
Hi,

I am writing a gui application that lets the user open images and
execute some image interpolation algorithms on them. This is for
educational purposes.
I want to make a window layout like Photoshop, e.g. different images
in different windows.
When the user selects action from the menu it is executed on the
currently selected image (form).

I have one main form with menu that defines different actions and
another form class that defines the image window. It is just for
showing images, no code there.
How to make multiple image forms to be shown and to be able to click
on the main menu ?

What you are looking for is MDI (multiple Document Interface) and that is not supported by lazarus.


case 1 :
  F := TImageForm.Create(Self); // Self is The main form
 F.Show;

F is shown but when the user clicks somewhere on the main form it is hidden.

case 2 :
  F := TImageForm.Create(Self); // Self is The main form
  F.FormStyle := fsStayOnTop;
 F.Show;

Then F shows and is not hidden when you click somewhere else. The only
problem is that
other dialogs executed from the menu (OpenPicture / SavePicture /
InputQuery) are hidden below these image forms. (see attachment)

Can anyone give me a clue how to solve this problem ?

Since you have defined your windows as stay on top, they are topmost and dialogs will cover them. (unfortunately windows (where the VCL is based on) has no window layers where you can tell which form belongs to which layer)

The only option I see now is by using a SDI (single document interface). So you menu/toolbar etc will be on one form and the images on separate forms. (a bit like lazarus does)

Marc

_________________________________________________________________
    To unsubscribe: mail [EMAIL PROTECTED] with
               "unsubscribe" as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to