home *** CD-ROM | disk | FTP | other *** search
- {*******************************************************}
- { }
- { eXpert Desktop }
- { }
- { Copyright (c) 1996,97 Sergey Orlik }
- { - product manager of Borland Russia }
- { }
- {*******************************************************}
- {$C PRELOAD}
-
- unit XDesk;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- Menus, StdCtrls, ComCtrls, Registry, ExtCtrls, XDKMenu;
-
- type
- TExpertDesktop = class(TForm)
- Pages: TPageControl;
- eXpertDesktopAddInMenu: TxdkAddInMenu;
- eXpertDesktopAddInMenuItem: TxdkAddInMenuItem;
- procedure Stayontop1Click(Sender: TObject);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- procedure eXpertDesktopAddInMenuItemClick(Sender: TObject);
- end;
-
- const
- ExpertDesktop: TExpertDesktop = nil;
-
- const
- xdkREGSTR_PATH = '\SOFTWARE\SORLIC\';
- xdkREGSTR_PATH_XD = '\SOFTWARE\SORLIC\Expert Desktop';
-
- xdkREGSTR_KEY_XD_Top = 'Top';
- xdkREGSTR_KEY_XD_Left = 'Left';
- xdkREGSTR_KEY_XD_Height= 'Height';
- xdkREGSTR_KEY_XD_Width = 'Width';
- xdkREGSTR_KEY_XD_IsMin = 'IsMinimize';
-
- //==============================================================
- implementation
-
- {$R *.DFM}
- //==============================================================
- procedure LoadStateDesk;
- var
- reg : TRegistry;
- s : string;
- I : integer;
- begin
- reg:=TRegistry.Create;
- try
- reg.RootKey:=HKEY_CURRENT_USER;
- reg.OpenKey(xdkREGSTR_PATH_XD,false);
- s:=reg.ReadString(xdkREGSTR_KEY_XD_Top);
- if s<>EmptyStr then
- begin
- I:=StrToInt(s);
- if I>0 then ExpertDesktop.Top:=I;
- end;
- s:=reg.ReadString(xdkREGSTR_KEY_XD_Left);
- if s<>EmptyStr then
- begin
- I:=StrToInt(s);
- if I>0 then ExpertDesktop.Left:=I;
- end;
- s:=reg.ReadString(xdkREGSTR_KEY_XD_Height);
- if s<>EmptyStr then
- begin
- I:=StrToInt(s);
- if I>0 then ExpertDesktop.Height:=I;
- end;
- s:=reg.ReadString(xdkREGSTR_KEY_XD_Width);
- if s<>EmptyStr then
- begin
- I:=StrToInt(s);
- if I>0 then ExpertDesktop.Width:=I;
- end;
- { try
- ExpertDesktop.FormStyle:=TFormStyle(reg.ReadInteger(xdkREGSTR_KEY_XD_Top));
- except
- ExpertDesktop.FormStyle:=fsStayOnTop;
- end;
- ExpertDesktop.Stayontop1.Checked:=ExpertDesktop.FormStyle=fsStayOnTop;
- } try
- ExpertDesktop.WindowState:=TWindowState(reg.ReadInteger(xdkREGSTR_KEY_XD_IsMin));
- except
- ExpertDesktop.WindowState:=wsNormal;
- end;
- finally
- reg.Free;
- end;
- end;
-
- procedure SaveStateDesk;
- var
- reg : TRegistry;
- begin
- reg:=TRegistry.Create;
- try
- reg.RootKey:=HKEY_CURRENT_USER;
- reg.OpenKey(xdkREGSTR_PATH_XD,true);
- reg.WriteString(xdkREGSTR_KEY_XD_Top,IntToStr(ExpertDesktop.Top));
- reg.WriteString(xdkREGSTR_KEY_XD_Left,IntToStr(ExpertDesktop.Left));
- reg.WriteString(xdkREGSTR_KEY_XD_Height,IntToStr(ExpertDesktop.Height));
- reg.WriteString(xdkREGSTR_KEY_XD_Width,IntToStr(ExpertDesktop.Width));
- reg.WriteInteger(xdkREGSTR_KEY_XD_IsMin,integer(ExpertDesktop.WindowState));
- finally
- reg.Free;
- end;
- end;
-
- //==============================================================
- procedure TExpertDesktop.Stayontop1Click(Sender: TObject);
- begin
- { if Stayontop1.Checked then
- ExpertDesktop.FormStyle:=fsNormal
- else
- ExpertDesktop.FormStyle:=fsStayOnTop;
- Stayontop1.Checked:=not Stayontop1.Checked;}
- end;
-
- procedure TExpertDesktop.FormClose(Sender: TObject;
- var Action: TCloseAction);
- begin
- Action:=caMinimize;
- end;
-
- //==============================================================
-
-
- procedure TExpertDesktop.eXpertDesktopAddInMenuItemClick(Sender: TObject);
- begin
- if WindowState=wsMinimized then
- WindowState:=wsNormal;
- BringToFront;
- end;
-
- initialization
- ExpertDesktop:=TExpertDesktop.Create(nil);
- ExpertDesktop.Caption:=ExpertDesktop.Caption
- +' for '+Application.Title;
- ExpertDesktop.Show;
- LoadStateDesk;
-
- finalization
- if Assigned(ExpertDesktop) then
- begin
- ExpertDesktop.OnClose:=nil;
- SaveStateDesk;
- ExpertDesktop.Free;
- end;
- end.
-