| [453] | 1 | { **************************************************************
 | 
|---|
 | 2 |         Package: XWB - Kernel RPCBroker
 | 
|---|
 | 3 |         Date Created: Sept 18, 1997 (Version 1.1)
 | 
|---|
 | 4 |         Site Name: Oakland, OI Field Office, Dept of Veteran Affairs
 | 
|---|
 | 5 |         Developers: Danila Manapsal, Don Craven, Joel Ivey
 | 
|---|
 | 6 |         Description: Signon Form Configuration Dialog.
 | 
|---|
 | 7 |         Current Release: Version 1.1 Patch 40 (January 7, 2005))
 | 
|---|
 | 8 | *************************************************************** }
 | 
|---|
 | 9 | 
 | 
|---|
 | 10 | {**************************************************
 | 
|---|
 | 11 | 1.1P31 - Modified to store signon configuration under
 | 
|---|
 | 12 |          the HKCU key - this permits users on NT2000
 | 
|---|
 | 13 |          machines who have USER access to set their
 | 
|---|
 | 14 |          configuration.  Also, makes configuration specific
 | 
|---|
 | 15 |          to users on machines which might be shared.
 | 
|---|
 | 16 | 
 | 
|---|
 | 17 |          Also make it so that configuration is only written
 | 
|---|
 | 18 |          to the registry when the user indicates that it
 | 
|---|
 | 19 |          should be saved (previously the default values
 | 
|---|
 | 20 |          were written into the registry as well as applied
 | 
|---|
 | 21 |          to the window if data was not in the registry).
 | 
|---|
 | 22 |          The default values previously stored in the registry
 | 
|---|
 | 23 |          would override any changes in the signon window
 | 
|---|
 | 24 |          design via coding.  To overcome this, if the user
 | 
|---|
 | 25 |          does not have saved configuration data, the window
 | 
|---|
 | 26 |          generated on opening will be used as the default, and
 | 
|---|
 | 27 |          the default data written into the registry as defaults.
 | 
|---|
 | 28 |          This will permit the user to restore to the current
 | 
|---|
 | 29 |          window defaults if desired, but will not overwrite
 | 
|---|
 | 30 |          changes released for the window in later patches.
 | 
|---|
 | 31 | ************************************************************}
 | 
|---|
 | 32 | 
 | 
|---|
 | 33 | unit Sgnoncnf;
 | 
|---|
 | 34 | 
 | 
|---|
 | 35 | interface
 | 
|---|
 | 36 | 
 | 
|---|
 | 37 | uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Buttons,
 | 
|---|
 | 38 |   StdCtrls, ExtCtrls, Dialogs, SysUtils, MFunStr, XWBut1;
 | 
|---|
 | 39 | 
 | 
|---|
 | 40 | type
 | 
|---|
 | 41 |   TSignonValues = class(TObject)
 | 
|---|
 | 42 |   private
 | 
|---|
 | 43 |     FHeight: Integer;
 | 
|---|
 | 44 |     FWidth: Integer;
 | 
|---|
 | 45 |     FTextColor: LongInt;
 | 
|---|
 | 46 |     FPosition: String;
 | 
|---|
 | 47 |     FSize: String;
 | 
|---|
 | 48 |     FIntroFont: String;
 | 
|---|
 | 49 |     FIntroFontStyles: String;
 | 
|---|
 | 50 |     FBackColor: LongInt;
 | 
|---|
 | 51 |     FFont: TFont;
 | 
|---|
 | 52 |     FFontStyles: TFontStyles;
 | 
|---|
 | 53 |     FTop: Integer;
 | 
|---|
 | 54 |     FLeft: Integer;
 | 
|---|
 | 55 |     procedure SetSize(const Value: String);
 | 
|---|
 | 56 |     procedure SetPosition(const Value: String);
 | 
|---|
 | 57 |     procedure SetIntroFont(const Value: String);
 | 
|---|
 | 58 |     procedure SetIntroFontStyles(const Value: String);
 | 
|---|
 | 59 |     procedure SetFont(Value: TFont);
 | 
|---|
 | 60 |     procedure SetTextColor(Value: LongInt);
 | 
|---|
 | 61 |   public
 | 
|---|
 | 62 |     procedure Clear; virtual;
 | 
|---|
 | 63 |     constructor Create;
 | 
|---|
 | 64 |     destructor Destroy; override;
 | 
|---|
 | 65 |     procedure SetEqual(EqualToValue: TSignonValues);
 | 
|---|
 | 66 |     property Height: Integer read FHeight write FHeight;
 | 
|---|
 | 67 |     property Width: Integer read FWidth write FWidth;
 | 
|---|
 | 68 |     property TextColor: LongInt read FTextColor write SetTextColor;
 | 
|---|
 | 69 |     property Position: String read FPosition write SetPosition;
 | 
|---|
 | 70 |     property Size: String read FSize write SetSize;
 | 
|---|
 | 71 |     property IntroFont: String read FIntroFont write SetIntroFont;
 | 
|---|
 | 72 |     property IntroFontStyles: String read FIntroFontStyles write SetIntroFontStyles;
 | 
|---|
 | 73 |     property BackColor: LongInt read FBackColor write FBackColor;
 | 
|---|
 | 74 |     property Font: TFont read FFont write SetFont;
 | 
|---|
 | 75 |     property FontStyles: TFontStyles read FFontStyles write FFontStyles;
 | 
