Solved

Runtime creation of my Form

Posted on 2004-04-03
8
384 Views
Last Modified: 2010-04-05
Don't know how many experts use Billenium package - bad boys if not use :), very good library.
Anyway I think that you can help me in any case. Untill now I embedded a form in my container using next code:

     Form2 := TForm2(W1.CreateForm(TForm2));
     W1.ShowForm(Form2, True);

All ok, just that now I create my Form2 on runtime.

with TForm.Create(Self) do Name:='Form2';
Form2 := TForm2(W1.CreateForm(TForm2));
W1.ShowForm(Form2, True);

In this case I get message that Form2 is unknown ( and I know that is true but don't know how to use after runtime creation )

Any help ?
0
Comment
Question by:ginsonic
8 Comments
 
LVL 9

Author Comment

by:ginsonic
ID: 10748542
Attention, can't use:

VAR  
FORM1  :  TFORM;  
BEGIN  
  FORM1:=TFORM.CREATE(SELF);  

because sometimes I create 1-2 forms, someelse more than 20, so I can't add var Form2, Form3 ....Form n
0
 
LVL 17

Assisted Solution

by:mokule
mokule earned 250 total points
ID: 10748572
But for
Form2 := TForm2(W1.CreateForm(TForm2));
You must declare Form2.
You can use this variable for all created forms
0
 
LVL 12

Accepted Solution

by:
esoftbg earned 250 total points
ID: 10749003
there is  ways:
and

procedure TForm1.Button1Click(Sender: TObject);
begin
//  Form2 := TForm2.Create(nil);
//  Form2 := TForm2.Create(Self);
//  Form2 := TForm2.Create(Application);
  Application.CreateForm(TForm2, Form2);
  try
    Form2.ShowModal;
  finally
    Form2.Release;
    Form2 := nil;
  end;
end;

emil
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 27

Expert Comment

by:kretzschmar
ID: 10749248
what is W1 ?
0
 
LVL 9

Author Comment

by:ginsonic
ID: 10750908
I try to use Application.CreateForm(TForm2, Form2) but the form must be added to project.

I have a script where I get some questions. Depend of the questions number I will create a new form for each 15 questions.
For 48 questions, for example, I will host 4 new forms.

I can't create these forms at design mode because I can't know what type of vcl will use and the number of vcl ( editboxes, comboboxes, own vcl for datetime ... ).

What do the program. The client need to evaluate each case using a quizz ( a questions set ). This set can be changed each month so I wish to make it a little 'visual'. The client make a script that will contain all informations about questions:

Question1.Text
Question1.VCL.Name
Question1.VCL.Type
........
Question1.Record.Name
.....

Using this script I wish to create forms, to populate these with VCL and assign events. A little harder for my experience, but I like the challenge.

For kretzschmar,

W1 is a FormContainer. I create Form2 and embedded into W1 form container.

0
 
LVL 9

Author Comment

by:ginsonic
ID: 10750910
BTW, W1 is created at runtime too, but I have an algorithm to find this component by name. Unfortunatelly can't find a new form by name.

var c: TComponent;
...
C := FindComponentEx('Form1.W1');
0
 
LVL 9

Author Comment

by:ginsonic
ID: 10750915
And then ... TFormContainer(C).Visible := True; or something else.
0
 
LVL 9

Author Comment

by:ginsonic
ID: 10759343
I will use a dynamic form array.
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

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
delphi exception 7 68
How to renew a Delphi rad-studio licence? 5 69
Find and Replace Stream with 0s 8 69
JAudiorecorder record freezing the app 29 76
The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

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