home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / Delphi / eXpertDevelopmentKit / SOURCE / XDESK.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-01-26  |  4.3 KB  |  156 lines

  1. {*******************************************************}
  2. {                                                       }
  3. {       eXpert Desktop                                  }
  4. {                                                       }
  5. {       Copyright (c) 1996,97 Sergey Orlik              }
  6. {       - product manager of Borland Russia             }
  7. {                                                       }
  8. {*******************************************************}
  9. {$C PRELOAD}
  10.  
  11. unit XDesk;
  12.  
  13. interface
  14.  
  15. uses
  16.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  17.   Menus, StdCtrls, ComCtrls, Registry, ExtCtrls, XDKMenu;
  18.  
  19. type
  20.   TExpertDesktop = class(TForm)
  21.     Pages: TPageControl;
  22.     eXpertDesktopAddInMenu: TxdkAddInMenu;
  23.     eXpertDesktopAddInMenuItem: TxdkAddInMenuItem;
  24.     procedure Stayontop1Click(Sender: TObject);
  25.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  26.     procedure eXpertDesktopAddInMenuItemClick(Sender: TObject);
  27.   end;
  28.  
  29. const
  30.   ExpertDesktop: TExpertDesktop = nil;
  31.  
  32. const
  33.   xdkREGSTR_PATH = '\SOFTWARE\SORLIC\';
  34.   xdkREGSTR_PATH_XD = '\SOFTWARE\SORLIC\Expert Desktop';
  35.  
  36.   xdkREGSTR_KEY_XD_Top   = 'Top';
  37.   xdkREGSTR_KEY_XD_Left  = 'Left';
  38.   xdkREGSTR_KEY_XD_Height= 'Height';
  39.   xdkREGSTR_KEY_XD_Width = 'Width';
  40.   xdkREGSTR_KEY_XD_IsMin = 'IsMinimize';
  41.  
  42. //==============================================================
  43. implementation
  44.  
  45. {$R *.DFM}
  46. //==============================================================
  47. procedure LoadStateDesk;
  48. var
  49.   reg : TRegistry;
  50.   s   : string;
  51.   I   : integer;
  52. begin
  53.   reg:=TRegistry.Create;
  54.   try
  55.     reg.RootKey:=HKEY_CURRENT_USER;
  56.     reg.OpenKey(xdkREGSTR_PATH_XD,false);
  57.     s:=reg.ReadString(xdkREGSTR_KEY_XD_Top);
  58.     if s<>EmptyStr then
  59.     begin
  60.       I:=StrToInt(s);
  61.       if I>0 then ExpertDesktop.Top:=I;
  62.     end;
  63.     s:=reg.ReadString(xdkREGSTR_KEY_XD_Left);
  64.     if s<>EmptyStr then
  65.     begin
  66.       I:=StrToInt(s);
  67.       if I>0 then ExpertDesktop.Left:=I;
  68.     end;
  69.     s:=reg.ReadString(xdkREGSTR_KEY_XD_Height);
  70.     if s<>EmptyStr then
  71.     begin
  72.       I:=StrToInt(s);
  73.       if I>0 then ExpertDesktop.Height:=I;
  74.     end;
  75.     s:=reg.ReadString(xdkREGSTR_KEY_XD_Width);
  76.     if s<>EmptyStr then
  77.     begin
  78.       I:=StrToInt(s);
  79.       if I>0 then ExpertDesktop.Width:=I;
  80.     end;
  81. {    try
  82.       ExpertDesktop.FormStyle:=TFormStyle(reg.ReadInteger(xdkREGSTR_KEY_XD_Top));
  83.     except
  84.       ExpertDesktop.FormStyle:=fsStayOnTop;
  85.     end;
  86.     ExpertDesktop.Stayontop1.Checked:=ExpertDesktop.FormStyle=fsStayOnTop;
  87. }    try
  88.       ExpertDesktop.WindowState:=TWindowState(reg.ReadInteger(xdkREGSTR_KEY_XD_IsMin));
  89.     except
  90.       ExpertDesktop.WindowState:=wsNormal;
  91.     end;
  92.   finally
  93.     reg.Free;
  94.   end;
  95. end;
  96.  
  97. procedure SaveStateDesk;
  98. var
  99.   reg : TRegistry;
  100. begin
  101.   reg:=TRegistry.Create;
  102.   try
  103.     reg.RootKey:=HKEY_CURRENT_USER;
  104.     reg.OpenKey(xdkREGSTR_PATH_XD,true);
  105.     reg.WriteString(xdkREGSTR_KEY_XD_Top,IntToStr(ExpertDesktop.Top));
  106.     reg.WriteString(xdkREGSTR_KEY_XD_Left,IntToStr(ExpertDesktop.Left));
  107.     reg.WriteString(xdkREGSTR_KEY_XD_Height,IntToStr(ExpertDesktop.Height));
  108.     reg.WriteString(xdkREGSTR_KEY_XD_Width,IntToStr(ExpertDesktop.Width));
  109.     reg.WriteInteger(xdkREGSTR_KEY_XD_IsMin,integer(ExpertDesktop.WindowState));
  110.   finally
  111.     reg.Free;
  112.   end;
  113. end;
  114.  
  115. //==============================================================
  116. procedure TExpertDesktop.Stayontop1Click(Sender: TObject);
  117. begin
  118. {  if Stayontop1.Checked then
  119.     ExpertDesktop.FormStyle:=fsNormal
  120.   else
  121.     ExpertDesktop.FormStyle:=fsStayOnTop;
  122.   Stayontop1.Checked:=not Stayontop1.Checked;}
  123. end;
  124.  
  125. procedure TExpertDesktop.FormClose(Sender: TObject;
  126.   var Action: TCloseAction);
  127. begin
  128.   Action:=caMinimize;
  129. end;
  130.  
  131. //==============================================================
  132.  
  133.  
  134. procedure TExpertDesktop.eXpertDesktopAddInMenuItemClick(Sender: TObject);
  135. begin
  136.   if WindowState=wsMinimized then
  137.     WindowState:=wsNormal;
  138.   BringToFront;
  139. end;
  140.  
  141. initialization
  142.   ExpertDesktop:=TExpertDesktop.Create(nil);
  143.   ExpertDesktop.Caption:=ExpertDesktop.Caption
  144.      +' for '+Application.Title;
  145.   ExpertDesktop.Show;
  146.   LoadStateDesk;
  147.  
  148. finalization
  149.   if Assigned(ExpertDesktop) then
  150.   begin
  151.     ExpertDesktop.OnClose:=nil;
  152.     SaveStateDesk;
  153.     ExpertDesktop.Free;
  154.   end;
  155. end.
  156.