|---|
 | 76 |     property Top: Integer read FTop write FTop;
 | 
|---|
 | 77 |     property Left: Integer read FLeft write FLeft;
 | 
|---|
 | 78 |   end;
 | 
|---|
 | 79 | 
 | 
|---|
 | 80 |   TSignonConfiguration = class;
 | 
|---|
 | 81 | 
 | 
|---|
 | 82 | {
 | 
|---|
 | 83 |    This class is the form shown for configuration of the signon form
 | 
|---|
 | 84 | }
 | 
|---|
 | 85 |   TfrmSignonConfig = class(TForm)
 | 
|---|
 | 86 |     OKBtn: TBitBtn;
 | 
|---|
 | 87 |     CancelBtn: TBitBtn;
 | 
|---|
 | 88 |     HelpBtn: TBitBtn;
 | 
|---|
 | 89 |     Bevel1: TBevel;
 | 
|---|
 | 90 |     rgrWindowPosition: TRadioGroup;
 | 
|---|
 | 91 |     rgrWindowSize: TRadioGroup;
 | 
|---|
 | 92 |     FontDialog1: TFontDialog;
 | 
|---|
 | 93 |     GroupBox1: TGroupBox;
 | 
|---|
 | 94 |     Button1: TButton;
 | 
|---|
 | 95 |     btnDefaults: TBitBtn;
 | 
|---|
 | 96 |     rgrIntroBackClr: TRadioGroup;
 | 
|---|
 | 97 |     ColorDialog1: TColorDialog;
 | 
|---|
 | 98 |     procedure Button1Click(Sender: TObject);
 | 
|---|
 | 99 |     procedure OKBtnClick(Sender: TObject);
 | 
|---|
 | 100 |     procedure FormShow(Sender: TObject);
 | 
|---|
 | 101 |     procedure rgrIntroBackClrClick(Sender: TObject);
 | 
|---|
 | 102 |   private
 | 
|---|
 | 103 |     { Private declarations }
 | 
|---|
 | 104 |     FController: TSignonConfiguration;
 | 
|---|
 | 105 |   public
 | 
|---|
 | 106 |     property Controller: TSignonConfiguration read FController write FController;
 | 
|---|
 | 107 |     { Public declarations }
 | 
|---|
 | 108 |   end;
 | 
|---|
 | 109 | 
 | 
|---|
 | 110 | {
 | 
|---|
 | 111 |      This class handles the processing for signon configuration
 | 
|---|
 | 112 | }
 | 
|---|
 | 113 |   TSignonConfiguration = class(TObject)
 | 
|---|
 | 114 |   private
 | 
|---|
 | 115 |     OrigHelp: String;
 | 
|---|
 | 116 |     FIntroBackColor: LongInt;
 | 
|---|
 | 117 |     FIntroFontValue: String;
 | 
|---|
 | 118 |     FIntroFontStyles: String;
 | 
|---|
 | 119 |     FIntroTextColor: LongInt;
 | 
|---|
 | 120 |     FPosition: String;
 | 
|---|
 | 121 |     FSize: String;
 | 
|---|
 | 122 |   protected
 | 
|---|
 | 123 |     procedure ResetToDefaults; virtual;
 | 
|---|
 | 124 |     procedure UserClickedOK; virtual;
 | 
|---|
 | 125 |     procedure IntroBackColor; virtual;
 | 
|---|
 | 126 |     procedure FontDialog; virtual;
 | 
|---|
 | 127 |     procedure UpdateWindow;
 | 
|---|
 | 128 |   public
 | 
|---|
 | 129 |     function ShowModal: Integer; virtual;
 | 
|---|
 | 130 |     procedure ReadRegistrySettings;
 | 
|---|
 | 131 |     constructor Create;
 | 
|---|
 | 132 |   end;
 | 
|---|
 | 133 | 
 | 
|---|
 | 134 | function StoreFontStyle(Values: TFontStyles): string;
 | 
|---|
 | 135 | function RestoreFontStyles(Value: String): TFontStyles;
 | 
|---|
 | 136 | 
 | 
|---|
 | 137 | 
 | 
|---|
 | 138 | var
 | 
|---|
 | 139 |   frmSignonConfig: TfrmSignonConfig;
 | 
|---|
 | 140 |   strPosition, strSize: string;
 | 
|---|
 | 141 |   InitialValues: TSignonValues;
 | 
|---|
 | 142 |   SignonDefaults: TSignonValues;
 | 
|---|
 | 143 |   IsSharedBroker: Boolean;
 | 
|---|
 | 144 | 
 | 
|---|
 | 145 | {
 | 
|---|
 | 146 | const
 | 
|---|
 | 147 |   DfltWidth: integer = 794; // 631; // 611;  // 608;
 | 
|---|
 | 148 |   DfltHeight: integer = 591;  // 467; // 300;
 | 
|---|
 | 149 |   DfltIntroClr: longint = clWindow;
 | 
|---|
 | 150 |   DfltPosition: string = '0';
 | 
|---|
 | 151 |   DfltSize: string = '0';
 | 
|---|
 | 152 |   DfltIntroFont: string = '';  //  'Fixedsys^8'; // 'Courier New^8';
 | 
|---|
 | 153 |   DfltIntroFontStyle: TFontStyles = [fsBold];
 | 
|---|
 | 154 |   DfltBackClr: integer = 0;
 | 
|---|
 | 155 |   p:string = '[';
 | 
|---|
 | 156 | }
 | 
