Solved

# SET SIZE OF THE FORM ON MY PROGRAM BY USING TTRAYICON. HOW CAN I.

Posted on 2006-06-29
219 Views
HOW CAN I SET SIZE OF ANY FORM IN MY APPLICATION USING MY COMPONENT TTRAYICON.

MAKE SET WHEN CREATE FORM.

WHEN CLOSE FORM SAVE SIZE, NAME.

QUESTIONS:

HOW IS GOING TO BE THE FUNCTION TO SAVE AND SET THIS CONFIGURATION ON INI FILE.
0
Question by:rafaelrgl
• 5
• 5

LVL 17

Expert Comment

ID: 17015191
uses inifiles;

To load a form's position from an ini file :-
begin
with TINIFile.create('form positions.ini') do
try
Form1.SetBounds(
);
finally
free;
end;
end;

And when you want to save the form's position :-
begin
with TINIFile.create('form positions.ini') do
try
WriteInteger('Form1', 'Top', Form1.Top);
WriteInteger('Form1', 'Left', Form1.Top);
WriteInteger('Form1', 'Width', Form1.Top);
WriteInteger('Form1', 'Height', Form1.Top);
finally
free;
end;
end;
0

LVL 17

Expert Comment

ID: 17015199
oops, should be...

To load a form's position from an ini file :-
begin
with TINIFile.create('form positions.ini') do
try
Form1.SetBounds(
);
finally
free;
end;
end;

And when you want to save the form's position :-
begin
with TINIFile.create('form positions.ini') do
try
WriteInteger('Form1', 'Top', Form1.Top);
WriteInteger('Form1', 'Left', Form1.Left);
WriteInteger('Form1', 'Width', Form1.Width);
WriteInteger('Form1', 'Height', Form1.Height);
finally
free;
end;
end;
0

LVL 1

Author Comment

ID: 17020504
I would like to get the name and position when the form is created using some code in my component ttrayicon, i don't want put the name of the form by myself, like that:

WriteInteger('Form1', 'Top', Form1.Top);
0

LVL 1

Author Comment

ID: 17020521
This code is going to be inside my component ttrayicon, I think that's a big problem.
0

LVL 17

Accepted Solution

TheRealLoki earned 500 total points
ID: 17027973
easy, all you do is have a property in your trayicon

e.g

private
fFormToSaveSettingsFor: TForm;
published
property FormToSaveSettingsFor: TForm read fFormToSaveSettingsFor write fFormToSaveSettingsFor;
end;

the user sets
MyTrayIcon.FormToSaveSettingsFor := Form1;

and then you just go
if assigned(fFormToSaveSettingsFor) then
//Save Settings
// use FormToSaveSettingsFor.TOp, FormToSaveSettingsFor.Left, etc...
0

LVL 17

Expert Comment

ID: 17027974
FormToSaveSettingsFor.Caption or FormToSaveSettingsFor.Name to get the caption or name respectively
0

LVL 1

Author Comment

ID: 17034194
I'll give you the points, but like i sad, i don't want the user set the form, but my component ttrayicon save the position of all forms in the application whithout any code insert by user. Only thing the user is going to do is set a property on component to do that like this below:

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
THIS SET TRUE OR FALSE ON COMPONENT TO SAVE THE POSITION AND SIZE OF ANY FORM IN THE APPLICATION
BUT, HOW IS GOING TO SAVE THAT?
//////////////////////////////
private
fActivePosition : Boolean;

protect
procedure SetActivePosition(Value : Boolean); virtual;

published
property ActivePosition : boolean read fActivePosition write SetActivePosition;

procedure TNucleo_TrayIcon.SetActivePosition(Value : Boolean);
begin
//if (value <> fActivePosition) and not (csDesigning in ComponentState) then
if value <> fActivePosition then
Begin
fActivePosition := Value;
end;
end;
////////////////////////////////////////////////////////////////

///// can you help me to understand how this is going to work.
////  THANKS A LOT

0

LVL 17

Expert Comment

ID: 17034516
oh I see now. use the Screen.Forms property then

var
i : integer;
begin
for  i := 0 to Screen.FormCount-1 do
begin
// Screen.Forms[] returns a "TForm", so you can do anything you like with it eg.
end;
end;
0

LVL 1

Author Comment

ID: 17034620
HOW CAN I KNOW WHEN THE FORM IS CREATING?
0

LVL 1

Author Comment

ID: 17034621
OR THE FORM IS CLOSING?
0

## Featured Post

### Suggested Solutions

In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …