Solved

Hidding Form

Posted on 2004-04-24
10
316 Views
Last Modified: 2010-04-05
Hi experts,

Ihave a problem hidding my form. If I set the form's visible property on the object inspector to false, when i run the program, i still can see the form. I also tried to set the form's visible property to false in the FormCreate procedure, but it doesn't work either. However, it works if i hide the form from the FormClose procedure and set Action to caNone.

Hope u can help me.

Thanks.

PS: i am using delphi4 and windows XP
0
Comment
Question by:StTwister
10 Comments
 
LVL 3

Expert Comment

by:Kunfufaresi
Comment Utility
Hello,

there arse some ways you can use
1) From Project menu choose Options and remove auto-create of form2

2) if you want to hide main form then you could use
Application.Minimize
0
 
LVL 2

Author Comment

by:StTwister
Comment Utility
removing the auto-create doesn't hide the form, it simply doesn't create it, so i can't actually use that form.

Application.Minimize only minimizes the form, it doesn't hide it.
0
 
LVL 11

Expert Comment

by:Jase-Coder
Comment Utility
you can use

SendMessage(Form1.handle, WM_SYSCOMMAND, SW_HIDE);

I think that is the correct function and right parameters. I am not on a windows machine at the minute, so I'll check to see if the params are correct then ill post another reply.

hopefully though, the above is the correct params
0
 
LVL 2

Author Comment

by:StTwister
Comment Utility
The procedure has one missing parameter, but it still doesn't matter, as i already tried with ShowWindow(Form1.Handle, SW_Hide), which does exactly the same thing. I also noticed that i can hide the form from any other procedure except FormCreate. For example i can hide it if i push a button or with a timer, but it doesn't respond in the FormCreate procedure.

Thanks.
0
 
LVL 3

Expert Comment

by:Kunfufaresi
Comment Utility
Hello,

in formCreate the form is not yet created but in the process of being created so you will get a runtime error obviously. I remember using timer too. however if you put  form1.hide; in onPaint event of the form it will get hidden just after creation.

procedure TForm1.FormPaint(Sender: TObject);
begin
 form1.hide;
end;

hopefully this helps
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 12

Expert Comment

by:Ivanov_G
Comment Utility
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
    procedure OnCreateForm(var Msg : TMessage); message WM_SHOWWINDOW;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

{ TForm1 }

procedure TForm1.OnCreateForm(var Msg: TMessage);
begin
  // here the form is shown
  if Self <> Application.MainForm then
    // this is not the main form and we can hide it
    Self.Hide;
end;

end.
0
 
LVL 2

Author Comment

by:StTwister
Comment Utility
in both the situations, the form is hidden, but it still apears for a very short amount of time. i want the form not to apear at all.

Thanks
0
 
LVL 3

Accepted Solution

by:
Kunfufaresi earned 20 total points
Comment Utility
on my computer it didnt apear at all, but maybe that is because the form is totally empty, anyway another idea is to put

form1.top := -1000;

into oncreate of form1, or form1.left := -1000; you couldnt combined this with my previous comment as the form is not visible and thus windows wont bother calling onPaint event. But a timer could do the trick.

Kunfu Faresi
0
 
LVL 2

Author Comment

by:StTwister
Comment Utility
The form still apears, but this time it disapears much more faster. It probably didn't happen to your computer beacause you're not running on win xp, or u don't have delphi 4

Thanks.
0
 
LVL 2

Author Comment

by:StTwister
Comment Utility
Sorry, i was wrong, your ideea works just fine.

Thanks.
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
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…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…

762 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

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now