|---|
 | 157 | 
 | 
|---|
 | 158 | implementation
 | 
|---|
 | 159 | 
 | 
|---|
 | 160 | {$R *.DFM}
 | 
|---|
 | 161 | 
 | 
|---|
 | 162 | uses LoginFrm, fSgnonDlg, Trpcb;
 | 
|---|
 | 163 | 
 | 
|---|
 | 164 | procedure TfrmSignonConfig.Button1Click(Sender: TObject);
 | 
|---|
 | 165 | begin
 | 
|---|
 | 166 | //  FontDialog1.Execute;
 | 
|---|
 | 167 |   Controller.FontDialog;
 | 
|---|
 | 168 | end;
 | 
|---|
 | 169 | 
 | 
|---|
 | 170 | procedure TfrmSignonConfig.OKBtnClick(Sender: TObject);
 | 
|---|
 | 171 | begin
 | 
|---|
 | 172 | 
 | 
|---|
 | 173 | end;
 | 
|---|
 | 174 | 
 | 
|---|
 | 175 | {-------------- TSignonConfiguration.ReadRegistrySettings --------------
 | 
|---|
 | 176 | Read Signon related settings from the Registry.  Substitute defaults
 | 
|---|
 | 177 | for missing values.
 | 
|---|
 | 178 | ------------------------------------------------------------------}
 | 
|---|
 | 179 | procedure TSignonConfiguration.ReadRegistrySettings;
 | 
|---|
 | 180 | var
 | 
|---|
 | 181 |   strFontStyle: String;
 | 
|---|
 | 182 |   strFontColor: String;
 | 
|---|
 | 183 |   strFontSettings: String;
 | 
|---|
 | 184 | begin
 | 
|---|
 | 185 |   { Test handling of Defaults }
 | 
|---|
 | 186 | //  ShowMessage
 | 
|---|
 | 187 |   InitialValues.SetEqual(SignonDefaults);
 | 
|---|
 | 188 |   InitialValues.Position := '0';
 | 
|---|
 | 189 |   InitialValues.Size := '0';
 | 
|---|
 | 190 |   InitialValues.BackColor := clWindow;
 | 
|---|
 | 191 |   InitialValues.TextColor := clWindowText;
 | 
|---|
 | 192 | 
 | 
|---|
 | 193 |   {%%%%%%% Sign-on Window Position %%%%%%%}
 | 
|---|
 | 194 |   strPosition := ReadRegDataDefault(HKCU, REG_SIGNON, 'SignonPos','');
 | 
|---|
 | 195 |   if strPosition <> '' then
 | 
|---|
 | 196 |     InitialValues.Position := strPosition;
 | 
|---|
 | 197 | 
 | 
|---|
 | 198 |   {%%%%%%% Sign-on Window Size %%%%%%%}
 | 
|---|
 | 199 |   strSize := ReadRegDataDefault(HKCU, REG_SIGNON, 'SignonSiz', '');
 | 
|---|
 | 200 |   if strSize <> '' then
 | 
|---|
 | 201 |     InitialValues.Size := strSize;
 | 
|---|
 | 202 | 
 | 
|---|
 | 203 |   {%%%%%%% Intro Text Background Color %%%%%%%}
 | 
|---|
 | 204 |   if ReadRegDataDefault(HKCU, REG_SIGNON, 'IntroBackClr', '') <> '' then
 | 
|---|
 | 205 |     InitialValues.BackColor := StrToInt(ReadRegDataDefault(HKCU, REG_SIGNON, 'IntroBackClr', ''));
 | 
|---|
 | 206 | 
 | 
|---|
 | 207 |   {%%%%%%% Intro Text Font %%%%%%%}
 | 
|---|
 | 208 |   strFontSettings := ReadRegDataDefault(HKCU, REG_SIGNON, 'IntroTextFont', '');
 | 
|---|
 | 209 |   if strFontSettings <> '' then
 | 
|---|
 | 210 |   begin
 | 
|---|
 | 211 |     InitialValues.IntroFont := strFontSettings;
 | 
|---|
 | 212 |     InitialValues.Font.Name := Piece(strFontSettings,U,1);
 | 
|---|
 | 213 |     InitialValues.Font.Size := StrToInt(Piece(strFontSettings,U,2));
 | 
|---|
 | 214 |   end;
 | 
|---|
 | 215 |   
 | 
|---|
 | 216 |   {%%%%%%% Intro Text Color %%%%%%%}
 | 
|---|
 | 217 |   strFontColor := ReadRegDataDefault(HKCU, REG_SIGNON, 'IntroTextClr', '');
 | 
|---|
 | 218 |   if strFontColor <> '' then
 | 
|---|
 | 219 |   begin
 | 
|---|
 | 220 |     InitialValues.TextColor := StrToInt(strFontColor);
 | 
|---|
 | 221 |     InitialValues.Font.Color := InitialValues.TextColor;
 | 
|---|
 | 222 |   end;
 | 
|---|
 | 223 | 
 | 
|---|
 | 224 |   {%%%%%%% Intro Text Font Styles %%%%%%%}
 | 
|---|
 | 225 |   strFontStyle := ReadRegDataDefault(HKCU, REG_SIGNON, 'IntroTextStyle', '');
 | 
|---|
 | 226 |   if strFontStyle <> '' then
 | 
|---|
 | 227 |   begin
 | 
