1
0
mirror of synced 2024-09-18 17:26:08 +00:00
x2utils/X2UtSettingsForm.pas
Mark van Renswoude 2fc41bcc1d Added: InRange function
Added: X2UtSettings-compatible Read/WriteFormPos functions
2004-06-08 19:58:59 +00:00

90 lines
2.8 KiB
ObjectPascal

{
:: X2UtSettingsForm provides functions to read and write form settings.
::
:: Subversion repository available at:
:: $URL$
::
:: Last changed: $Date$
:: Revision: $Rev$
:: Author: $Author$
:$
:$
:$ X2Utils is released under the zlib/libpng OSI-approved license.
:$ For more information: http://www.opensource.org/
:$ /n/n
:$ /n/n
:$ Copyright (c) 2003 X2Software
:$ /n/n
:$ This software is provided 'as-is', without any express or implied warranty.
:$ In no event will the authors be held liable for any damages arising from
:$ the use of this software.
:$ /n/n
:$ Permission is granted to anyone to use this software for any purpose,
:$ including commercial applications, and to alter it and redistribute it
:$ freely, subject to the following restrictions:
:$ /n/n
:$ 1. The origin of this software must not be misrepresented; you must not
:$ claim that you wrote the original software. If you use this software in a
:$ product, an acknowledgment in the product documentation would be
:$ appreciated but is not required.
:$ /n/n
:$ 2. Altered source versions must be plainly marked as such, and must not be
:$ misrepresented as being the original software.
:$ /n/n
:$ 3. This notice may not be removed or altered from any source distribution.
}
unit X2UtSettingsForm;
interface
uses
Forms,
X2UtSettings;
procedure ReadFormPos(const AFactory: TX2SettingsFactory;
const ASection: String; const AForm: TCustomForm);
procedure WriteFormPos(const AFactory: TX2SettingsFactory;
const ASection: String; const AForm: TCustomForm);
implementation
type
THackCustomForm = class(TCustomForm);
procedure ReadFormPos;
begin
with AFactory[ASection] do
try
if ReadBool('Maximized', (AForm.WindowState = wsMaximized)) then
AForm.WindowState := wsMaximized
else with THackCustomForm(AForm) do begin
WindowState := wsNormal;
Position := poDesigned;
Left := ReadInteger('Left', Left);
Top := ReadInteger('Top', Top);
Width := ReadInteger('Width', Width);
Height := ReadInteger('Height', Height);
end;
finally
Free();
end;
end;
procedure WriteFormPos;
begin
with AFactory[ASection] do
try
WriteBool('Maximized', (AForm.WindowState = wsMaximized));
if AForm.WindowState <> wsMaximized then
with THackCustomForm(AForm) do begin
WriteInteger('Left', Left);
WriteInteger('Top', Top);
WriteInteger('Width', Width);
WriteInteger('Height', Height);
end;
finally
Free();
end;
end;
end.