That'll work fine as long as it's either the main form or you do
want the special code to run each time the form is first created.  But in a
situation where it's a secondary form created dynamically and you only want
the special code to run one time during the application lifecycle, it won't
work as it will run each time you create a new instance of the form.  Using
the Boolean, you can initialize it in the mainform and once it's set to
False it will remain false no matter how many instances you create.  And
this way the special code will only run once per run.  You really have to
tailor any code you write to the specific situation at hand!

from: Robert Meek at: [EMAIL PROTECTED] 
dba "Tangentals Design" home of "PoBoy"
freeware Windows apps and utilities
located at: www.TangentalsDesign.com
Proud to be a moderotor for the
"Delphi Programming Lists" at: elists.org 


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Marvin Cook
Sent: Monday, September 12, 2005 9:39 PM
To: Borland's Delphi Discussion List
Subject: Re: A form that runs when Shown, with no user action

form.OnActive := nil;
 Avoid the if statement and the call to the event.

 On 9/12/05, Robert Meek <[EMAIL PROTECTED]> wrote: 
> 
> I hope you read my follow-up message otherwise the code you add to
> your form's OnActivate will run every time it is activated, and depending
> upon how you have Windows setup that can be as often as everytime your 
> mouse
> cursor passes over the form! Add a Boolean variable to the implementation
> section of the form, something like 'FirstActivate' and set it to True in
> your Form's OnCreate. Then in your Form's OnAcytivate event, wrap the code
> you want to run inside an If...Then statement like so:
> 
> If FirstActivate = True then
> Begin
> Special code goes here
> FirstActivate := False;
> End;
> 
> This way the code inside it will only run once!
> 
> from: Robert Meek at: [EMAIL PROTECTED]
> dba "Tangentals Design" home of "PoBoy"
> freeware Windows apps and utilities
> located at: www.TangentalsDesign.com <http://www.TangentalsDesign.com>
> Proud to be a moderotor for the
> "Delphi Programming Lists" at: elists.org <http://elists.org>
> 
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On 
> Behalf
> Of Rainer von Saleski
> Sent: Monday, September 12, 2005 8:20 AM
> To: Borland's Delphi Discussion List
> Subject: Re: A form that runs when Shown, with no user action
> 
> Thank you! OnActivate is just what I was looking for ... it works great.
> 
> I had considered putting the guts of the code in the calling form, but 
> that
> would have put two main subsections in the program's main form ... hardly
> good structured programming technique, and hard to maintain.
> 
> Does anyone know of a concise chart or diagram of how the different events
> are invoked during form execution? I would have expected to find this in
> the manual, but I cannot.
> 
> Thanks,
> Rainer
> 
> 
> ----- Original Message -----
> From: "Robert Meek" <[EMAIL PROTECTED]>
> To: "'Borland's Delphi Discussion List'" <[email protected]>
> Sent: Sunday, September 11, 2005 10:27 PM
> Subject: RE: A form that runs when Shown, with no user action
> 
> 
> Yes you're right! I forgot to mention that I also add a Boolean var
> set to False when the app starts, or the form is created, and then set it 
> to
> true when activated the first time. After that any code in the activate
> won't run again.
> 
> from: Robert Meek at: [EMAIL PROTECTED]
> dba "Tangentals Design" home of "PoBoy"
> freeware Windows apps and utilities
> located at: www.TangentalsDesign.com <http://www.TangentalsDesign.com>
> Proud to be a moderotor for the
> "Delphi Programming Lists" at: elists.org <http://elists.org>
> 
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On 
> Behalf
> Of Glen Thompson
> Sent: Sunday, September 11, 2005 9:27 AM
> To: Borland's Delphi Discussion List
> Subject: RE: A form that runs when Shown, with no user action
> 
> OnActivate is useful but be careful that it may be fired
> repeatedly if the user clicks away from the form and back again.
> Check this behaviour. You may want to prevent the form
> getting focus from the mouse etc and activate it only
> programmatically. (OTTOMH)
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Behalf Of Robert Meek
> Sent: Sunday, 11 September 2005 6:40 PM
> To: 'Borland's Delphi Discussion List'
> Subject: RE: A form that runs when Shown, with no user action
> 
> 
> Use the Form's OnActivate event, and in your Form's OnShow you may
> also have to add a call to YourForm.Setfocus.
> 
> from: Robert Meek at: [EMAIL PROTECTED]
> dba "Tangentals Design" home of "PoBoy"
> freeware Windows apps and utilities
> located at: www.TangentalsDesign.com <http://www.TangentalsDesign.com>
> Proud to be a moderotor for the
> "Delphi Programming Lists" at: elists.org <http://elists.org>
> 
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On 
> Behalf
> Of Rainer von Saleski
> Sent: Saturday, September 10, 2005 5:06 PM
> To: Borland's Delphi Discussion List
> Subject: A form that runs when Shown, with no user action
> 
> How do I go about having a form that "runs" (does something) when Shown,
> with no additional user action (beyond that which caused to form to be
> shown)?
> 
> When I put my action code inside the OnShow event handler, the form does 
> not
> actually display until the actions are complete. But I want to keep the
> user informed during the 60 seconds or so it takes to do the action
> (compress a bunch of files into a ZIP file and email it).
> 
> This happens at the end of a chain of other events, and if I make the user
> press a "Run" button after the form is displayed, half the time the users
> forget to press it, and the backup files never get sent.
> 
> There must be a simple answer ...
> 
> Thanks,
> Rainer
> _______________________________________________
> Delphi mailing list -> [email protected]
> http://www.elists.org/mailman/listinfo/delphi
> 
> _______________________________________________
> Delphi mailing list -> [email protected]
> http://www.elists.org/mailman/listinfo/delphi
> 
> 
> _______________________________________________
> Delphi mailing list -> [email protected]
> http://www.elists.org/mailman/listinfo/delphi
> 
> 
> 
> _______________________________________________
> Delphi mailing list -> [email protected]
> http://www.elists.org/mailman/listinfo/delphi
> 
> _______________________________________________
> Delphi mailing list -> [email protected]
> http://www.elists.org/mailman/listinfo/delphi
>
_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi

_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi

Reply via email to