|---|
 | 228 |     InitialValues.IntroFontStyles := strFontStyle;
 | 
|---|
 | 229 |     InitialValues.Font.Style := RestoreFontStyles(strFontStyle)
 | 
|---|
 | 230 |   end;
 | 
|---|
 | 231 | end;
 | 
|---|
 | 232 | 
 | 
|---|
 | 233 | 
 | 
|---|
 | 234 | function StoreFontStyle(Values: TFontStyles): String;
 | 
|---|
 | 235 | begin
 | 
|---|
 | 236 |   Result := '';
 | 
|---|
 | 237 |   if fsBold in Values then
 | 
|---|
 | 238 |     Result := Result + 'B';
 | 
|---|
 | 239 |   if FsItalic in Values then
 | 
|---|
 | 240 |     Result := Result + 'I';
 | 
|---|
 | 241 |   if fsUnderline in Values then
 | 
|---|
 | 242 |     Result := Result + 'U';
 | 
|---|
 | 243 |   if fsStrikeout in Values then
 | 
|---|
 | 244 |     Result := Result + 'S';
 | 
|---|
 | 245 | end;
 | 
|---|
 | 246 | 
 | 
|---|
 | 247 | procedure TfrmSignonConfig.FormShow(Sender: TObject);
 | 
|---|
 | 248 | begin
 | 
|---|
 | 249 |   //
 | 
|---|
 | 250 | end;
 | 
|---|
 | 251 | 
 | 
|---|
 | 252 | function RestoreFontStyles(Value: String): TFontStyles;
 | 
|---|
 | 253 | begin
 | 
|---|
 | 254 |   Result := [];
 | 
|---|
 | 255 |   if pos('B',Value) > 0 then
 | 
|---|
 | 256 |     Result := Result + [fsBold];
 | 
|---|
 | 257 |   if pos('I',Value) > 0 then
 | 
|---|
 | 258 |     Result := Result + [fsItalic];
 | 
|---|
 | 259 |   if pos('U',Value) > 0 then
 | 
|---|
 | 260 |     Result := Result + [fsUnderline];
 | 
|---|
 | 261 |   if pos('S',Value) > 0 then
 | 
|---|
 | 262 |     Result := Result + [fsStrikeout];
 | 
|---|
 | 263 | end;
 | 
|---|
 | 264 | 
 | 
|---|
 | 265 | procedure TfrmSignonConfig.rgrIntroBackClrClick(Sender: TObject);
 | 
|---|
 | 266 | begin
 | 
|---|
 | 267 |   Controller.IntroBackColor;
 | 
|---|
 | 268 | end;
 | 
|---|
 | 269 | 
 | 
|---|
 | 270 | function TSignonConfiguration.ShowModal: Integer;
 | 
|---|
 | 271 | var
 | 
|---|
 | 272 |   ModalValue: Integer;
 | 
|---|
 | 273 | begin
 | 
|---|
 | 274 |   ReadRegistrySettings;
 | 
|---|
 | 275 |   if frmSignonConfig = nil then
 | 
|---|
 | 276 |     frmSignonConfig := TfrmSignonConfig.Create(Application);
 | 
|---|
 | 277 |   frmSignonConfig.Controller := Self;
 | 
|---|
 | 278 |   OrigHelp := Application.HelpFile;             // Save original helpfile.
 | 
|---|
 | 279 |   try
 | 
|---|
 | 280 |     Application.HelpFile := ReadRegData(HKLM, REG_BROKER, 'BrokerDr') +
 | 
|---|
 | 281 |                            '\clagent.hlp';      // Identify ConnectTo helpfile.
 | 
|---|
 | 282 |     with frmSignonConfig do
 | 
|---|
 | 283 |     begin
 | 
|---|
 | 284 |       // set selections for entry to form
 | 
|---|
 | 285 |       rgrIntroBackClr.ItemIndex := 0;   // Current Background
 | 
|---|
 | 286 |       rgrWindowPosition.ItemIndex := StrToInt(Piece(InitialValues.Position,U,1));
 | 
|---|
 | 287 |       rgrWindowSize.ItemIndex := StrToInt(Piece(InitialValues.Size,U,1));
 | 
|---|
 | 288 |          // initialize font values to current settings
 | 
|---|
 | 289 |       FIntroFontValue := InitialValues.IntroFont;
 | 
|---|
 | 290 |       FIntroTextColor := InitialValues.TextColor;
 | 
|---|
 | 291 |       FIntroFontStyles := InitialValues.IntroFontStyles;
 | 
|---|
 | 292 | 
 | 
|---|
 | 293 |       ShowApplicationAndFocusOK(Application);
 | 
|---|
 | 294 |       ModalValue := frmSignonConfig.ShowModal;
 | 
|---|
 | 295 |       if ModalValue = mrOK then  // establish changes for user
 | 
|---|
 | 296 |       begin
 | 
|---|
 | 297 |         UserClickedOK
 | 
|---|
 | 298 |       end
 | 
|---|
 | 299 |       else if ModalValue = mrIgnore then  // restore default values
 | 
|---|
 | 300 |         ResetToDefaults;
 | 
|---|
 | 301 |     end;    // with SignonForm
 | 
|---|
 | 302 |     Result := ModalValue;
 | 
|---|
 | 303 |   finally
 | 
|---|
 | 304 |     frmSignonConfig.Free;   // Release;  jli 041104
 | 
|---|
 | 305 |     Application.HelpFile := OrigHelp;  // Restore helpfile.
 | 
|---|
 | 306 |   end;
 | 
|---|
 | 307 | end;
 | 
|---|
 | 308 | 
 | 
|---|
 | 309 | {
 | 
|---|
 | 310 |  called if user changes selection for Background Color
 | 
|---|
 | 311 |    selection 0 is to current value
 | 
|---|
 | 312 |    selection 1 is to select new color
 | 
|---|
 | 313 | }
 | 
|---|
 | 314 | procedure TSignonConfiguration.IntroBackColor;
 | 
|---|
 | 315 | var
 | 
|---|
 | 316 |   frmSignonDialog: TfrmSignonDialog;
 | 
|---|
 | 317 |   OldHandle: THandle;
 | 
|---|
 | 318 | begin
 | 
|---|
 | 319 |   OldHandle := GetForegroundWindow;
 | 
|---|
 | 320 |   if frmSignonConfig.rgrIntroBackClr.ItemIndex = 1 then
 | 
|---|
 | 321 |   begin
 | 
|---|
 | 322 |     frmSignonDialog := TfrmSignonDialog.Create(Application);
 | 
|---|
 | 323 | //    ShowApplicationAndFocusOK(Application);
 | 
|---|
 | 324 |       SetForegroundWindow(frmSignonDialog.Handle);
 | 
|---|
 | 325 |     if frmSignonDialog.ShowModal = mrOK then
 | 
|---|
 | 326 |       FIntroBackColor := clWindow
 | 
|---|
 | 327 |     else
 | 
|---|
 | 328 |     begin
 | 
|---|
 | 329 |       ShowApplicationAndFocusOK(Application);
 | 
|---|
 | 330 |       if IsSharedBroker then
 | 
|---|
 | 331 |         frmSignonConfig.WindowState := wsMinimized;
 | 
|---|
 | 332 |       if frmSignonConfig.ColorDialog1.Execute then
 | 
|---|
 | 333 |         FIntroBackColor := frmSignonConfig.ColorDialog1.Color;
 | 
|---|
 | 334 |       frmSignonConfig.WindowState := wsNormal;
 | 
|---|
 | 335 |     end;
 | 
|---|
 | 336 |   end
 | 
|---|
 | 337 |   else
 | 
|---|
 | 338 |     FIntroBackColor := InitialValues.BackColor;
 | 
|---|
 | 339 |   SetForegroundWindow(OldHandle);
 | 
|---|
 | 340 | end;
 | 
|---|
 | 341 | 
 | 
|---|
 | 342 | { called if user selects to change font for signon form }
 | 
|---|
 | 343 | procedure TSignonConfiguration.FontDialog;
 | 
|---|
 | 344 | var
 | 
|---|
 | 345 |   frmSignonDialog: TfrmSignonDialog;
 | 
|---|
 | 346 |   OldHandle: THandle;
 | 
|---|
 | 347 |   FFontValue: TFont;
 | 
|---|
 | 348 | begin
 | 
|---|
 | 349 |   FFontValue := TFont.Create;
 | 
|---|
 | 350 |   OldHandle := GetForegroundWindow;
 | 
|---|
 | 351 |   try
 | 
|---|
 | 352 |     FFontValue.Name := InitialValues.Font.Name;
 | 
|---|
 | 353 |     FFontValue.Size := InitialValues.Font.Size;
 | 
|---|
 | 354 |     FFontValue.Style := InitialValues.Font.Style;
 | 
|---|
 | 355 |     FFontValue.Color := InitialValues.Font.Color;
 | 
|---|
 | 356 |     frmSignonDialog := TfrmSignonDialog.Create(Application);
 | 
|---|
 | 357 |     frmSignonDialog.Label1.Caption := 'Do you want to use the Default Font face and size?';
 | 
|---|
 | 358 |   //  ShowApplicationAndFocusOK(Application);
 | 
|---|
 | 359 | 
 | 
|---|
 | 360 |     SetForegroundWindow(frmSignonDialog.Handle);
 | 
|---|
 | 361 |     if frmSignonDialog.ShowModal = mrOK then
 | 
|---|
 | 362 |       FFontValue := SignonDefaults.Font
 | 
|---|
 | 363 |     else
 | 
|---|
 | 364 |     begin
 | 
|---|
 | 365 |       // initialize font to current values
 | 
|---|
 | 366 |       frmSignonConfig.FontDialog1.Font.Color := InitialValues.Font.Color;
 | 
|---|
 | 367 |       frmSignonConfig.FontDialog1.Font.Name := InitialValues.Font.Name;
 | 
|---|
 | 368 |       frmSignonConfig.FontDialog1.Font.Size := InitialValues.Font.Size;
 | 
|---|
 | 369 |       frmSignonConfig.FontDialog1.Font.Style := InitialValues.Font.Style;
 | 
|---|
 | 370 |       ShowApplicationAndFocusOK(Application);
 | 
|---|
 | 371 |       if IsSharedBroker then
 | 
|---|
 | 372 |         frmSignonConfig.WindowState := wsMinimized;
 | 
|---|
 | 373 |       if frmSignonConfig.FontDialog1.Execute then
 | 
|---|
 | 374 |         FFontValue := frmSignonConfig.FontDialog1.Font;
 | 
|---|
 | 375 |       frmSignonConfig.WindowState := wsNormal;
 | 
|---|
 | 376 |     end;
 | 
|---|
 | 377 |     FIntroFontValue := FFontValue.Name + U + IntToStr(FFontValue.Size);
 | 
|---|
 | 378 |     FIntroFontStyles := StoreFontStyle(FFontValue.Style);
 | 
|---|
 | 379 |     FIntroTextColor := FFontValue.Color;
 | 
|---|
 | 380 |   finally
 | 
|---|
 | 381 |     FFontValue.Free;
 | 
|---|
 | 382 |     SetForegroundWindow(OldHandle);
 | 
|---|
 | 383 |   end;
 | 
|---|
 | 384 | end;
 | 
|---|
 | 385 | 
 | 
|---|
 | 386 | procedure TSignonConfiguration.ResetToDefaults;
 | 
|---|
 | 387 | begin
 | 
|---|
 | 388 |   if MessageDlg('Are you sure you want to reset all settings to their defaults?',
 | 
|---|
 | 389 |                 mtWarning, [mbNo, mbYes], 0) = mrYes then
 | 
|---|
 | 390 |   begin
 | 
|---|
 | 391 |        // P31 remove setting of default values into registry -
 | 
|---|
 | 392 |        //     remove entries from registry and use default window in app
 | 
|---|
 | 393 |     DeleteRegData(HKCU, REG_SIGNON, 'SignonPos');
 | 
|---|
 | 394 |     DeleteRegData(HKCU, REG_SIGNON, 'SignonSiz');
 | 
|---|
 | 395 |     DeleteRegData(HKCU, REG_SIGNON, 'IntroBackClr');
 | 
|---|
 | 396 |     DeleteRegData(HKCU, REG_SIGNON, 'IntroTextClr');
 | 
|---|
 | 397 |     DeleteRegData(HKCU, REG_SIGNON, 'IntroTextFont');
 | 
|---|
 | 398 |     DeleteRegData(HKCU, REG_SIGNON, 'IntroTextStyle');
 | 
|---|
 | 399 |     strPosition := '0';
 | 
|---|
 | 400 |     strSize := '0';
 | 
|---|
 | 401 |     // Restore values to Defaults at Signon
 | 
|---|
 | 402 |     InitialValues.SetEqual(SignonDefaults);
 | 
|---|
 | 403 | 
 | 
|---|
 | 404 |     UpdateWindow;
 | 
|---|
 | 405 |   end;
 | 
|---|
 | 406 | end;
 | 
|---|
 | 407 | 
 | 
|---|
 | 408 | procedure TSignonConfiguration.UserClickedOK;
 | 
|---|
 | 409 | var
 | 
|---|
 | 410 |   JPosition: Integer;
 | 
|---|
 | 411 |   JSize: Integer;
 | 
|---|
 | 412 | begin
 | 
|---|
 | 413 |   JPosition := frmSignonConfig.rgrWindowPosition.ItemIndex;
 | 
|---|
 | 414 |   JSize := frmSignonConfig.rgrWindowSize.ItemIndex;
 | 
|---|
 | 415 | 
 | 
|---|
 | 416 |   if JPosition = 0 then
 | 
|---|
 | 417 |     FPosition := '0'
 | 
|---|
 | 418 |   else
 | 
|---|
 | 419 |     FPosition := IntToStr(JPosition)+U+IntToStr(frmSignon.Top)+U+IntToStr(frmSignon.Left);
 | 
|---|
 | 420 |   strPosition := FPosition;
 | 
|---|
 | 421 | 
 | 
|---|
 | 422 |   if JSize = 0 then
 | 
|---|
 | 423 |     FSize := '0'
 | 
|---|
 | 424 |   else
 | 
|---|
 | 425 |     FSize := IntToStr(JSize)+U+IntToStr(frmSignon.Width)+U+IntToStr(frmSignon.Height);
 | 
|---|
 | 426 |   strSize := FSize;
 | 
|---|
 | 427 | 
 | 
|---|
 | 428 |   if FIntroBackColor <> InitialValues.BackColor then
 | 
|---|
 | 429 |   begin
 | 
|---|
 | 430 |     InitialValues.BackColor := FIntroBackColor;
 | 
|---|
 | 431 |     if InitialValues.BackColor <> SignonDefaults.BackColor then
 | 
|---|
 | 432 |       WriteRegData(HKCU, REG_SIGNON, 'IntroBackClr',IntToStr(FIntroBackColor))
 | 
|---|
 | 433 |     else
 | 
|---|
 | 434 |       DeleteRegData(HKCU, REG_SIGNON, 'IntroBackClr');
 | 
|---|
 | 435 |   end;
 | 
|---|
 | 436 | 
 | 
|---|
 | 437 |   if FIntroTextColor <> InitialValues.TextColor then
 | 
|---|
 | 438 |   begin
 | 
|---|
 | 439 |     InitialValues.TextColor := FIntroTextColor;
 | 
|---|
 | 440 |     if InitialValues.BackColor <> SignonDefaults.BackColor then
 | 
|---|
 | 441 |       WriteRegData(HKCU, REG_SIGNON, 'IntroTextClr',IntToStr(FIntroTextColor))
 | 
|---|
 | 442 |     else
 | 
|---|
 | 443 |       DeleteRegData(HKCU, REG_SIGNON, 'IntroTextClr');
 | 
|---|
 | 444 |   end;
 | 
|---|
 | 445 | 
 | 
|---|
 | 446 |   if FIntroFontValue <> InitialValues.IntroFont then
 | 
|---|
 | 447 |   begin
 | 
|---|
 | 448 |     InitialValues.IntroFont := FIntrofontValue;
 | 
|---|
 | 449 |     if InitialValues.IntroFont <> SignonDefaults.IntroFont then
 | 
|---|
 | 450 |       WriteRegData(HKCU, REG_SIGNON, 'IntroTextFont',FIntroFontValue)
 | 
|---|
 | 451 |     else
 | 
|---|
 | 452 |       DeleteRegData(HKCU, REG_SIGNON, 'IntroTextFont');
 | 
|---|
 | 453 |   end;
 | 
|---|
 | 454 | 
 | 
|---|
 | 455 |   if FIntroFontStyles <> InitialValues.IntroFontStyles then
 | 
|---|
 | 456 |   begin
 | 
|---|
 | 457 |     InitialValues.IntroFontStyles := FIntrofontStyles;
 | 
|---|
 | 458 |     if InitialValues.IntroFontStyles <> SignonDefaults.IntroFontStyles then
 | 
|---|
 | 459 |       WriteRegData(HKCU, REG_SIGNON, 'IntroTextStyle',FIntroFontStyles)
 | 
|---|
 | 460 |     else
 | 
|---|
 | 461 |       DeleteRegData(HKCU, REG_SIGNON, 'IntroTextStyle');
 | 
|---|
 | 462 |   end;
 | 
|---|
 | 463 | 
 | 
|---|
 | 464 |   if FPosition <> InitialValues.Position then
 | 
|---|
 | 465 |   begin
 | 
|---|
 | 466 |     InitialValues.Position := FPosition;
 | 
|---|
 | 467 |      if InitialValues.Position <> SignonDefaults.Position then
 | 
|---|
 | 468 |       WriteRegData(HKCU, REG_SIGNON, 'SignonPos',FPosition)
 | 
|---|
 | 469 |     else
 | 
|---|
 | 470 |       DeleteRegData(HKCU, REG_SIGNON, 'SignonPos');
 | 
|---|
 | 471 |   end;
 | 
|---|
 | 472 | 
 | 
|---|
 | 473 |   if FSize <> InitialValues.Size then
 | 
|---|
 | 474 |   begin
 | 
|---|
 | 475 |     InitialValues.Size := FSize;
 | 
|---|
 | 476 |     if InitialValues.Size <> SignonDefaults.Size then
 | 
|---|
 | 477 |       WriteRegData(HKCU, REG_SIGNON, 'SignonSiz',FSize)
 | 
|---|
 | 478 |     else
 | 
|---|
 | 479 |       DeleteRegData(HKCU, REG_SIGNON, 'SignonSiz');
 | 
|---|
 | 480 |   end;
 | 
|---|
 | 481 | 
 | 
|---|
 | 482 |   UpdateWindow;
 | 
|---|
 | 483 | end;
 | 
|---|
 | 484 | 
 | 
|---|
 | 485 | constructor TSignonConfiguration.Create;
 | 
|---|
 | 486 | begin
 | 
|---|
 | 487 |   inherited;
 | 
|---|
 | 488 |   if SignonDefaults = nil then
 | 
|---|
 | 489 |     SignonDefaults := TSignonValues.Create;
 | 
|---|
 | 490 |   if InitialValues = nil then
 | 
|---|
 | 491 |     InitialValues := TSignonValues.Create;
 | 
|---|
 | 492 | 
 | 
|---|
 | 493 | end;
 | 
|---|
 | 494 | 
 | 
|---|
 | 495 | procedure TSignonConfiguration.UpdateWindow;
 | 
|---|
 | 496 | begin
 | 
|---|
 | 497 |   // TODO -cMM: default body inserted
 | 
|---|
 | 498 |     frmSignon.IntroText.Color := InitialValues.BackColor;
 | 
|---|
 | 499 |     frmSignon.IntroText.Font.Name := InitialValues.Font.Name;
 | 
|---|
 | 500 |     frmSignon.IntroText.Font.Size := InitialValues.Font.Size;
 | 
|---|
 | 501 |     frmSignon.IntroText.Font.Style := InitialValues.Font.Style;
 | 
|---|
 | 502 |     frmSignon.IntroText.Font.Color := InitialValues.Font.Color;
 | 
|---|
 | 503 |     frmSignon.Left := SignonDefaults.Left;
 | 
|---|
 | 504 |     frmSignon.Top := SignonDefaults.Top;
 | 
|---|
 | 505 |     frmSignon.Width := SignonDefaults.Width;
 | 
|---|
 | 506 |     frmSignon.Height := SignonDefaults.Height;
 | 
|---|
 | 507 | end;
 | 
|---|
 | 508 | 
 | 
|---|
 | 509 | procedure TSignonValues.Clear;
 | 
|---|
 | 510 | begin
 | 
|---|
 | 511 |     FHeight := 0;
 | 
|---|
 | 512 |     FWidth := 0;
 | 
|---|
 | 513 |     FTextColor := clWindowText;
 | 
|---|
 | 514 |     FPosition := '';
 | 
|---|
 | 515 |     FSize := '';
 | 
|---|
 | 516 |     FIntroFont := '';
 | 
|---|
 | 517 |     FIntroFontStyles := '';
 | 
|---|
 | 518 |     FBackColor := clWindow;
 | 
|---|
 | 519 |     FFont.Name := 'Courier New' ;
 | 
|---|
 | 520 |     FFont.Size := 11;
 | 
|---|
 | 521 |     FFont.Style := [];
 | 
|---|
 | 522 | end;
 | 
|---|
 | 523 | 
 | 
|---|
 | 524 | constructor TSignonValues.Create;
 | 
|---|
 | 525 | begin
 | 
|---|
 | 526 |   inherited;
 | 
|---|
 | 527 |   FFont := TFont.Create;
 | 
|---|
 | 528 | end;
 | 
|---|
 | 529 | 
 | 
|---|
 | 530 | destructor TSignonValues.Destroy;
 | 
|---|
 | 531 | begin
 | 
|---|
 | 532 |   FFont.Free;
 | 
|---|
 | 533 |   inherited;
 | 
|---|
 | 534 | end;
 | 
|---|
 | 535 | 
 | 
|---|
 | 536 | procedure TSignonValues.SetSize(const Value: String);
 | 
|---|
 | 537 | begin
 | 
|---|
 | 538 |   FSize := Value;
 | 
|---|
 | 539 |   if Value <> '0' then
 | 
|---|
 | 540 |   begin
 | 
|---|
 | 541 |     FWidth := StrToInt(Piece(Value,U,2));
 | 
|---|
 | 542 |     FHeight := StrToInt(Piece(Value,U,3));
 | 
|---|
 | 543 |   end;
 | 
|---|
 | 544 | end;
 | 
|---|
 | 545 | 
 | 
|---|
 | 546 | procedure TSignonValues.SetPosition(const Value: String);
 | 
|---|
 | 547 | begin
 | 
|---|
 | 548 |   FPosition := Value;
 | 
|---|
 | 549 |   if Value <> '0' then
 | 
|---|
 | 550 |   begin
 | 
|---|
 | 551 |     FTop := StrToInt(Piece(Value,U,2));
 | 
|---|
 | 552 |     FLeft := StrToInt(Piece(Value,U,3));
 | 
|---|
 | 553 |   end;
 | 
|---|
 | 554 | end;
 | 
|---|
 | 555 | 
 | 
|---|
 | 556 | procedure TSignonValues.SetIntroFont(const Value: String);
 | 
|---|
 | 557 | begin
 | 
|---|
 | 558 |   FIntroFont := Value;
 | 
|---|
 | 559 |   FFont.Name := Piece(Value,U,1);
 | 
|---|
 | 560 |   FFont.Size := StrToInt(Piece(Value,U,2));
 | 
|---|
 | 561 | end;
 | 
|---|
 | 562 | 
 | 
|---|
 | 563 | procedure TSignonValues.SetIntroFontStyles(const Value: String);
 | 
|---|
 | 564 | begin
 | 
|---|
 | 565 |   FIntroFontStyles := Value;
 | 
|---|
 | 566 |   if Value <> '' then
 | 
|---|
 | 567 |     FFont.Style := RestoreFontStyles(Value)
 | 
|---|
 | 568 |   else
 | 
|---|
 | 569 |     FFont.Style := [];
 | 
|---|
 | 570 | end;
 | 
|---|
 | 571 | 
 | 
|---|
 | 572 | procedure TSignonValues.SetEqual(EqualToValue: TSignonValues);
 | 
|---|
 | 573 | begin
 | 
|---|
 | 574 |   BackColor := EqualToValue.BackColor;
 | 
|---|
 | 575 |   Font.Name := EqualToValue.Font.Name;
 | 
|---|
 | 576 |   Font.Size := EqualToValue.Font.Size;
 | 
|---|
 | 577 |   FontStyles := EqualToValue.FontStyles;
 | 
|---|
 | 578 |   Height := EqualToValue.Height;
 | 
|---|
 | 579 |   IntroFont := EqualToValue.IntroFont;
 | 
|---|
 | 580 |   IntroFontStyles := EqualToValue.IntroFontStyles;
 | 
|---|
 | 581 |   Left := EqualToValue.Left;
 | 
|---|
 | 582 |   Position := EqualToValue.Position;
 | 
|---|
 | 583 |   Size := EqualToValue.Size;
 | 
|---|
 | 584 |   TextColor := EqualToValue.TextColor;
 | 
|---|
 | 585 |   Top := EqualToValue.Top;
 | 
|---|
 | 586 |   Width := EqualToValue.Width;
 | 
|---|
 | 587 | end;
 | 
|---|
 | 588 | 
 | 
|---|
 | 589 | procedure TSignonValues.SetFont(Value: TFont);
 | 
|---|
 | 590 | begin
 | 
|---|
 | 591 |   FFont := Value;
 | 
|---|
 | 592 |   FIntroFont := Value.Name+U+IntToStr(Value.Size);
 | 
|---|
 | 593 |   FIntroFontStyles := StoreFontStyle(FFont.Style)
 | 
|---|
 | 594 | end;
 | 
|---|
 | 595 | 
 | 
|---|
 | 596 | procedure TSignonValues.SetTextColor(Value: LongInt);
 | 
|---|
 | 597 | begin
 | 
|---|
 | 598 |   FTextColor := Value;
 | 
|---|
 | 599 |   FFont.Color := Value;
 | 
|---|
 | 600 | end;
 | 
|---|
 | 601 | 
 | 
|---|
 | 602 | end.
 | 
|---|