Browse Source

Display Table Management in page tab
modified: TurboBird.lpi
modified: TurboBird.lpr
modified: dbinfo.lfm
modified: dbinfo.pas
modified: main.pas
modified: permissionmanage.lfm
modified: permissionmanage.lrs
modified: permissionmanage.pas
modified: tablemanage.lfm
modified: tablemanage.lrs
modified: tablemanage.pas
modified: userpermissions.lfm
modified: userpermissions.lrs

Motaz Abdel Azeem 13 năm trước cách đây
mục cha
commit
c64228c5df
13 tập tin đã thay đổi với 705 bổ sung550 xóa
  1. 82 97
      TurboBird.lpi
  2. 20 22
      TurboBird.lpr
  3. 14 0
      dbinfo.lfm
  4. 18 1
      dbinfo.pas
  5. 132 45
      main.pas
  6. 34 21
      permissionmanage.lfm
  7. 75 71
      permissionmanage.lrs
  8. 11 0
      permissionmanage.pas
  9. 37 25
      tablemanage.lfm
  10. 256 252
      tablemanage.lrs
  11. 9 0
      tablemanage.pas
  12. 2 1
      userpermissions.lfm
  13. 15 15
      userpermissions.lrs

+ 82 - 97
TurboBird.lpi

@@ -60,10 +60,11 @@
         <Filename Value="TurboBird.lpr"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="TurboBird"/>
-        <EditorIndex Value="8"/>
+        <IsVisibleTab Value="True"/>
+        <EditorIndex Value="11"/>
         <WindowIndex Value="0"/>
         <TopLine Value="1"/>
-        <CursorPos X="25" Y="18"/>
+        <CursorPos X="25" Y="17"/>
         <UsageCount Value="200"/>
         <Loaded Value="True"/>
       </Unit0>
@@ -73,11 +74,10 @@
         <ComponentName Value="fmMain"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="main"/>
-        <IsVisibleTab Value="True"/>
         <EditorIndex Value="1"/>
         <WindowIndex Value="0"/>
-        <TopLine Value="2951"/>
-        <CursorPos X="31" Y="2979"/>
+        <TopLine Value="1501"/>
+        <CursorPos X="84" Y="1508"/>
         <UsageCount Value="200"/>
         <Loaded Value="True"/>
         <LoadedDesigner Value="True"/>
@@ -99,7 +99,7 @@
         <ComponentName Value="fmReg"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="Reg"/>
-        <EditorIndex Value="12"/>
+        <EditorIndex Value="15"/>
         <WindowIndex Value="0"/>
         <TopLine Value="228"/>
         <CursorPos X="22" Y="269"/>
@@ -119,10 +119,10 @@
         <ComponentName Value="fmQueryWindow"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="QueryWindow"/>
-        <EditorIndex Value="5"/>
+        <EditorIndex Value="7"/>
         <WindowIndex Value="0"/>
-        <TopLine Value="828"/>
-        <CursorPos X="41" Y="831"/>
+        <TopLine Value="157"/>
+        <CursorPos X="3" Y="164"/>
         <UsageCount Value="200"/>
         <Loaded Value="True"/>
         <LoadedDesigner Value="True"/>
@@ -167,7 +167,7 @@
         <ComponentName Value="fmViewTrigger"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="ViewTrigger"/>
-        <EditorIndex Value="6"/>
+        <EditorIndex Value="8"/>
         <WindowIndex Value="0"/>
         <TopLine Value="19"/>
         <CursorPos X="72" Y="27"/>
@@ -181,7 +181,7 @@
         <ComponentName Value="fmViewSProc"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="ViewSProc"/>
-        <EditorIndex Value="7"/>
+        <EditorIndex Value="9"/>
         <WindowIndex Value="0"/>
         <TopLine Value="11"/>
         <CursorPos X="11" Y="17"/>
@@ -381,7 +381,7 @@
         <ComponentName Value="fmEditTable"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="EditTable"/>
-        <EditorIndex Value="9"/>
+        <EditorIndex Value="12"/>
         <WindowIndex Value="0"/>
         <TopLine Value="78"/>
         <CursorPos X="33" Y="109"/>
@@ -438,7 +438,7 @@
         <ComponentName Value="fmViewDomain"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="ViewDomain"/>
-        <EditorIndex Value="3"/>
+        <EditorIndex Value="4"/>
         <WindowIndex Value="0"/>
         <TopLine Value="12"/>
         <CursorPos X="24" Y="17"/>
@@ -470,7 +470,7 @@
         <ComponentName Value="dmSysTables"/>
         <ResourceBaseClass Value="DataModule"/>
         <UnitName Value="SysTables"/>
-        <EditorIndex Value="4"/>
+        <EditorIndex Value="6"/>
         <WindowIndex Value="0"/>
         <TopLine Value="531"/>
         <CursorPos X="116" Y="556"/>
@@ -555,7 +555,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="144"/>
         <CursorPos X="3" Y="179"/>
-        <UsageCount Value="188"/>
+        <UsageCount Value="190"/>
       </Unit51>
       <Unit52>
         <Filename Value="connectas.pas"/>
@@ -572,10 +572,13 @@
         <ComponentName Value="fmUserPermissions"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="UserPermissions"/>
+        <EditorIndex Value="10"/>
         <WindowIndex Value="0"/>
         <TopLine Value="6"/>
-        <CursorPos X="38" Y="12"/>
-        <UsageCount Value="164"/>
+        <CursorPos X="8" Y="34"/>
+        <UsageCount Value="166"/>
+        <Loaded Value="True"/>
+        <LoadedDesigner Value="True"/>
       </Unit53>
       <Unit54>
         <Filename Value="/usr/lib/lazarus/0.9.29/ide/lazarus.pp"/>
@@ -591,10 +594,13 @@
         <ComponentName Value="fmTableManage"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="TableManage"/>
+        <EditorIndex Value="5"/>
         <WindowIndex Value="0"/>
-        <TopLine Value="249"/>
-        <CursorPos X="65" Y="256"/>
-        <UsageCount Value="147"/>
+        <TopLine Value="303"/>
+        <CursorPos X="16" Y="311"/>
+        <UsageCount Value="149"/>
+        <Loaded Value="True"/>
+        <LoadedDesigner Value="True"/>
       </Unit55>
       <Unit56>
         <Filename Value="/usr/lib/lazarus/0.9.29/lcl/grids.pas"/>
@@ -634,21 +640,21 @@
         <ComponentName Value="fmBackupRestore"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="BackupRestore"/>
-        <EditorIndex Value="10"/>
+        <EditorIndex Value="13"/>
         <WindowIndex Value="0"/>
         <TopLine Value="40"/>
         <CursorPos X="14" Y="54"/>
-        <UsageCount Value="133"/>
+        <UsageCount Value="135"/>
         <Loaded Value="True"/>
       </Unit60>
       <Unit61>
         <Filename Value="unitfirebirdservices.pas"/>
         <UnitName Value="UnitFirebirdServices"/>
-        <EditorIndex Value="11"/>
+        <EditorIndex Value="14"/>
         <WindowIndex Value="0"/>
         <TopLine Value="321"/>
         <CursorPos X="1" Y="367"/>
-        <UsageCount Value="19"/>
+        <UsageCount Value="20"/>
         <Loaded Value="True"/>
       </Unit61>
       <Unit62>
@@ -707,7 +713,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="3"/>
         <CursorPos X="71" Y="7"/>
-        <UsageCount Value="103"/>
+        <UsageCount Value="105"/>
       </Unit68>
       <Unit69>
         <Filename Value="changepass.pas"/>
@@ -718,7 +724,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="3"/>
         <CursorPos X="88" Y="14"/>
-        <UsageCount Value="102"/>
+        <UsageCount Value="104"/>
       </Unit69>
       <Unit70>
         <Filename Value="permissionmanage.pas"/>
@@ -727,9 +733,9 @@
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="PermissionManage"/>
         <WindowIndex Value="0"/>
-        <TopLine Value="53"/>
-        <CursorPos X="21" Y="92"/>
-        <UsageCount Value="100"/>
+        <TopLine Value="310"/>
+        <CursorPos X="29" Y="331"/>
+        <UsageCount Value="102"/>
       </Unit70>
       <Unit71>
         <Filename Value="sqlhistory.pas"/>
@@ -740,7 +746,7 @@
         <WindowIndex Value="0"/>
         <TopLine Value="1"/>
         <CursorPos X="18" Y="39"/>
-        <UsageCount Value="85"/>
+        <UsageCount Value="87"/>
       </Unit71>
       <Unit72>
         <Filename Value="../../lazarus/lazarus/lcl/include/menuitem.inc"/>
@@ -762,11 +768,11 @@
         <ComponentName Value="fmCopyTable"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="CopyTable"/>
-        <EditorIndex Value="13"/>
+        <EditorIndex Value="16"/>
         <WindowIndex Value="0"/>
         <TopLine Value="30"/>
         <CursorPos X="1" Y="151"/>
-        <UsageCount Value="56"/>
+        <UsageCount Value="58"/>
         <Loaded Value="True"/>
         <LoadedDesigner Value="True"/>
       </Unit74>
@@ -957,133 +963,112 @@
         <ComponentName Value="fmDBInfo"/>
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="dbInfo"/>
+        <EditorIndex Value="3"/>
         <WindowIndex Value="0"/>
-        <TopLine Value="1"/>
-        <CursorPos X="12" Y="28"/>
-        <UsageCount Value="24"/>
+        <TopLine Value="18"/>
+        <CursorPos X="11" Y="23"/>
+        <UsageCount Value="26"/>
+        <Loaded Value="True"/>
+        <LoadedDesigner Value="True"/>
       </Unit98>
     </Units>
-    <JumpHistory Count="30" HistoryIndex="29">
+    <JumpHistory Count="24" HistoryIndex="23">
       <Position1>
-        <Filename Value="main.pas"/>
-        <Caret Line="1" Column="1" TopLine="1"/>
+        <Filename Value="tablemanage.pas"/>
+        <Caret Line="256" Column="65" TopLine="249"/>
       </Position1>
       <Position2>
-        <Filename Value="main.pas"/>
-        <Caret Line="1678" Column="31" TopLine="1643"/>
+        <Filename Value="tablemanage.pas"/>
+        <Caret Line="263" Column="65" TopLine="256"/>
       </Position2>
       <Position3>
-        <Filename Value="main.pas"/>
-        <Caret Line="1700" Column="54" TopLine="1665"/>
+        <Filename Value="tablemanage.pas"/>
+        <Caret Line="254" Column="15" TopLine="244"/>
       </Position3>
       <Position4>
         <Filename Value="main.pas"/>
-        <Caret Line="1794" Column="14" TopLine="1790"/>
+        <Caret Line="2173" Column="3" TopLine="2163"/>
       </Position4>
       <Position5>
-        <Filename Value="main.pas"/>
-        <Caret Line="1823" Column="1" TopLine="1802"/>
+        <Filename Value="querywindow.pas"/>
+        <Caret Line="831" Column="41" TopLine="828"/>
       </Position5>
       <Position6>
-        <Filename Value="main.pas"/>
-        <Caret Line="1786" Column="1" TopLine="1784"/>
+        <Filename Value="tablemanage.pas"/>
+        <Caret Line="78" Column="15" TopLine="49"/>
       </Position6>
       <Position7>
-        <Filename Value="main.pas"/>
-        <Caret Line="1886" Column="104" TopLine="1880"/>
+        <Filename Value="tablemanage.pas"/>
+        <Caret Line="264" Column="69" TopLine="257"/>
       </Position7>
       <Position8>
-        <Filename Value="main.pas"/>
-        <Caret Line="3410" Column="24" TopLine="3393"/>
+        <Filename Value="tablemanage.pas"/>
+        <Caret Line="23" Column="5" TopLine="2"/>
       </Position8>
       <Position9>
         <Filename Value="main.pas"/>
-        <Caret Line="3302" Column="5" TopLine="3288"/>
+        <Caret Line="2118" Column="42" TopLine="2101"/>
       </Position9>
       <Position10>
         <Filename Value="main.pas"/>
-        <Caret Line="1461" Column="3" TopLine="1454"/>
+        <Caret Line="379" Column="12" TopLine="365"/>
       </Position10>
       <Position11>
         <Filename Value="main.pas"/>
-        <Caret Line="2503" Column="1" TopLine="2487"/>
+        <Caret Line="2122" Column="1" TopLine="2099"/>
       </Position11>
       <Position12>
         <Filename Value="main.pas"/>
-        <Caret Line="2947" Column="14" TopLine="2914"/>
+        <Caret Line="381" Column="8" TopLine="359"/>
       </Position12>
       <Position13>
         <Filename Value="main.pas"/>
-        <Caret Line="2949" Column="33" TopLine="2923"/>
+        <Caret Line="2122" Column="1" TopLine="2108"/>
       </Position13>
       <Position14>
-        <Filename Value="querywindow.pas"/>
-        <Caret Line="1" Column="1" TopLine="1"/>
+        <Filename Value="dbinfo.pas"/>
+        <Caret Line="28" Column="12" TopLine="1"/>
       </Position14>
       <Position15>
-        <Filename Value="main.pas"/>
-        <Caret Line="2946" Column="1" TopLine="2928"/>
+        <Filename Value="dbinfo.pas"/>
+        <Caret Line="30" Column="12" TopLine="1"/>
       </Position15>
       <Position16>
-        <Filename Value="main.pas"/>
-        <Caret Line="2841" Column="1" TopLine="2821"/>
+        <Filename Value="dbinfo.pas"/>
+        <Caret Line="51" Column="14" TopLine="11"/>
       </Position16>
       <Position17>
         <Filename Value="main.pas"/>
-        <Caret Line="1562" Column="12" TopLine="1560"/>
+        <Caret Line="395" Column="36" TopLine="381"/>
       </Position17>
       <Position18>
         <Filename Value="main.pas"/>
-        <Caret Line="1503" Column="22" TopLine="1492"/>
+        <Caret Line="3022" Column="43" TopLine="2992"/>
       </Position18>
       <Position19>
         <Filename Value="main.pas"/>
-        <Caret Line="1503" Column="22" TopLine="1492"/>
+        <Caret Line="3024" Column="1" TopLine="2989"/>
       </Position19>
       <Position20>
         <Filename Value="main.pas"/>
-        <Caret Line="1503" Column="1" TopLine="1497"/>
+        <Caret Line="1599" Column="19" TopLine="1581"/>
       </Position20>
       <Position21>
-        <Filename Value="viewtrigger.pas"/>
-        <Caret Line="14" Column="23" TopLine="6"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="3072" Column="41" TopLine="3056"/>
       </Position21>
       <Position22>
         <Filename Value="main.pas"/>
-        <Caret Line="3049" Column="1" TopLine="3032"/>
+        <Caret Line="2323" Column="20" TopLine="2311"/>
       </Position22>
       <Position23>
-        <Filename Value="viewsproc.pas"/>
-        <Caret Line="37" Column="80" TopLine="1"/>
+        <Filename Value="main.pas"/>
+        <Caret Line="3081" Column="21" TopLine="3057"/>
       </Position23>
       <Position24>
-        <Filename Value="viewsproc.pas"/>
-        <Caret Line="39" Column="80" TopLine="1"/>
-      </Position24>
-      <Position25>
-        <Filename Value="main.pas"/>
-        <Caret Line="3008" Column="1" TopLine="2984"/>
-      </Position25>
-      <Position26>
-        <Filename Value="udfinfo.pas"/>
-        <Caret Line="6" Column="20" TopLine="1"/>
-      </Position26>
-      <Position27>
         <Filename Value="main.pas"/>
-        <Caret Line="3109" Column="1" TopLine="3086"/>
-      </Position27>
-      <Position28>
-        <Filename Value="viewdomain.pas"/>
-        <Caret Line="21" Column="36" TopLine="1"/>
-      </Position28>
-      <Position29>
-        <Filename Value="viewdomain.pas"/>
-        <Caret Line="22" Column="36" TopLine="1"/>
-      </Position29>
-      <Position30>
-        <Filename Value="main.pas"/>
-        <Caret Line="2163" Column="69" TopLine="2157"/>
-      </Position30>
+        <Caret Line="3126" Column="24" TopLine="3111"/>
+      </Position24>
     </JumpHistory>
   </ProjectOptions>
   <CompilerOptions>

+ 20 - 22
TurboBird.lpr

@@ -2,7 +2,7 @@
 {  TurboBird: FireBird database administration and management tool          }
 {  Developed by: Motaz Abdel Azeem http://code.sd/                          }
 {  Start development:  5.Dec.2009                                           }
-{  Last updated     : 22.Jan.2012                                           }
+{  Last updated     : 23.Jan.2012                                           }
 {  License          : GPL for GUI, LGPL for Units                           }
 {***************************************************************************}
 
@@ -54,31 +54,29 @@ begin
   SAbout.Show;
   Application.ProcessMessages;
   SAbout.Update;
-
-  Application.CreateForm(TfmMain, fmMain);
-  Application.CreateForm(TfmCreateDB, fmCreateDB);
-  Application.CreateForm(TfmReg, fmReg);
-  Application.CreateForm(TfmNewTable, fmNewTable);
-  Application.CreateForm(TfmNewGen, fmNewGen);
-  Application.CreateForm(TfmEnterPass, fmEnterPass);
-  Application.CreateForm(TfmCreateTrigger, fmCreateTrigger);
-  Application.CreateForm(TfmEditTable, fmEditTable);
-  Application.CreateForm(TfmCallProc, fmCallProc);
-  Application.CreateForm(TfmEditDataFullRec, fmEditDataFullRec);
-  Application.CreateForm(TfmNewDomain, fmNewDomain);
-  Application.CreateForm(TdmSysTables, dmSysTables);
-  Application.CreateForm(TfmNewConstraint, fmNewConstraint);
-  Application.CreateForm(TfmCalen, fmCalen);
-  Application.CreateForm(TfmBackupRestore, fmBackupRestore);
-  Application.CreateForm(TfmCreateUser, fmCreateUser);
-  Application.CreateForm(TfmChangePass, fmChangePass);
-  Application.CreateForm(TfmSQLHistory, fmSQLHistory);
-  Application.CreateForm(TfmCopyTable, fmCopyTable);
+Application.CreateForm(TfmMain, fmMain);
+Application.CreateForm(TfmCreateDB, fmCreateDB);
+Application.CreateForm(TfmReg, fmReg);
+Application.CreateForm(TfmNewTable, fmNewTable);
+Application.CreateForm(TfmNewGen, fmNewGen);
+Application.CreateForm(TfmEnterPass, fmEnterPass);
+Application.CreateForm(TfmCreateTrigger, fmCreateTrigger);
+Application.CreateForm(TfmEditTable, fmEditTable);
+Application.CreateForm(TfmCallProc, fmCallProc);
+Application.CreateForm(TfmEditDataFullRec, fmEditDataFullRec);
+Application.CreateForm(TfmNewDomain, fmNewDomain);
+Application.CreateForm(TdmSysTables, dmSysTables);
+Application.CreateForm(TfmNewConstraint, fmNewConstraint);
+Application.CreateForm(TfmCalen, fmCalen);
+Application.CreateForm(TfmBackupRestore, fmBackupRestore);
+Application.CreateForm(TfmCreateUser, fmCreateUser);
+Application.CreateForm(TfmChangePass, fmChangePass);
+Application.CreateForm(TfmSQLHistory, fmSQLHistory);
+Application.CreateForm(TfmCopyTable, fmCopyTable);
   fmMain.Version:= Version;
   fmMain.VersionDate:= VersionDate;
   SAbout.Free;
   InitialiseIBase60;
-  Application.CreateForm(TfmDBInfo, fmDBInfo);
   Application.Run;
   ReleaseIBase60;
 

+ 14 - 0
dbinfo.lfm

@@ -6,6 +6,7 @@ object fmDBInfo: TfmDBInfo
   Caption = 'fmDBInfo'
   ClientHeight = 390
   ClientWidth = 701
+  OnClose = FormClose
   Position = poScreenCenter
   LCLVersion = '0.9.31'
   object Label1: TLabel
@@ -156,4 +157,17 @@ object fmDBInfo: TfmDBInfo
     ScrollBars = ssAutoBoth
     TabOrder = 6
   end
+  object bbClose: TBitBtn
+    Left = 672
+    Height = 24
+    Top = 0
+    Width = 27
+    Anchors = [akTop, akRight]
+    Caption = ' X  '
+    Color = 16249563
+    Font.Style = [fsBold]
+    OnClick = bbCloseClick
+    ParentFont = False
+    TabOrder = 7
+  end
 end

+ 18 - 1
dbinfo.pas

@@ -5,13 +5,15 @@ unit dbInfo;
 interface
 
 uses
-  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
+  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
+  Buttons;
 
 type
 
   { TfmDBInfo }
 
   TfmDBInfo = class(TForm)
+    bbClose: TBitBtn;
     edCreationDate: TEdit;
     edPageSize: TEdit;
     edDBSize: TEdit;
@@ -26,6 +28,8 @@ type
     Label6: TLabel;
     Label7: TLabel;
     meClients: TMemo;
+    procedure bbCloseClick(Sender: TObject);
+    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
   private
     { private declarations }
   public
@@ -39,5 +43,18 @@ implementation
 
 {$R *.lfm}
 
+{ TfmDBInfo }
+
+procedure TfmDBInfo.bbCloseClick(Sender: TObject);
+begin
+  Close;
+  Parent.Free;
+end;
+
+procedure TfmDBInfo.FormClose(Sender: TObject; var CloseAction: TCloseAction);
+begin
+  CloseAction:= caFree;
+end;
+
 end.
 

+ 132 - 45
main.pas

@@ -369,13 +369,33 @@ var
   ProcessList: TStringList;
   dbSize: Double;
   AType: string;
+  ATab: TTabSheet;
+  Title: string;
 begin
   ProcessList:= TStringList.Create;
+  Title:= 'Database information for: ' + tvMain.Selected.Text;
   if dmSysTables.GetDatabaseInfo(tvMain.Selected.OverlayIndex, dbName, ACharSet, CreationDate,
     MajorVer, MinorVer, Pages, PageSize, ProcessList) then
   with fmDBInfo do
   begin
-    Caption:= 'Database information for: ' + tvMain.Selected.Text;
+    fmDBInfo:= FindCusomForm(Title, TfmDBInfo) as TfmDBInfo;
+
+    if fmDBInfo = nil then
+    begin
+      fmDBInfo:= TfmDBInfo.Create(Application);
+      ATab:= TTabSheet.Create(nil);
+      ATab.Parent:= PageControl1;
+      fmDBInfo.Parent:= ATab;
+      fmDBInfo.Left:= 0;
+      fmDBInfo.Top:= 0;
+      fmDBInfo.Align:= alClient;
+      Caption:= Title;
+    end
+    else
+      ATab:= fmDBInfo.Parent as TTabSheet;
+
+    PageControl1.ActivePage:= ATab;
+    ATab.Caption:= Title;
     edName.Text:= dbName;
     edODSVer.Text:= IntToStr(MajorVer) + '.' + IntToStr(MinorVer);
     edCharset.Text:= ACharSet;
@@ -384,24 +404,24 @@ begin
     dbSize:= Pages * PageSize;
     if dbSize > 1000000000 then
     begin
-       dbSize:= ((dbSize / 1024) / 1024) / 1024;
-       AType:= 'Giga bytes';
+      dbSize:= ((dbSize / 1024) / 1024) / 1024;
+      AType:= 'Giga bytes';
     end
     else
     if dbSize > 1000000 then
     begin
-       dbSize:= ((dbSize / 1024) / 1024);
-       AType:= 'Mega bytes';
+      dbSize:= ((dbSize / 1024) / 1024);
+      AType:= 'Mega bytes';
     end
     else
     if dbSize > 1000 then
     begin
-       dbSize:= (dbSize / 1024);
-       AType:= 'Kilo bytes';
+      dbSize:= (dbSize / 1024);
+      AType:= 'Kilo bytes';
     end
     else
     begin
-       AType:= 'Bytes';
+      AType:= 'Bytes';
     end;
 
     edDBSize.Text:= Format('%3.1n %s', [dbSize, AType]);
@@ -1493,21 +1513,31 @@ var
   ObjTypeName: string;
   ObjName: string;
   ATab: TTabSheet;
+  Title: string;
 begin
   dbIndex:= tvMain.Selected.Parent.Parent.OverlayIndex;
   UserName:= tvMain.Selected.Text;
   List:= TStringList.Create;
   List.CommaText:= dmSysTables.GetUserObjects(dbIndex, UserName);
-  ATab:= TTabSheet.Create(nil);
-  ATab.Parent:= PageControl1;
-  Form:= TfmUserPermissions.Create(nil);
-  Form.Parent:= ATab;
-  Form.Caption:= 'Permissions for: ' + UserName;
-  ATab.Caption:= Form.Caption;
+  Title:= 'Permissions for: ' + UserName;
+
+  Form:= FindCusomForm(Title, TfmUserPermissions) as TfmUserPermissions;
+  if Form = nil then
+  begin
+    Form:= TfmUserPermissions.Create(Application);
+    ATab:= TTabSheet.Create(nil);
+    ATab.Parent:= PageControl1;
+    Form.Parent:= ATab;
+    Form.Caption:= Title;
+    ATab.Caption:= Form.Caption;
+    Form.Left:= 0;
+    Form.Top:= 0;
+    Form.Align:= alClient;
+  end
+  else
+    ATab:= Form.Parent as TTabSheet;
+
   PageControl1.ActivePage:= ATab;
-  Form.Left:= 0;
-  Form.Top:= 0;
-  Form.Align:= alClient;
   Form.StringGrid1.RowCount:= 1;
   Form.laObject.Caption:= UserName;
   with Form do
@@ -1561,8 +1591,25 @@ end;
 procedure TfmMain.lmRolePerManagementClick(Sender: TObject);
 var
   fmPermissions: TfmPermissionManage;
+  ATab: TTabSheet;
+  Title: string;
 begin
-  fmPermissions:= TfmPermissionManage.Create(nil);
+  Title:= 'Permission management for: ' + tvMain.Selected.Text;
+  fmPermissions:= FindCusomForm(Title, TfmPermissionManage) as TfmPermissionManage;
+  if fmPermissions = nil then
+  begin
+    fmPermissions:= TfmPermissionManage.Create(nil);
+    ATab:= TTabSheet.Create(nil);
+    ATab.Parent:= PageControl1;
+    fmPermissions.Parent:= ATab;
+    fmPermissions.Left:= 0;
+    fmPermissions.Top:= 0;
+    fmPermissions.Align:= alClient;
+    ATab.Caption:= Title;
+  end
+  else
+    ATab:= fmViewGen.Parent as TTabSheet;
+  PageControl1.ActivePage:= ATab;
   fmPermissions.Init(tvMain.Selected.Parent.Parent.OverlayIndex, '', tvMain.Selected.Text, 2);
   fmPermissions.Show;
 end;
@@ -2099,16 +2146,31 @@ var
   SelNode: TTreeNode;
   dbIndex: Integer;
   fmTableManage: TfmTableManage;
+  ATab: TTabSheet;
+  Title: string;
 begin
   try
     SelNode:= tvMain.Selected;
 
+    Title:= 'Management of : ' + SelNode.Text;
     // Fields
-    fmTableManage:= FindCusomForm('Management of : ' + SelNode.Text, TfmTableManage) as TfmTableManage;
+    fmTableManage:= FindCusomForm(Title, TfmTableManage) as TfmTableManage;
     if fmTableManage = nil then
+    begin
       fmTableManage:= TfmTableManage.Create(Application);
+      ATab:= TTabSheet.Create(nil);
+      ATab.Parent:= PageControl1;
+      fmTableManage.Parent:= ATab;
+      fmTableManage.Left:= 0;
+      fmTableManage.Top:= 0;
+      fmTableManage.Align:= alClient;
+    end
+    else
+      ATab:= fmTableManage.Parent as TTabSheet;
 
-    fmTableManage.Caption:= 'Management of : ' + SelNode.Text;
+    PageControl1.ActivePage:= ATab;
+    fmTableManage.Caption:= Title;
+    ATab.Caption:= Title;
     dbIndex:= SelNode.Parent.Parent.OverlayIndex;
     fmTableManage.Init(dbIndex, SelNode.Text);
     fmTableManage.PageControl1.TabIndex:= 0;
@@ -2955,6 +3017,7 @@ var
   AGenName: string;
   dbIndex: Integer;
   ATab: TTabSheet;
+  Title: string;
 begin
   SelNode:= tvMain.Selected;
   if (SelNode <> nil) and (SelNode.Parent <> nil) then
@@ -2970,23 +3033,30 @@ begin
     SQLQuery1.Open;
 
     // Fill ViewGen form
-    fmViewGen:= TfmViewGen.Create(nil);
-    ATab:= TTabSheet.Create(nil);
-    ATab.Parent:= PageControl1;
-    fmViewGen.Parent:= ATab;
-    fmViewGen.Left:= 0;
-    fmViewGen.Top:= 0;
-    fmViewGen.Align:= alClient;
+    Title:= 'Generator : ' + AGenName;
+    fmViewGen:= FindCusomForm(Title, TfmViewGen) as TfmViewGen;
+    if fmViewGen = nil then
+    begin
+      fmViewGen:= TfmViewGen.Create(Application);
+      ATab:= TTabSheet.Create(nil);
+      ATab.Parent:= PageControl1;
+      fmViewGen.Parent:= ATab;
+      fmViewGen.Left:= 0;
+      fmViewGen.Top:= 0;
+      fmViewGen.Align:= alClient;
+    end
+    else
+      ATab:= fmViewGen.Parent as TTabSheet;
     PageControl1.ActivePage:= ATab;
 
     with fmViewGen do
     begin
-      Caption:= 'Generator : ' + AGenName;
+      Caption:= Title;
       ATab.Caption:= Caption;
       edGenName.Caption:= AGenName;
       edValue.Caption:= SQLQuery1.Fields[0].AsString;
     end;
-    ATab.Caption:= fmViewGen.Caption;
+    ATab.Caption:= Title;
     fmViewGen.Show;
   end;
 
@@ -3002,6 +3072,7 @@ var
   spBody: string;
   dbIndex: Integer;
   ATab: TTabSheet;
+  Title: string;
 begin
   SelNode:= tvMain.Selected;
   if (SelNode <> nil) and (SelNode.Parent <> nil) then
@@ -3009,19 +3080,26 @@ begin
     AProcName:= SelNode.Text;
     dbIndex:= SelNode.Parent.Parent.OverlayIndex;
     SPBody:= GetStoredProcBody(dbIndex, AProcName, SPOwner);
+    Title:= 'StoredProcedure : ' + AProcName;
     // Fill SProc Parameters
-    fmViewSProc:= TfmViewSProc.Create(nil);
-    ATab:= TTabSheet.Create(nil);
-    ATab.Parent:= PageControl1;
-    fmViewSProc.Parent:= ATab;
-    fmViewSProc.Left:= 0;
-    fmViewSProc.Top:= 0;
-    fmViewSProc.Align:= alClient;
+    fmViewSProc:= FindCusomForm(Title, TfmViewSProc) as TfmViewSProc;
+    if fmViewSProc = nil then
+    begin
+      fmViewSProc:= TfmViewSProc.Create(Application);
+      ATab:= TTabSheet.Create(nil);
+      ATab.Parent:= PageControl1;
+      fmViewSProc.Parent:= ATab;
+      fmViewSProc.Left:= 0;
+      fmViewSProc.Top:= 0;
+      fmViewSProc.Align:= alClient;
+    end
+    else
+      ATab:= fmViewSProc.Parent as TTabSheet;
     PageControl1.ActivePage:= ATab;
     with fmViewSProc do
     begin
       SynSQLSyn1.TableNames.CommaText:= GetTableNames(dbIndex);
-      Caption:= 'StoredProcedure : ' + AProcName;
+      Caption:= Title;
       ATab.Caption:= Caption;
       edName.Caption:= AProcName;
       seScript.Lines.Clear;
@@ -3051,26 +3129,35 @@ var
   OnTable: string;
   TriggerPosition: Integer;
   ATab: TTabSheet;
+  Title: string;
 begin
   SelNode:= tvMain.Selected;
   if (SelNode <> nil) and (SelNode.Parent <> nil) then
   begin
     ATriggerName:= SelNode.Text;
+    Title:= 'Trigger : ' + ATriggerName;
     dmSysTables.GetTriggerInfo(SelNode.Parent.Parent.OverlayIndex, ATriggerName, BeforeAfter, OnTable,
       Event, Body, TriggerEnabled, TriggerPosition);
 
     // Fill ViewTrigger form
-    fmViewTrigger:= TfmViewTrigger.Create(nil);
-    ATab:= TTabSheet.Create(nil);
-    ATab.Parent:= PageControl1;
-    fmViewTrigger.Parent:= ATab;
-    fmViewTrigger.Left:= 0;
-    fmViewTrigger.Top:= 0;
-    fmViewTrigger.Align:= alClient;
+    fmViewTrigger:= FindCusomForm(Title, TfmViewTrigger) as TfmViewTrigger;
+    if fmViewTrigger = nil then
+    begin
+      fmViewTrigger:= TfmViewTrigger.Create(Application);
+      ATab:= TTabSheet.Create(nil);
+      ATab.Parent:= PageControl1;
+      fmViewTrigger.Parent:= ATab;
+      fmViewTrigger.Left:= 0;
+      fmViewTrigger.Top:= 0;
+      fmViewTrigger.Align:= alClient;
+    end
+    else
+      ATab:= fmViewTrigger.Parent as TTabSheet;
+
     PageControl1.ActivePage:= ATab;
     with fmViewTrigger do
     begin
-      Caption:= 'Trigger : ' + ATriggerName;
+      Caption:= Title;
       ATab.Caption:= Caption;
       edName.Caption:= ATriggerName;
       edOnTable.Caption:= OnTable;

+ 34 - 21
permissionmanage.lfm

@@ -8,20 +8,20 @@ object fmPermissionManage: TfmPermissionManage
   ClientWidth = 523
   OnClose = FormClose
   Position = poScreenCenter
-  LCLVersion = '0.9.30'
+  LCLVersion = '0.9.31'
   object PageControl1: TPageControl
     Left = 0
     Height = 361
     Top = 0
-    Width = 523
-    ActivePage = tsTables
-    Align = alClient
-    TabIndex = 0
+    Width = 501
+    ActivePage = tsRoles
+    Anchors = [akTop, akLeft, akRight, akBottom]
+    TabIndex = 2
     TabOrder = 0
     object tsTables: TTabSheet
       Caption = 'Tables'
-      ClientHeight = 334
-      ClientWidth = 521
+      ClientHeight = 330
+      ClientWidth = 497
       object Label1: TLabel
         Left = 12
         Height = 18
@@ -178,13 +178,13 @@ object fmPermissionManage: TfmPermissionManage
     end
     object tsProcedures: TTabSheet
       Caption = 'Procedures'
-      ClientHeight = 334
-      ClientWidth = 521
+      ClientHeight = 330
+      ClientWidth = 497
       object Label4: TLabel
         Left = 12
         Height = 18
         Top = 10
-        Width = 63
+        Width = 67
         Caption = 'User/Role'
         ParentColor = False
       end
@@ -201,13 +201,13 @@ object fmPermissionManage: TfmPermissionManage
         Left = 230
         Height = 18
         Top = 11
-        Width = 80
+        Width = 83
         Caption = 'Permissions'
         ParentColor = False
       end
       object clbProcedures: TCheckListBox
         Left = 246
-        Height = 236
+        Height = 232
         Top = 39
         Width = 211
         Anchors = [akTop, akLeft, akBottom]
@@ -230,8 +230,8 @@ object fmPermissionManage: TfmPermissionManage
       object cxProcGrant: TCheckBox
         Left = 246
         Height = 22
-        Top = 287
-        Width = 94
+        Top = 283
+        Width = 97
         Anchors = [akLeft, akBottom]
         Caption = 'With Grant'
         OnChange = cxProcGrantChange
@@ -240,13 +240,13 @@ object fmPermissionManage: TfmPermissionManage
     end
     object tsRoles: TTabSheet
       Caption = 'Roles'
-      ClientHeight = 334
-      ClientWidth = 521
+      ClientHeight = 330
+      ClientWidth = 497
       object Label6: TLabel
         Left = 12
         Height = 18
         Top = 10
-        Width = 31
+        Width = 32
         Caption = 'User'
         ParentColor = False
       end
@@ -263,7 +263,7 @@ object fmPermissionManage: TfmPermissionManage
         Left = 230
         Height = 18
         Top = 11
-        Width = 80
+        Width = 83
         Caption = 'Permissions'
         ParentColor = False
       end
@@ -280,7 +280,7 @@ object fmPermissionManage: TfmPermissionManage
       end
       object clbRoles: TCheckListBox
         Left = 246
-        Height = 241
+        Height = 237
         Top = 39
         Width = 211
         Anchors = [akTop, akLeft, akBottom]
@@ -302,8 +302,8 @@ object fmPermissionManage: TfmPermissionManage
       object cxRoleGrant: TCheckBox
         Left = 246
         Height = 22
-        Top = 295
-        Width = 100
+        Top = 291
+        Width = 103
         Anchors = [akLeft, akBottom]
         Caption = 'With Admin'
         OnChange = cxRoleGrantChange
@@ -311,4 +311,17 @@ object fmPermissionManage: TfmPermissionManage
       end
     end
   end
+  object bbClose: TBitBtn
+    Left = 496
+    Height = 24
+    Top = 0
+    Width = 27
+    Anchors = [akTop, akRight]
+    Caption = ' X  '
+    Color = 16249563
+    Font.Style = [fsBold]
+    OnClick = bbCloseClick
+    ParentFont = False
+    TabOrder = 1
+  end
 end

+ 75 - 71
permissionmanage.lrs

@@ -4,76 +4,80 @@ LazarusResources.Add('TfmPermissionManage','FORMDATA',[
   'TPF0'#19'TfmPermissionManage'#18'fmPermissionManage'#4'Left'#3#218#1#6'Heigh'
   +'t'#3'i'#1#3'Top'#3#204#0#5'Width'#3#11#2#7'Caption'#6#21'Permission Managem'
   +'ent'#12'ClientHeight'#3'i'#1#11'ClientWidth'#3#11#2#7'OnClose'#7#9'FormClos'
-  +'e'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.30'#0#12'TPageCo'
+  +'e'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.31'#0#12'TPageCo'
   +'ntrol'#12'PageControl1'#4'Left'#2#0#6'Height'#3'i'#1#3'Top'#2#0#5'Width'#3
-  +#11#2#10'ActivePage'#7#8'tsTables'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8
-  +'TabOrder'#2#0#0#9'TTabSheet'#8'tsTables'#7'Caption'#6#6'Tables'#12'ClientHe'
-  +'ight'#3'N'#1#11'ClientWidth'#3#9#2#0#6'TLabel'#6'Label1'#4'Left'#2#12#6'Hei'
-  +'ght'#2#18#3'Top'#2#10#5'Width'#2'C'#7'Caption'#6#9'User/Role'#11'ParentColo'
-  +'r'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#14#6'Height'#2#18#3'Top'#2'_'#5'Widt'
-  +'h'#2'%'#7'Caption'#6#5'Table'#11'ParentColor'#8#0#0#9'TComboBox'#8'cbTables'
-  +#4'Left'#2#18#6'Height'#2#31#3'Top'#2'|'#5'Width'#3#156#0#10'ItemHeight'#2#0
-  +#8'OnChange'#7#14'cbTablesChange'#5'Style'#7#14'csDropDownList'#8'TabOrder'#2
-  +#0#0#0#6'TLabel'#6'Label3'#4'Left'#3'4'#1#6'Height'#2#18#3'Top'#2#10#5'Width'
-  +#2'S'#7'Caption'#6#11'Permissions'#11'ParentColor'#8#0#0#9'TCheckBox'#8'cxSe'
-  +'lect'#4'Left'#3'='#1#6'Height'#2#22#3'Top'#2'V'#5'Width'#2'A'#7'Caption'#6#6
-  +'Select'#8'TabOrder'#2#1#0#0#9'TCheckBox'#8'cxInsert'#4'Left'#3'>'#1#6'Heigh'
-  +'t'#2#22#3'Top'#3#138#0#5'Width'#2'?'#7'Caption'#6#6'Insert'#8'TabOrder'#2#2
-  +#0#0#9'TCheckBox'#8'cxUpdate'#4'Left'#3'='#1#6'Height'#2#22#3'Top'#3#183#0#5
-  +'Width'#2'J'#7'Caption'#6#6'Update'#8'TabOrder'#2#3#0#0#9'TCheckBox'#8'cxDel'
-  +'ete'#4'Left'#3'='#1#6'Height'#2#22#3'Top'#3#236#0#5'Width'#2'D'#7'Caption'#6
-  +#6'Delete'#8'TabOrder'#2#4#0#0#9'TCheckBox'#12'cxReferences'#4'Left'#3'>'#1#6
-  +'Height'#2#22#3'Top'#3#31#1#5'Width'#2'c'#7'Caption'#6#10'References'#8'TabO'
-  +'rder'#2#5#0#0#7'TBitBtn'#12'bbApplyTable'#4'Left'#2#6#6'Height'#2#30#3'Top'
-  +#3#31#1#5'Width'#2'K'#7'Caption'#6#5'Apply'#4'Kind'#7#4'bkOK'#7'OnClick'#7#17
-  +'bbApplyTableClick'#8'TabOrder'#2#6#0#0#9'TComboBox'#7'cbUsers'#4'Left'#2#18
-  +#6'Height'#2#29#3'Top'#2'"'#5'Width'#3#156#0#10'ItemHeight'#2#0#8'OnChange'#7
-  +#14'cbTablesChange'#8'TabOrder'#2#7#0#0#9'TCheckBox'#13'cxSelectGrant'#4'Lef'
-  +'t'#3'Y'#1#6'Height'#2#22#3'Top'#2'f'#5'Width'#2'a'#7'Caption'#6#10'With Gra'
-  +'nt'#8'TabOrder'#2#8#0#0#9'TCheckBox'#13'cxInsertGrant'#4'Left'#3'Y'#1#6'Hei'
-  +'ght'#2#22#3'Top'#3#154#0#5'Width'#2'a'#7'Caption'#6#10'With Grant'#8'TabOrd'
-  +'er'#2#9#0#0#9'TCheckBox'#13'cxUpdateGrant'#4'Left'#3'Y'#1#6'Height'#2#22#3
-  +'Top'#3#202#0#5'Width'#2'a'#7'Caption'#6#10'With Grant'#8'TabOrder'#2#10#0#0
-  +#9'TCheckBox'#13'cxDeleteGrant'#4'Left'#3'V'#1#6'Height'#2#22#3'Top'#3#253#0
-  +#5'Width'#2'a'#7'Caption'#6#10'With Grant'#8'TabOrder'#2#11#0#0#9'TCheckBox'
-  +#17'cxReferencesGrant'#4'Left'#3'Y'#1#6'Height'#2#22#3'Top'#3'1'#1#5'Width'#2
-  +'a'#7'Caption'#6#10'With Grant'#8'TabOrder'#2#12#0#0#9'TCheckBox'#5'cxAll'#4
-  +'Left'#3'>'#1#6'Height'#2#22#3'Top'#2'"'#5'Width'#2'-'#7'Caption'#6#3'All'#10
-  +'Font.Style'#11#6'fsBold'#0#10'ParentFont'#8#8'TabOrder'#2#13#0#0#9'TCheckBo'
-  +'x'#10'cxAllGrant'#4'Left'#3'Y'#1#6'Height'#2#22#3'Top'#2'1'#5'Width'#2'f'#7
-  +'Caption'#6#10'With Grant'#10'Font.Style'#11#6'fsBold'#0#10'ParentFont'#8#8
-  +'TabOrder'#2#14#0#0#0#9'TTabSheet'#12'tsProcedures'#7'Caption'#6#10'Procedur'
-  +'es'#12'ClientHeight'#3'N'#1#11'ClientWidth'#3#9#2#0#6'TLabel'#6'Label4'#4'L'
-  +'eft'#2#12#6'Height'#2#18#3'Top'#2#10#5'Width'#2'?'#7'Caption'#6#9'User/Role'
-  +#11'ParentColor'#8#0#0#9'TComboBox'#11'cbProcUsers'#4'Left'#2#18#6'Height'#2
-  +#29#3'Top'#2'"'#5'Width'#3#156#0#10'ItemHeight'#2#0#8'OnChange'#7#17'cbProcU'
-  +'sersChange'#8'TabOrder'#2#0#0#0#6'TLabel'#6'Label5'#4'Left'#3#230#0#6'Heigh'
-  +'t'#2#18#3'Top'#2#11#5'Width'#2'P'#7'Caption'#6#11'Permissions'#11'ParentCol'
-  +'or'#8#0#0#13'TCheckListBox'#13'clbProcedures'#4'Left'#3#246#0#6'Height'#3
-  +#236#0#3'Top'#2''''#5'Width'#3#211#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBo'
-  +'ttom'#0#10'ItemHeight'#2#0#7'OnClick'#7#18'clbProceduresClick'#7'OnKeyUp'#7
-  +#18'clbProceduresKeyUp'#8'TabOrder'#2#1#8'TopIndex'#2#255#0#0#7'TBitBtn'#11
-  +'bbApplyProc'#4'Left'#2#13#6'Height'#2#30#3'Top'#3#19#1#5'Width'#2'K'#7'Capt'
-  +'ion'#6#5'Apply'#4'Kind'#7#4'bkOK'#7'OnClick'#7#16'bbApplyProcClick'#8'TabOr'
-  +'der'#2#2#0#0#9'TCheckBox'#11'cxProcGrant'#4'Left'#3#246#0#6'Height'#2#22#3
-  +'Top'#3#31#1#5'Width'#2'^'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6
-  +#10'With Grant'#8'OnChange'#7#17'cxProcGrantChange'#8'TabOrder'#2#3#0#0#0#9
-  +'TTabSheet'#7'tsRoles'#7'Caption'#6#5'Roles'#12'ClientHeight'#3'N'#1#11'Clie'
-  +'ntWidth'#3#9#2#0#6'TLabel'#6'Label6'#4'Left'#2#12#6'Height'#2#18#3'Top'#2#10
-  +#5'Width'#2#31#7'Caption'#6#4'User'#11'ParentColor'#8#0#0#9'TComboBox'#11'cb'
-  +'RolesUser'#4'Left'#2#18#6'Height'#2#29#3'Top'#2'"'#5'Width'#3#156#0#10'Item'
-  +'Height'#2#0#8'OnChange'#7#17'cbRolesUserChange'#8'TabOrder'#2#0#0#0#6'TLabe'
-  +'l'#6'Label7'#4'Left'#3#230#0#6'Height'#2#18#3'Top'#2#11#5'Width'#2'P'#7'Cap'
-  +'tion'#6#11'Permissions'#11'ParentColor'#8#0#0#7'TBitBtn'#12'bbApplyRoles'#4
-  ,'Left'#2#12#6'Height'#2#30#3'Top'#3#27#1#5'Width'#2'K'#7'Caption'#6#5'Apply'
-  +#7'Default'#9#4'Kind'#7#4'bkOK'#7'OnClick'#7#17'bbApplyRolesClick'#8'TabOrde'
-  +'r'#2#1#0#0#13'TCheckListBox'#8'clbRoles'#4'Left'#3#246#0#6'Height'#3#241#0#3
-  +'Top'#2''''#5'Width'#3#211#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0
-  +#10'ItemHeight'#2#0#7'OnClick'#7#13'clbRolesClick'#7'OnKeyUp'#7#13'clbRolesK'
-  +'eyUp'#8'TabOrder'#2#2#8'TopIndex'#2#255#0#0#7'TBitBtn'#7'BitBtn1'#4'Left'#2
-  +'c'#6'Height'#2#30#3'Top'#3#27#1#5'Width'#2'K'#7'Caption'#6#7'Refresh'#7'OnC'
-  +'lick'#7#12'BitBtn1Click'#8'TabOrder'#2#3#0#0#9'TCheckBox'#11'cxRoleGrant'#4
-  +'Left'#3#246#0#6'Height'#2#22#3'Top'#3''''#1#5'Width'#2'd'#7'Anchors'#11#6'a'
-  +'kLeft'#8'akBottom'#0#7'Caption'#6#10'With Admin'#8'OnChange'#7#17'cxRoleGra'
-  +'ntChange'#8'TabOrder'#2#4#0#0#0#0#0
+  +#245#1#10'ActivePage'#7#7'tsRoles'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRigh'
+  +'t'#8'akBottom'#0#8'TabIndex'#2#2#8'TabOrder'#2#0#0#9'TTabSheet'#8'tsTables'
+  +#7'Caption'#6#6'Tables'#12'ClientHeight'#3'J'#1#11'ClientWidth'#3#241#1#0#6
+  +'TLabel'#6'Label1'#4'Left'#2#12#6'Height'#2#18#3'Top'#2#10#5'Width'#2'C'#7'C'
+  +'aption'#6#9'User/Role'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2
+  +#14#6'Height'#2#18#3'Top'#2'_'#5'Width'#2'%'#7'Caption'#6#5'Table'#11'Parent'
+  +'Color'#8#0#0#9'TComboBox'#8'cbTables'#4'Left'#2#18#6'Height'#2#31#3'Top'#2
+  +'|'#5'Width'#3#156#0#10'ItemHeight'#2#0#8'OnChange'#7#14'cbTablesChange'#5'S'
+  +'tyle'#7#14'csDropDownList'#8'TabOrder'#2#0#0#0#6'TLabel'#6'Label3'#4'Left'#3
+  +'4'#1#6'Height'#2#18#3'Top'#2#10#5'Width'#2'S'#7'Caption'#6#11'Permissions'
+  +#11'ParentColor'#8#0#0#9'TCheckBox'#8'cxSelect'#4'Left'#3'='#1#6'Height'#2#22
+  +#3'Top'#2'V'#5'Width'#2'A'#7'Caption'#6#6'Select'#8'TabOrder'#2#1#0#0#9'TChe'
+  +'ckBox'#8'cxInsert'#4'Left'#3'>'#1#6'Height'#2#22#3'Top'#3#138#0#5'Width'#2
+  +'?'#7'Caption'#6#6'Insert'#8'TabOrder'#2#2#0#0#9'TCheckBox'#8'cxUpdate'#4'Le'
+  +'ft'#3'='#1#6'Height'#2#22#3'Top'#3#183#0#5'Width'#2'J'#7'Caption'#6#6'Updat'
+  +'e'#8'TabOrder'#2#3#0#0#9'TCheckBox'#8'cxDelete'#4'Left'#3'='#1#6'Height'#2
+  +#22#3'Top'#3#236#0#5'Width'#2'D'#7'Caption'#6#6'Delete'#8'TabOrder'#2#4#0#0#9
+  +'TCheckBox'#12'cxReferences'#4'Left'#3'>'#1#6'Height'#2#22#3'Top'#3#31#1#5'W'
+  +'idth'#2'c'#7'Caption'#6#10'References'#8'TabOrder'#2#5#0#0#7'TBitBtn'#12'bb'
+  +'ApplyTable'#4'Left'#2#6#6'Height'#2#30#3'Top'#3#31#1#5'Width'#2'K'#7'Captio'
+  +'n'#6#5'Apply'#4'Kind'#7#4'bkOK'#7'OnClick'#7#17'bbApplyTableClick'#8'TabOrd'
+  +'er'#2#6#0#0#9'TComboBox'#7'cbUsers'#4'Left'#2#18#6'Height'#2#29#3'Top'#2'"'
+  +#5'Width'#3#156#0#10'ItemHeight'#2#0#8'OnChange'#7#14'cbTablesChange'#8'TabO'
+  +'rder'#2#7#0#0#9'TCheckBox'#13'cxSelectGrant'#4'Left'#3'Y'#1#6'Height'#2#22#3
+  +'Top'#2'f'#5'Width'#2'a'#7'Caption'#6#10'With Grant'#8'TabOrder'#2#8#0#0#9'T'
+  +'CheckBox'#13'cxInsertGrant'#4'Left'#3'Y'#1#6'Height'#2#22#3'Top'#3#154#0#5
+  +'Width'#2'a'#7'Caption'#6#10'With Grant'#8'TabOrder'#2#9#0#0#9'TCheckBox'#13
+  +'cxUpdateGrant'#4'Left'#3'Y'#1#6'Height'#2#22#3'Top'#3#202#0#5'Width'#2'a'#7
+  +'Caption'#6#10'With Grant'#8'TabOrder'#2#10#0#0#9'TCheckBox'#13'cxDeleteGran'
+  +'t'#4'Left'#3'V'#1#6'Height'#2#22#3'Top'#3#253#0#5'Width'#2'a'#7'Caption'#6
+  +#10'With Grant'#8'TabOrder'#2#11#0#0#9'TCheckBox'#17'cxReferencesGrant'#4'Le'
+  +'ft'#3'Y'#1#6'Height'#2#22#3'Top'#3'1'#1#5'Width'#2'a'#7'Caption'#6#10'With '
+  +'Grant'#8'TabOrder'#2#12#0#0#9'TCheckBox'#5'cxAll'#4'Left'#3'>'#1#6'Height'#2
+  +#22#3'Top'#2'"'#5'Width'#2'-'#7'Caption'#6#3'All'#10'Font.Style'#11#6'fsBold'
+  +#0#10'ParentFont'#8#8'TabOrder'#2#13#0#0#9'TCheckBox'#10'cxAllGrant'#4'Left'
+  +#3'Y'#1#6'Height'#2#22#3'Top'#2'1'#5'Width'#2'f'#7'Caption'#6#10'With Grant'
+  +#10'Font.Style'#11#6'fsBold'#0#10'ParentFont'#8#8'TabOrder'#2#14#0#0#0#9'TTa'
+  +'bSheet'#12'tsProcedures'#7'Caption'#6#10'Procedures'#12'ClientHeight'#3'J'#1
+  +#11'ClientWidth'#3#241#1#0#6'TLabel'#6'Label4'#4'Left'#2#12#6'Height'#2#18#3
+  +'Top'#2#10#5'Width'#2'C'#7'Caption'#6#9'User/Role'#11'ParentColor'#8#0#0#9'T'
+  +'ComboBox'#11'cbProcUsers'#4'Left'#2#18#6'Height'#2#29#3'Top'#2'"'#5'Width'#3
+  +#156#0#10'ItemHeight'#2#0#8'OnChange'#7#17'cbProcUsersChange'#8'TabOrder'#2#0
+  +#0#0#6'TLabel'#6'Label5'#4'Left'#3#230#0#6'Height'#2#18#3'Top'#2#11#5'Width'
+  +#2'S'#7'Caption'#6#11'Permissions'#11'ParentColor'#8#0#0#13'TCheckListBox'#13
+  +'clbProcedures'#4'Left'#3#246#0#6'Height'#3#232#0#3'Top'#2''''#5'Width'#3#211
+  +#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#10'ItemHeight'#2#0#7'OnCli'
+  +'ck'#7#18'clbProceduresClick'#7'OnKeyUp'#7#18'clbProceduresKeyUp'#8'TabOrder'
+  +#2#1#8'TopIndex'#2#255#0#0#7'TBitBtn'#11'bbApplyProc'#4'Left'#2#13#6'Height'
+  +#2#30#3'Top'#3#19#1#5'Width'#2'K'#7'Caption'#6#5'Apply'#4'Kind'#7#4'bkOK'#7
+  +'OnClick'#7#16'bbApplyProcClick'#8'TabOrder'#2#2#0#0#9'TCheckBox'#11'cxProcG'
+  +'rant'#4'Left'#3#246#0#6'Height'#2#22#3'Top'#3#27#1#5'Width'#2'a'#7'Anchors'
+  +#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#10'With Grant'#8'OnChange'#7#17'cxP'
+  +'rocGrantChange'#8'TabOrder'#2#3#0#0#0#9'TTabSheet'#7'tsRoles'#7'Caption'#6#5
+  +'Roles'#12'ClientHeight'#3'J'#1#11'ClientWidth'#3#241#1#0#6'TLabel'#6'Label6'
+  +#4'Left'#2#12#6'Height'#2#18#3'Top'#2#10#5'Width'#2' '#7'Caption'#6#4'User'
+  +#11'ParentColor'#8#0#0#9'TComboBox'#11'cbRolesUser'#4'Left'#2#18#6'Height'#2
+  +#29#3'Top'#2'"'#5'Width'#3#156#0#10'ItemHeight'#2#0#8'OnChange'#7#17'cbRoles'
+  +'UserChange'#8'TabOrder'#2#0#0#0#6'TLabel'#6'Label7'#4'Left'#3#230#0#6'Heigh'
+  +'t'#2#18#3'Top'#2#11#5'Width'#2'S'#7'Caption'#6#11'Permissions'#11'ParentCol'
+  ,'or'#8#0#0#7'TBitBtn'#12'bbApplyRoles'#4'Left'#2#12#6'Height'#2#30#3'Top'#3
+  +#27#1#5'Width'#2'K'#7'Caption'#6#5'Apply'#7'Default'#9#4'Kind'#7#4'bkOK'#7'O'
+  +'nClick'#7#17'bbApplyRolesClick'#8'TabOrder'#2#1#0#0#13'TCheckListBox'#8'clb'
+  +'Roles'#4'Left'#3#246#0#6'Height'#3#237#0#3'Top'#2''''#5'Width'#3#211#0#7'An'
+  +'chors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#10'ItemHeight'#2#0#7'OnClick'#7
+  +#13'clbRolesClick'#7'OnKeyUp'#7#13'clbRolesKeyUp'#8'TabOrder'#2#2#8'TopIndex'
+  +#2#255#0#0#7'TBitBtn'#7'BitBtn1'#4'Left'#2'c'#6'Height'#2#30#3'Top'#3#27#1#5
+  +'Width'#2'K'#7'Caption'#6#7'Refresh'#7'OnClick'#7#12'BitBtn1Click'#8'TabOrde'
+  +'r'#2#3#0#0#9'TCheckBox'#11'cxRoleGrant'#4'Left'#3#246#0#6'Height'#2#22#3'To'
+  +'p'#3'#'#1#5'Width'#2'g'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6
+  +#10'With Admin'#8'OnChange'#7#17'cxRoleGrantChange'#8'TabOrder'#2#4#0#0#0#0#7
+  +'TBitBtn'#7'bbClose'#4'Left'#3#240#1#6'Height'#2#24#3'Top'#2#0#5'Width'#2#27
+  +#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#4' X  '#5'Color'#4#219#242
+  +#247#0#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#12'bbCloseClick'#10'Parent'
+  +'Font'#8#8'TabOrder'#2#1#0#0#0
 ]);

+ 11 - 0
permissionmanage.pas

@@ -16,6 +16,7 @@ type
     bbApplyRoles: TBitBtn;
     bbApplyTable: TBitBtn;
     bbApplyProc: TBitBtn;
+    bbClose: TBitBtn;
     BitBtn1: TBitBtn;
     cbRolesUser: TComboBox;
     cbTables: TComboBox;
@@ -51,6 +52,7 @@ type
     procedure bbApplyProcClick(Sender: TObject);
     procedure bbApplyRolesClick(Sender: TObject);
     procedure bbApplyTableClick(Sender: TObject);
+    procedure bbCloseClick(Sender: TObject);
     procedure BitBtn1Click(Sender: TObject);
     procedure cbProcUsersChange(Sender: TObject);
     procedure cbRolesUserChange(Sender: TObject);
@@ -252,11 +254,18 @@ begin
     fmMain.ShowCompleteQueryWindow(fdbIndex, 'Edit Permission for: ' + cbTables.Text, List.Text, fOnCommitProcedure);
     List.Free;
     Close;
+    Parent.Free;
   end
   else
     ShowMessage('You should enter user/role and a table');
 end;
 
+procedure TfmPermissionManage.bbCloseClick(Sender: TObject);
+begin
+  Close;
+  Parent.Free;
+end;
+
 procedure TfmPermissionManage.BitBtn1Click(Sender: TObject);
 begin
   UpdateRolePermissions;
@@ -291,6 +300,7 @@ begin
       fmMain.ShowCompleteQueryWindow(fdbIndex, 'Edit Permission for: ' + cbProcUsers.Text, List.Text, fOnCommitProcedure);
       List.Free;
       Close;
+      Parent.Free;
     end
     else
       ShowMessage('There is no change');
@@ -326,6 +336,7 @@ begin
       fmMain.ShowCompleteQueryWindow(fdbIndex, 'Edit Permission for: ' + cbRolesUser.Text, List.Text, fOnCommitProcedure);
       List.Free;
       Close;
+      Parent.Free;
     end
     else
       ShowMessage('There is no change');

+ 37 - 25
tablemanage.lfm

@@ -15,21 +15,21 @@ object fmTableManage: TfmTableManage
     Left = 0
     Height = 411
     Top = 0
-    Width = 780
+    Width = 752
     ActivePage = tsFields
-    Align = alClient
+    Anchors = [akTop, akLeft, akRight, akBottom]
     Images = ImageList1
     TabIndex = 0
     TabOrder = 0
     object tsFields: TTabSheet
       Caption = 'Fields'
       ClientHeight = 380
-      ClientWidth = 776
+      ClientWidth = 748
       object sgFields: TStringGrid
         Left = 0
         Height = 337
         Top = 0
-        Width = 776
+        Width = 748
         Align = alTop
         Anchors = [akTop, akLeft, akRight, akBottom]
         ColCount = 7
@@ -80,7 +80,6 @@ object fmTableManage: TfmTableManage
           end>
         FixedColor = 14539471
         FixedCols = 0
-        Flat = True
         Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goColSizing, goColMoving, goRowSelect, goSmoothScroll]
         RowCount = 4
         TabOrder = 0
@@ -122,7 +121,7 @@ object fmTableManage: TfmTableManage
         TabOrder = 3
       end
       object bbRefresh: TBitBtn
-        Left = 672
+        Left = 644
         Height = 30
         Top = 342
         Width = 94
@@ -137,10 +136,10 @@ object fmTableManage: TfmTableManage
     object tsIndices: TTabSheet
       Caption = 'Indices'
       ClientHeight = 380
-      ClientWidth = 776
+      ClientWidth = 748
       ImageIndex = 2
       object bbRefreshIndices: TBitBtn
-        Left = 646
+        Left = 618
         Height = 30
         Top = 3
         Width = 88
@@ -155,7 +154,7 @@ object fmTableManage: TfmTableManage
         Left = -1
         Height = 142
         Top = -2
-        Width = 637
+        Width = 609
         Anchors = [akTop, akLeft, akRight]
         Columns = <        
           item
@@ -196,7 +195,7 @@ object fmTableManage: TfmTableManage
         TabOrder = 1
       end
       object bbDrop: TBitBtn
-        Left = 646
+        Left = 618
         Height = 30
         Top = 51
         Width = 88
@@ -210,17 +209,17 @@ object fmTableManage: TfmTableManage
         Left = -2
         Height = 236
         Top = 139
-        Width = 570
+        Width = 542
         Anchors = [akTop, akLeft, akRight, akBottom]
         Caption = 'Manage'
         ClientHeight = 217
-        ClientWidth = 566
+        ClientWidth = 538
         TabOrder = 3
         object Label2: TLabel
           Left = 6
           Height = 18
           Top = 14
-          Width = 174
+          Width = 176
           Caption = 'Create new index on fields'
           ParentColor = False
         end
@@ -245,7 +244,7 @@ object fmTableManage: TfmTableManage
           Left = 254
           Height = 22
           Top = 95
-          Width = 70
+          Width = 71
           Caption = 'Unique'
           TabOrder = 1
         end
@@ -271,7 +270,7 @@ object fmTableManage: TfmTableManage
         end
         object cbSortType: TComboBox
           Left = 254
-          Height = 31
+          Height = 27
           Top = 127
           Width = 120
           AutoDropDown = True
@@ -288,7 +287,7 @@ object fmTableManage: TfmTableManage
         end
         object cbIndexType: TComboBox
           Left = 254
-          Height = 31
+          Height = 27
           Top = 1
           Width = 148
           Color = 16249563
@@ -308,10 +307,10 @@ object fmTableManage: TfmTableManage
     object tsConstraints: TTabSheet
       Caption = 'Constraints'
       ClientHeight = 380
-      ClientWidth = 776
+      ClientWidth = 748
       ImageIndex = 3
       object bbRefreshConstraint: TBitBtn
-        Left = 648
+        Left = 620
         Height = 30
         Top = 343
         Width = 99
@@ -326,7 +325,7 @@ object fmTableManage: TfmTableManage
         Left = -1
         Height = 333
         Top = -1
-        Width = 760
+        Width = 732
         Anchors = [akTop, akLeft, akRight, akBottom]
         ColCount = 7
         Columns = <        
@@ -398,13 +397,13 @@ object fmTableManage: TfmTableManage
     object tsTriggers: TTabSheet
       Caption = 'Triggers'
       ClientHeight = 380
-      ClientWidth = 776
+      ClientWidth = 748
       ImageIndex = 1
       object sgTriggers: TStringGrid
         Left = 0
         Height = 324
         Top = -1
-        Width = 758
+        Width = 730
         Anchors = [akTop, akLeft, akRight, akBottom]
         ColCount = 2
         Columns = <        
@@ -426,7 +425,7 @@ object fmTableManage: TfmTableManage
         TabOrder = 0
       end
       object bbRefreshTriggers: TBitBtn
-        Left = 662
+        Left = 634
         Height = 30
         Top = 337
         Width = 87
@@ -475,13 +474,13 @@ object fmTableManage: TfmTableManage
     object tsPermissions: TTabSheet
       Caption = 'Permissions'
       ClientHeight = 380
-      ClientWidth = 776
+      ClientWidth = 748
       ImageIndex = 4
       object sgPermissions: TStringGrid
         Left = 0
         Height = 324
         Top = 0
-        Width = 758
+        Width = 730
         Anchors = [akTop, akLeft, akRight, akBottom]
         ColCount = 12
         Columns = <        
@@ -570,7 +569,7 @@ object fmTableManage: TfmTableManage
         TabOrder = 1
       end
       object bbRefreshPermissions: TBitBtn
-        Left = 662
+        Left = 634
         Height = 30
         Top = 339
         Width = 87
@@ -594,6 +593,19 @@ object fmTableManage: TfmTableManage
       end
     end
   end
+  object bbClose: TBitBtn
+    Left = 752
+    Height = 24
+    Top = 0
+    Width = 27
+    Anchors = [akTop, akRight]
+    Caption = ' X  '
+    Color = 16249563
+    Font.Style = [fsBold]
+    OnClick = bbCloseClick
+    ParentFont = False
+    TabOrder = 1
+  end
   object ImageList1: TImageList
     DrawingStyle = dsFocus
     left = 464

+ 256 - 252
tablemanage.lrs

@@ -6,258 +6,262 @@ LazarusResources.Add('TfmTableManage','FORMDATA',[
   +'rs'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#16'Table Management'#12
   +'ClientHeight'#3#155#1#11'ClientWidth'#3#12#3#7'OnClose'#7#9'FormClose'#8'Po'
   +'sition'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.31'#0#12'TPageControl'
-  +#12'PageControl1'#4'Left'#2#0#6'Height'#3#155#1#3'Top'#2#0#5'Width'#3#12#3#10
-  +'ActivePage'#7#8'tsFields'#5'Align'#7#8'alClient'#6'Images'#7#10'ImageList1'
-  +#8'TabIndex'#2#0#8'TabOrder'#2#0#0#9'TTabSheet'#8'tsFields'#7'Caption'#6#6'F'
-  +'ields'#12'ClientHeight'#3'|'#1#11'ClientWidth'#3#8#3#0#11'TStringGrid'#8'sg'
-  +'Fields'#4'Left'#2#0#6'Height'#3'Q'#1#3'Top'#2#0#5'Width'#3#8#3#5'Align'#7#5
-  +'alTop'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8'ColCount'
-  +#2#7#7'Columns'#14#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#5'Color'#4#234
-  +#219#219#0#7'MaxSize'#2'2'#8'ReadOnly'#9#13'Title.Caption'#6#5'P-Key'#16'Tit'
-  +'le.Font.Color'#4#229'TT'#0#17'Title.Font.Height'#2#245#16'Title.Font.Style'
-  +#11#6'fsBold'#0#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'2'#0#1#13'Titl'
-  +'e.Caption'#6#10'Field Name'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#3
-  +#130#0#0#1#13'Title.Caption'#6#9'Data Type'#18'Title.PrefixOption'#7#6'poNon'
-  +'e'#5'Width'#2'x'#0#1#13'Title.Caption'#6#4'Size'#16'Title.Font.Color'#4#21
-  +'-'#254#0#16'Title.Font.Style'#11#6'fsBold'#0#18'Title.PrefixOption'#7#6'poN'
-  +'one'#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#10'All'
-  +'ow Null'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'Z'#0#1#13'Title.Capt'
-  +'ion'#6#13'Default Value'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'x'#0
-  +#1#13'Title.Caption'#6#11'Description'#18'Title.PrefixOption'#7#6'poNone'#5
-  +'Width'#3#200#0#0#0#10'FixedColor'#4#207#218#221#0#9'FixedCols'#2#0#4'Flat'#9
-  +#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goH'
-  +'orzLine'#11'goColSizing'#11'goColMoving'#11'goRowSelect'#14'goSmoothScroll'
-  +#0#8'RowCount'#2#4#8'TabOrder'#2#0#15'TitleFont.Style'#11#6'fsBold'#0#14'Use'
-  +'XORFeatures'#9#0#0#7'TBitBtn'#6'bbEdit'#4'Left'#2#14#6'Height'#2#30#3'Top'#3
-  +'V'#1#5'Width'#2'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#4'Edi'
-  +'t'#5'Color'#4#219#242#247#0#7'OnClick'#7#11'bbEditClick'#8'TabOrder'#2#1#0#0
-  +#7'TBitBtn'#5'bbNew'#4'Left'#2'h'#6'Height'#2#30#3'Top'#3'V'#1#5'Width'#2'K'
-  +#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#3'New'#5'Color'#4#219#242
-  +#247#0#7'OnClick'#7#10'bbNewClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#6'edDrop'#4
-  +'Left'#3#240#0#6'Height'#2#30#3'Top'#3'V'#1#5'Width'#2'K'#7'Anchors'#11#6'ak'
-  +'Left'#8'akBottom'#0#7'Caption'#6#4'Drop'#5'Color'#4#219#242#247#0#4'Kind'#7
-  +#8'bkIgnore'#7'OnClick'#7#11'edDropClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#9'b'
-  +'bRefresh'#4'Left'#3#160#2#6'Height'#2#30#3'Top'#3'V'#1#5'Width'#2'^'#7'Anch'
-  +'ors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#7'Refresh'#5'Color'#4#219#242
-  +#247#0#4'Kind'#7#7'bkRetry'#7'OnClick'#7#14'bbRefreshClick'#8'TabOrder'#2#4#0
-  +#0#0#9'TTabSheet'#9'tsIndices'#7'Caption'#6#7'Indices'#12'ClientHeight'#3'|'
-  +#1#11'ClientWidth'#3#8#3#10'ImageIndex'#2#2#0#7'TBitBtn'#16'bbRefreshIndices'
-  +#4'Left'#3#134#2#6'Height'#2#30#3'Top'#2#3#5'Width'#2'X'#7'Anchors'#11#5'akT'
-  +'op'#7'akRight'#0#7'Caption'#6#7'Refresh'#5'Color'#4#219#242#247#0#4'Kind'#7
-  +#7'bkRetry'#7'OnClick'#7#21'bbRefreshIndicesClick'#8'TabOrder'#2#0#0#0#11'TS'
-  +'tringGrid'#9'sgIndices'#4'Left'#2#255#6'Height'#3#142#0#3'Top'#2#254#5'Widt'
-  +'h'#3'}'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Columns'#14#1#13
-  +'Title.Caption'#6#10'Index Name'#18'Title.PrefixOption'#7#6'poNone'#5'Width'
-  +#3#140#0#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#6'U'
-  +'nique'#18'Title.PrefixOption'#7#6'poNone'#0#1#11'ButtonStyle'#7#11'cbsPickL'
-  +'ist'#16'PickList.Strings'#1#6#3'Asc'#6#4'Desc'#0#13'Title.Caption'#6#4'Sort'
-  +#18'Title.PrefixOption'#7#6'poNone'#0#1#13'Title.Caption'#6#9'On Fields'#18
+  +#12'PageControl1'#4'Left'#2#0#6'Height'#3#155#1#3'Top'#2#0#5'Width'#3#240#2
+  +#10'ActivePage'#7#8'tsFields'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8
+  +'akBottom'#0#6'Images'#7#10'ImageList1'#8'TabIndex'#2#0#8'TabOrder'#2#0#0#9
+  +'TTabSheet'#8'tsFields'#7'Caption'#6#6'Fields'#12'ClientHeight'#3'|'#1#11'Cl'
+  +'ientWidth'#3#236#2#0#11'TStringGrid'#8'sgFields'#4'Left'#2#0#6'Height'#3'Q'
+  +#1#3'Top'#2#0#5'Width'#3#236#2#5'Align'#7#5'alTop'#7'Anchors'#11#5'akTop'#6
+  +'akLeft'#7'akRight'#8'akBottom'#0#8'ColCount'#2#7#7'Columns'#14#1#11'ButtonS'
+  +'tyle'#7#17'cbsCheckboxColumn'#5'Color'#4#234#219#219#0#7'MaxSize'#2'2'#8'Re'
+  +'adOnly'#9#13'Title.Caption'#6#5'P-Key'#16'Title.Font.Color'#4#229'TT'#0#17
+  +'Title.Font.Height'#2#245#16'Title.Font.Style'#11#6'fsBold'#0#18'Title.Prefi'
+  +'xOption'#7#6'poNone'#5'Width'#2'2'#0#1#13'Title.Caption'#6#10'Field Name'#18
+  +'Title.PrefixOption'#7#6'poNone'#5'Width'#3#130#0#0#1#13'Title.Caption'#6#9
+  +'Data Type'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'x'#0#1#13'Title.Ca'
+  +'ption'#6#4'Size'#16'Title.Font.Color'#4#21'-'#254#0#16'Title.Font.Style'#11
+  +#6'fsBold'#0#18'Title.PrefixOption'#7#6'poNone'#0#1#11'ButtonStyle'#7#17'cbs'
+  +'CheckboxColumn'#13'Title.Caption'#6#10'Allow Null'#18'Title.PrefixOption'#7
+  +#6'poNone'#5'Width'#2'Z'#0#1#13'Title.Caption'#6#13'Default Value'#18'Title.'
+  +'PrefixOption'#7#6'poNone'#5'Width'#2'x'#0#1#13'Title.Caption'#6#11'Descript'
+  +'ion'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#3#200#0#0#0#10'FixedColor'
+  +#4#207#218#221#0#9'FixedCols'#2#0#7'Options'#11#15'goFixedVertLine'#15'goFix'
+  +'edHorzLine'#10'goVertLine'#10'goHorzLine'#11'goColSizing'#11'goColMoving'#11
+  +'goRowSelect'#14'goSmoothScroll'#0#8'RowCount'#2#4#8'TabOrder'#2#0#15'TitleF'
+  +'ont.Style'#11#6'fsBold'#0#14'UseXORFeatures'#9#0#0#7'TBitBtn'#6'bbEdit'#4'L'
+  +'eft'#2#14#6'Height'#2#30#3'Top'#3'V'#1#5'Width'#2'K'#7'Anchors'#11#6'akLeft'
+  +#8'akBottom'#0#7'Caption'#6#4'Edit'#5'Color'#4#219#242#247#0#7'OnClick'#7#11
+  +'bbEditClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#5'bbNew'#4'Left'#2'h'#6'Height'
+  +#2#30#3'Top'#3'V'#1#5'Width'#2'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Ca'
+  +'ption'#6#3'New'#5'Color'#4#219#242#247#0#7'OnClick'#7#10'bbNewClick'#8'TabO'
+  +'rder'#2#2#0#0#7'TBitBtn'#6'edDrop'#4'Left'#3#240#0#6'Height'#2#30#3'Top'#3
+  +'V'#1#5'Width'#2'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#4'Dro'
+  +'p'#5'Color'#4#219#242#247#0#4'Kind'#7#8'bkIgnore'#7'OnClick'#7#11'edDropCli'
+  +'ck'#8'TabOrder'#2#3#0#0#7'TBitBtn'#9'bbRefresh'#4'Left'#3#132#2#6'Height'#2
+  +#30#3'Top'#3'V'#1#5'Width'#2'^'#7'Anchors'#11#7'akRight'#8'akBottom'#0#7'Cap'
+  +'tion'#6#7'Refresh'#5'Color'#4#219#242#247#0#4'Kind'#7#7'bkRetry'#7'OnClick'
+  +#7#14'bbRefreshClick'#8'TabOrder'#2#4#0#0#0#9'TTabSheet'#9'tsIndices'#7'Capt'
+  +'ion'#6#7'Indices'#12'ClientHeight'#3'|'#1#11'ClientWidth'#3#236#2#10'ImageI'
+  +'ndex'#2#2#0#7'TBitBtn'#16'bbRefreshIndices'#4'Left'#3'j'#2#6'Height'#2#30#3
+  +'Top'#2#3#5'Width'#2'X'#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#7'R'
+  +'efresh'#5'Color'#4#219#242#247#0#4'Kind'#7#7'bkRetry'#7'OnClick'#7#21'bbRef'
+  +'reshIndicesClick'#8'TabOrder'#2#0#0#0#11'TStringGrid'#9'sgIndices'#4'Left'#2
+  +#255#6'Height'#3#142#0#3'Top'#2#254#5'Width'#3'a'#2#7'Anchors'#11#5'akTop'#6
+  +'akLeft'#7'akRight'#0#7'Columns'#14#1#13'Title.Caption'#6#10'Index Name'#18
   +'Title.PrefixOption'#7#6'poNone'#5'Width'#3#140#0#0#1#11'ButtonStyle'#7#17'c'
-  +'bsCheckboxColumn'#8'ReadOnly'#9#13'Title.Caption'#6#11'Primary Key'#11'Titl'
-  +'e.Color'#4#244#244#190#0#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'Z'#0
-  +#0#10'FixedColor'#4#207#218#221#0#9'FixedCols'#2#0#7'Options'#11#15'goFixedV'
-  +'ertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#13'goRangeSelect'
-  +#11'goColSizing'#11'goRowSelect'#14'goSmoothScroll'#0#8'TabOrder'#2#1#0#0#7
-  +'TBitBtn'#6'bbDrop'#4'Left'#3#134#2#6'Height'#2#30#3'Top'#2'3'#5'Width'#2'X'
-  +#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#4'Drop'#5'Color'#4#219#242
-  +#247#0#7'OnClick'#7#11'bbDropClick'#8'TabOrder'#2#2#0#0#9'TGroupBox'#9'Group'
-  +'Box1'#4'Left'#2#254#6'Height'#3#236#0#3'Top'#3#139#0#5'Width'#3':'#2#7'Anch'
-  +'ors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#6'Manage'
-  +#12'ClientHeight'#3#217#0#11'ClientWidth'#3'6'#2#8'TabOrder'#2#3#0#6'TLabel'
-  +#6'Label2'#4'Left'#2#6#6'Height'#2#18#3'Top'#2#14#5'Width'#3#174#0#7'Caption'
-  ,#6#26'Create new index on fields'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4
-  +'Left'#3#254#0#6'Height'#2#18#3'Top'#2''''#5'Width'#2'o'#7'Caption'#6#14'New'
-  +' index name'#11'ParentColor'#8#0#0#13'TCheckListBox'#9'clbFields'#4'Left'#2
-  +#6#6'Height'#3#152#0#3'Top'#2'/'#5'Width'#3#232#0#10'ItemHeight'#2#0#8'TabOr'
-  +'der'#2#0#8'TopIndex'#2#255#0#0#9'TCheckBox'#8'cxUnique'#4'Left'#3#254#0#6'H'
-  +'eight'#2#22#3'Top'#2'_'#5'Width'#2'F'#7'Caption'#6#6'Unique'#8'TabOrder'#2#1
-  +#0#0#7'TBitBtn'#13'bbCreateIndex'#4'Left'#3#254#0#6'Height'#2#30#3'Top'#3#167
-  +#0#5'Width'#2'|'#7'Caption'#6#12'Create Index'#5'Color'#4#219#242#247#0#7'De'
-  +'fault'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#7'OnClick'#7#18'bbCreateInde'
-  +'xClick'#8'TabOrder'#2#2#0#0#5'TEdit'#11'edIndexName'#4'Left'#3#254#0#6'Heig'
-  +'ht'#2#27#3'Top'#2'?'#5'Width'#2'x'#8'TabOrder'#2#3#0#0#9'TComboBox'#10'cbSo'
-  +'rtType'#4'Left'#3#254#0#6'Height'#2#31#3'Top'#2#127#5'Width'#2'x'#12'AutoDr'
-  +'opDown'#9#10'ItemHeight'#2#0#9'ItemIndex'#2#0#13'Items.Strings'#1#6#9'Ascen'
-  +'ding'#6#10'Descending'#0#11'ParentColor'#9#5'Style'#7#14'csDropDownList'#8
-  +'TabOrder'#2#4#4'Text'#6#9'Ascending'#0#0#9'TComboBox'#11'cbIndexType'#4'Lef'
-  +'t'#3#254#0#6'Height'#2#31#3'Top'#2#1#5'Width'#3#148#0#5'Color'#4#219#242#247
-  +#0#10'ItemHeight'#2#0#9'ItemIndex'#2#1#13'Items.Strings'#1#6#11'Primary Key'
-  +#6#15'Secondary Index'#0#8'OnChange'#7#17'cbIndexTypeChange'#5'Style'#7#14'c'
-  +'sDropDownList'#8'TabOrder'#2#5#4'Text'#6#15'Secondary Index'#0#0#0#0#9'TTab'
-  +'Sheet'#13'tsConstraints'#7'Caption'#6#11'Constraints'#12'ClientHeight'#3'|'
-  +#1#11'ClientWidth'#3#8#3#10'ImageIndex'#2#3#0#7'TBitBtn'#19'bbRefreshConstra'
-  +'int'#4'Left'#3#136#2#6'Height'#2#30#3'Top'#3'W'#1#5'Width'#2'c'#7'Anchors'
-  +#11#7'akRight'#8'akBottom'#0#7'Caption'#6#7'Refresh'#5'Color'#4#219#242#247#0
-  +#4'Kind'#7#7'bkRetry'#7'OnClick'#7#24'bbRefreshConstraintClick'#8'TabOrder'#2
-  +#0#0#0#11'TStringGrid'#13'sgConstraints'#4'Left'#2#255#6'Height'#3'M'#1#3'To'
-  +'p'#2#255#5'Width'#3#248#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akB'
-  +'ottom'#0#8'ColCount'#2#7#7'Columns'#14#1#13'Title.Caption'#6#15'Constraint '
-  +'Name'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'x'#0#1#13'Title.Caption'
-  +#6#8'Key name'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'd'#0#1#13'Title'
-  +'.Caption'#6#9'On Fields'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'x'#0
-  +#1#13'Title.Caption'#6#13'Foreign Table'#18'Title.PrefixOption'#7#6'poNone'#5
-  +'Width'#2'd'#0#1#13'Title.Caption'#6#11'Foriegn Key'#18'Title.PrefixOption'#7
-  +#6'poNone'#5'Width'#2'd'#0#1#13'Title.Caption'#6#11'Update Rule'#18'Title.Pr'
-  +'efixOption'#7#6'poNone'#5'Width'#2'd'#0#1#13'Title.Caption'#6#11'Delete Rul'
-  +'e'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'd'#0#0#10'FixedColor'#4#207
-  +#218#221#0#9'FixedCols'#2#0#7'Options'#11#15'goFixedVertLine'#15'goFixedHorz'
-  +'Line'#10'goVertLine'#10'goHorzLine'#13'goRangeSelect'#11'goColSizing'#11'go'
-  +'RowSelect'#14'goSmoothScroll'#0#8'RowCount'#2#2#8'TabOrder'#2#1#0#0#7'TBitB'
-  +'tn'#15'bbNewConstraint'#4'Left'#2#6#6'Height'#2#30#3'Top'#3'W'#1#5'Width'#2
-  +'w'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#14'New Constraint'#5
-  +'Color'#4#219#242#247#0#7'OnClick'#7#20'bbNewConstraintClick'#8'TabOrder'#2#2
-  +#0#0#7'TBitBtn'#16'bbDropConstraint'#4'Left'#3#144#0#6'Height'#2#30#3'Top'#3
-  +'W'#1#5'Width'#2'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#4'Dro'
-  +'p'#5'Color'#4#219#242#247#0#4'Kind'#7#8'bkIgnore'#7'OnClick'#7#21'bbDropCon'
-  +'straintClick'#8'TabOrder'#2#3#0#0#0#9'TTabSheet'#10'tsTriggers'#7'Caption'#6
-  +#8'Triggers'#12'ClientHeight'#3'|'#1#11'ClientWidth'#3#8#3#10'ImageIndex'#2#1
-  +#0#11'TStringGrid'#10'sgTriggers'#4'Left'#2#0#6'Height'#3'D'#1#3'Top'#2#255#5
-  +'Width'#3#246#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8
-  +'ColCount'#2#2#7'Columns'#14#1#13'Title.Caption'#6#12'Trigger Name'#18'Title'
-  +'.PrefixOption'#7#6'poNone'#5'Width'#3#160#0#0#1#11'ButtonStyle'#7#17'cbsChe'
-  +'ckboxColumn'#13'Title.Caption'#6#6'Active'#18'Title.PrefixOption'#7#6'poNon'
-  +'e'#5'Width'#2'd'#0#0#10'FixedColor'#4#207#218#221#0#9'FixedCols'#2#0#7'Opti'
-  +'ons'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLin'
-  +'e'#13'goRangeSelect'#11'goColSizing'#11'goRowSelect'#14'goSmoothScroll'#0#8
-  +'RowCount'#2#2#8'TabOrder'#2#0#0#0#7'TBitBtn'#17'bbRefreshTriggers'#4'Left'#3
-  +#150#2#6'Height'#2#30#3'Top'#3'Q'#1#5'Width'#2'W'#7'Anchors'#11#7'akRight'#8
-  +'akBottom'#0#7'Caption'#6#7'Refresh'#5'Color'#4#219#242#247#0#4'Kind'#7#7'bk'
-  +'Retry'#7'OnClick'#7#22'bbRefreshTriggersClick'#8'TabOrder'#2#1#0#0#7'TBitBt'
-  +'n'#12'bbNewTrigger'#4'Left'#2#7#6'Height'#2#30#3'Top'#3'O'#1#5'Width'#2'W'#7
-  +'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#7'Add New'#5'Color'#4#219
-  +#242#247#0#7'OnClick'#7#17'bbNewTriggerClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'
-  +#13'bbEditTrigger'#4'Left'#2'n'#6'Height'#2#30#3'Top'#3'O'#1#5'Width'#2'K'#7
-  +'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#4'Edit'#5'Color'#4#219#242
-  +#247#0#7'OnClick'#7#18'bbEditTriggerClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#13
-  ,'bbDropTrigger'#4'Left'#3#200#0#6'Height'#2#30#3'Top'#3'O'#1#5'Width'#2'K'#7
-  +'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#4'Drop'#5'Color'#4#219#242
-  +#247#0#4'Kind'#7#8'bkIgnore'#7'OnClick'#7#18'bbDropTriggerClick'#8'TabOrder'
-  +#2#4#0#0#0#9'TTabSheet'#13'tsPermissions'#7'Caption'#6#11'Permissions'#12'Cl'
-  +'ientHeight'#3'|'#1#11'ClientWidth'#3#8#3#10'ImageIndex'#2#4#0#11'TStringGri'
-  +'d'#13'sgPermissions'#4'Left'#2#0#6'Height'#3'D'#1#3'Top'#2#0#5'Width'#3#246
-  +#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8'ColCount'#2#12
-  +#7'Columns'#14#1#13'Title.Caption'#6#9'User/Role'#18'Title.PrefixOption'#7#6
-  +'poNone'#5'Width'#3#160#0#0#1#13'Title.Caption'#6#4'Type'#18'Title.PrefixOpt'
-  +'ion'#7#6'poNone'#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#8'ReadOnly'#9
-  +#13'Title.Caption'#6#6'Select'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2
-  +'d'#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#6'Insert'
-  +#18'Title.PrefixOption'#7#6'poNone'#0#1#11'ButtonStyle'#7#17'cbsCheckboxColu'
-  +'mn'#13'Title.Caption'#6#6'Update'#18'Title.PrefixOption'#7#6'poNone'#0#1#11
-  +'ButtonStyle'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#6'Delete'#18'Title'
-  +'.PrefixOption'#7#6'poNone'#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13'T'
-  +'itle.Caption'#6#10'References'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2
-  +'P'#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#12'Grant'
-  +' Select'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'Z'#0#1#11'ButtonStyl'
-  +'e'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#12'Grant Insert'#18'Title.Pr'
-  +'efixOption'#7#6'poNone'#5'Width'#2'Z'#0#1#11'ButtonStyle'#7#17'cbsCheckboxC'
-  +'olumn'#13'Title.Caption'#6#12'Grant Update'#18'Title.PrefixOption'#7#6'poNo'
-  +'ne'#5'Width'#2'd'#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13'Title.Capt'
-  +'ion'#6#12'Grant Delete'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'Z'#0#1
-  +#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#16'Grant Refere'
-  +'nces'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'n'#0#0#10'FixedColor'#4
-  +#207#218#221#0#9'FixedCols'#2#0#7'Options'#11#15'goFixedVertLine'#15'goFixed'
-  +'HorzLine'#10'goVertLine'#10'goHorzLine'#13'goRangeSelect'#11'goColSizing'#11
-  +'goRowSelect'#14'goSmoothScroll'#0#8'RowCount'#2#2#8'TabOrder'#2#0#0#0#7'TBi'
-  +'tBtn'#16'edEditPermission'#4'Left'#2#6#6'Height'#2#30#3'Top'#3'S'#1#5'Width'
-  +#2'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#4'Edit'#5'Color'#4
-  +#219#242#247#0#7'OnClick'#7#21'edEditPermissionClick'#8'TabOrder'#2#1#0#0#7
-  +'TBitBtn'#20'bbRefreshPermissions'#4'Left'#3#150#2#6'Height'#2#30#3'Top'#3'S'
-  +#1#5'Width'#2'W'#7'Anchors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#7'Refre'
-  +'sh'#5'Color'#4#219#242#247#0#4'Kind'#7#7'bkRetry'#7'OnClick'#7#25'bbRefresh'
-  +'PermissionsClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#9'bbAddUser'#4'Left'#2'Z'#6
-  +'Height'#2#30#3'Top'#3'S'#1#5'Width'#2'}'#7'Anchors'#11#6'akLeft'#8'akBottom'
-  +#0#7'Caption'#6#15'Add User / Role'#5'Color'#4#219#242#247#0#7'OnClick'#7#14
-  +'bbAddUserClick'#8'TabOrder'#2#3#0#0#0#0#10'TImageList'#10'ImageList1'#12'Dr'
-  +'awingStyle'#7#7'dsFocus'#4'left'#3#208#1#3'top'#3#240#0#6'Bitmap'#10#14#20#0
-  +#0'Li'#5#0#0#0#16#0#0#0#16#0#0#0#239#252#254#255#244#254#254#255#255#253#252
-  +#255#255#253#252#255#255#250#255#255#255#247#254#255#255#252#255#255#255#253
-  +#253#255#255#253#248#255#255#254#244#255#249#254#245#255#252#254#254#255#255
-  +#248#255#255#255#246#255#255#249#241#252#255#255#251#255#255#244#255#255#255
-  +#248#255#255#255#239#243#238#255#255#255#252#255#255#250#252#255#249#243#248
-  +#255#255#253#255#255#255#255#255#255#250#253#244#255#253#255#247#255#248#255
-  +#246#255#253#255#254#255#247#243#255#255#251#244#255#255#255#248#255#255#252
-  +#246#251#255#245#250#253#255#239#247#246#255#243#255#245#255#248#255#247#255
-  +#251#255#252#255#255#255#255#255#251#247#253#255#246#246#246#255#247#255#246
-  +#255#237#253#235#255#248#255#248#255#244#251#246#255#243#248#249#255#251#254
-  +#255#255#253#249#255#255#254#246#253#255#249#253#254#255#246#255#251#255#236
-  +#255#241#255#220#254#224#255#234#255#237#255#236#250#239#255#255#254#255#255
-  +#249#255#250#255#231#255#236#255#220#255#226#255#238#255#242#255#238#255#242
-  +#255#237#255#243#255#236#254#241#255#252#254#254#255#253#249#255#255#242#249
-  +#244#255#232#254#235#255#144#198#155#255#140#203#153#255#144#191#152#255#160
-  +#190#165#255#234#245#237#255#238#255#243#255#137#191#148#255#154#216#168#255
-  +#145#183#155#255#184#216#191#255#190#235#196#255#208#248#213#255#244#255#248
-  +#255#238#243#242#255#253#255#251#255#226#252#228#255#138#206#151#255#187#255
-  +#202#255#193#254#204#255#224#255#231#255#240#251#243#255#238#255#244#255#128
-  +#197#146#255#187#255#206#255#202#247#214#255#206#247#215#255#162#223#167#255
-  +#183#239#188#255#227#249#231#255#251#255#255#255#255#251#248#255#233#254#232
-  +#255#128#199#142#255#179#255#197#255#197#255#209#255#221#255#226#255#251#255
-  +#252#255#229#247#234#255'v'#193#139#255#186#255#209#255#223#255#238#255#214
-  +#255#223#255#196#255#201#255#160#219#161#255#235#254#237#255#253#252#255#255
-  ,#255#246#250#255#248#255#245#255#13'Q'#26#255#0'U'#17#255#12'L'#24#255#30'@"'
-  +#255#255#254#255#255#243#253#247#255#14'U#'#255#169#250#193#255#224#255#238
-  +#255#226#255#232#255#200#255#203#255#24'R'#24#255#239#251#239#255#255#250#255
-  +#255#255#239#254#255#255#255#251#255#7'@'#19#255#187#255#205#255#220#255#230
-  +#255#226#248#229#255#255#248#255#255#254#253#255#255#7'C'#26#255#197#255#218
-  +#255#228#255#239#255#227#252#232#255#200#254#201#255#27'I'#26#255#255#255#254
-  +#255#255#238#255#255#255#244#255#255#255#255#251#255#30'U('#255#191#255#206
-  +#255#209#255#219#255#230#252#233#255#255#245#255#255#255#254#255#255#28'V-'
-  +#255#185#254#204#255#229#255#239#255#225#251#228#255#21'K'#22#255#28'J'#27
-  +#255#252#255#251#255#255#249#255#255#255#255#254#255#235#251#233#255#13'H'#21
-  +#255#196#255#208#255#214#255#221#255#236#255#238#255#251#255#250#255#233#250
-  +#237#255#6'H'#21#255#16'Z '#255#25'D#'#255#29'E"'#255'h'#165'k'#255#210#255
-  +#211#255#243#255#244#255#248#251#249#255#243#255#242#255#237#255#240#255#197
-  +#255#203#255#197#255#205#255#208#255#214#255#229#255#232#255#244#255#245#255
-  +#239#255#241#255#203#255#213#255#194#255#205#255#212#255#219#255#218#255#224
-  +#255#214#255#219#255#209#255#212#255#230#255#232#255#240#255#240#255#236#255
-  +#240#255#219#255#222#255#209#255#214#255#209#255#214#255#205#254#208#255#224
-  +#255#228#255#216#243#217#255#220#254#223#255#206#255#209#255#198#255#203#255
-  +#209#255#214#255#209#255#214#255#205#255#211#255#209#255#216#255#214#252#216
-  +#255#230#255#231#255#10'%'#17#255#31'>#'#255#13'2'#12#255#8'-'#5#255#24'7'#24
-  +#255#18'-'#19#255':O9'#255#13')'#12#255#8'1'#4#255#12';'#10#255#0'('#0#255#3
-  +','#6#255#18':'#23#255#0'#'#5#255'BaD'#255#18'0'#19#255#248#255#254#255#244
-  +#251#246#255#239#243#232#255#255#255#248#255#248#245#241#255#255#255#254#255
-  +#241#242#240#255#252#255#248#255#244#253#233#255#241#255#229#255#248#255#240
-  +#255#246#255#244#255#236#243#238#255#240#246#245#255#247#255#246#255#246#255
-  +#244#255#249#249#255#0#255#253#255#255#255#252#254#255#255#250#253#255#255
-  +#244#255#255#255#250#255#255#255#251#255#255#255#252#253#255#255#255#248#255
-  +#252#251#237#255#255#255#244#255#248#250#244#255#255#247#255#255#255#251#255
-  +#255#247#242#244#255#255#254#250#255#243#255#251#255#244#255#251#255#249#255
-  +#253#255#255#253#253#255#255#250#254#255#255#250#255#255#241#255#255#255#236
-  +#255#255#255#248#251#255#255#245#246#255#255#246#252#255#255#229#243#255#255
-  +#236#254#255#255#239#253#255#255#251#251#255#255#255#250#255#255#246#255#252
-  +#255#245#255#249#255#250#255#253#255#255#255#254#255#255#252#255#255#255#251
-  +#255#255#247#252#255#255#243#255#255#255#251#254#255#255#247#246#255#255#249
-  +#252#255#255#250#254#255#255#243#254#255#255#239#248#252#255#245#245#251#255
-  +#255#253#255#255#255#255#254#255#253#254#252#255#255#255#254#255#255#254#254
-  +#255#255#251#252#255#255#251#252#255#255#252#250#255#255#255#251#255#251#251
-  +#245#255#255#255#251#255#255#254#247#255#255#250#244#255#255#255#249#255#255
-  +#255#249#255#255#255#249#255#251#255#248#255#255#248#250#255#255#250#252#255
-  +#255#250#251#255#255#244#244#255#255#241#243#255#255#246#247#255#255#249#245
-  +#255#255#251#243#255#255#255#245#255#253#255#243#255#255#255#244#255#255#255
-  +#247#255#255#245#237#255#254#246#239#255#255#255#251#255#248#252#246#255#144
-  +#30'%'#255#137#21#26#255#141#24#27#255#154#29#31#255#168#28#29#255#166#22#21
-  +#255#155#22#19#255'}&'#28#255#255#255#238#255#241#255#244#255#253#255#245#255
-  +#247#244#239#255#255#254#255#255#255#252#255#255#255#249#255#0#255#243#255
-  +#255#140#26#26#255#255#231#233#255#255#237#241#255#171#14#18#255#175#13#18
-  +#255#255#237#238#255#255#231#229#255'~'#30#24#255#255#254#242#255#255#252#240
-  +#255#255#252#248#255#255#247#248#255#255#252#255#255#255#249#255#0#254#244
-  +#255#255#255#250#255#255#255#222#207#255#255#250#240#255#255#234#234#255#164
-  +#20#25#255#157#21#27#255#255#234#238#255#255#247#247#255#255#215#215#255'w'
-  +#26'!'#255#134#21#31#255#155#23'$'#255#255#164#174#255'^(('#255#255#255#248
-  +#255#255#255#248#255#245#253#242#255#255#255#244#255#255#250#241#255#255#241
-  +#245#255#158#23'!'#255#142#25'"'#255#255#245#248#255#255#249#246#255#255#250
-  +#251#255#255#239#251#255#167#13' '#255#190#20''''#255#255#148#161#255#255#211
-  +#210#255#255#254#242#255#255#255#244#255#249#255#243#255#255#255#254#255#255
-  +#250#254#255#255#239#252#255#142#13#28#255#131#30'&'#255#255#248#248#255#255
-  +#254#246#255#255#254#247#255#255#243#247#255#153#20#30#255#168#17' '#255#255
-  +#225#236#255#255#251#249#255#254#254#248#255#255#255#252#255#253#254#250#255
-  +#246#248#248#255#255#250#254#255#255#236#248#255#158#19'!'#255#137#26#30#255
-  +#255#244#237#255#255#255#240#255#255#255#241#255#255#239#235#255#164#27#31
-  +#255#162#14#24#255#255#238#247#255#255#251#251#255#252#253#251#255#255#254
+  +'bsCheckboxColumn'#13'Title.Caption'#6#6'Unique'#18'Title.PrefixOption'#7#6
+  +'poNone'#0#1#11'ButtonStyle'#7#11'cbsPickList'#16'PickList.Strings'#1#6#3'As'
+  +'c'#6#4'Desc'#0#13'Title.Caption'#6#4'Sort'#18'Title.PrefixOption'#7#6'poNon'
+  +'e'#0#1#13'Title.Caption'#6#9'On Fields'#18'Title.PrefixOption'#7#6'poNone'#5
+  +'Width'#3#140#0#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#8'ReadOnly'#9#13
+  +'Title.Caption'#6#11'Primary Key'#11'Title.Color'#4#244#244#190#0#18'Title.P'
+  +'refixOption'#7#6'poNone'#5'Width'#2'Z'#0#0#10'FixedColor'#4#207#218#221#0#9
+  +'FixedCols'#2#0#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goV'
+  +'ertLine'#10'goHorzLine'#13'goRangeSelect'#11'goColSizing'#11'goRowSelect'#14
+  +'goSmoothScroll'#0#8'TabOrder'#2#1#0#0#7'TBitBtn'#6'bbDrop'#4'Left'#3'j'#2#6
+  +'Height'#2#30#3'Top'#2'3'#5'Width'#2'X'#7'Anchors'#11#5'akTop'#7'akRight'#0#7
+  +'Caption'#6#4'Drop'#5'Color'#4#219#242#247#0#7'OnClick'#7#11'bbDropClick'#8
+  +'TabOrder'#2#2#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#254#6'Height'#3#236#0
+  +#3'Top'#3#139#0#5'Width'#3#30#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8
+  +'akBottom'#0#7'Caption'#6#6'Manage'#12'ClientHeight'#3#217#0#11'ClientWidth'
+  +#3#26#2#8'TabOrder'#2#3#0#6'TLabel'#6'Label2'#4'Left'#2#6#6'Height'#2#18#3'T'
+  ,'op'#2#14#5'Width'#3#176#0#7'Caption'#6#26'Create new index on fields'#11'Pa'
+  +'rentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#254#0#6'Height'#2#18#3'Top'#2
+  +''''#5'Width'#2'o'#7'Caption'#6#14'New index name'#11'ParentColor'#8#0#0#13
+  +'TCheckListBox'#9'clbFields'#4'Left'#2#6#6'Height'#3#152#0#3'Top'#2'/'#5'Wid'
+  +'th'#3#232#0#10'ItemHeight'#2#0#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#9'TChe'
+  +'ckBox'#8'cxUnique'#4'Left'#3#254#0#6'Height'#2#22#3'Top'#2'_'#5'Width'#2'G'
+  +#7'Caption'#6#6'Unique'#8'TabOrder'#2#1#0#0#7'TBitBtn'#13'bbCreateIndex'#4'L'
+  +'eft'#3#254#0#6'Height'#2#30#3'Top'#3#167#0#5'Width'#2'|'#7'Caption'#6#12'Cr'
+  +'eate Index'#5'Color'#4#219#242#247#0#7'Default'#9#4'Kind'#7#4'bkOK'#11'Moda'
+  +'lResult'#2#1#7'OnClick'#7#18'bbCreateIndexClick'#8'TabOrder'#2#2#0#0#5'TEdi'
+  +'t'#11'edIndexName'#4'Left'#3#254#0#6'Height'#2#27#3'Top'#2'?'#5'Width'#2'x'
+  +#8'TabOrder'#2#3#0#0#9'TComboBox'#10'cbSortType'#4'Left'#3#254#0#6'Height'#2
+  +#27#3'Top'#2#127#5'Width'#2'x'#12'AutoDropDown'#9#10'ItemHeight'#2#0#9'ItemI'
+  +'ndex'#2#0#13'Items.Strings'#1#6#9'Ascending'#6#10'Descending'#0#11'ParentCo'
+  +'lor'#9#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#4#4'Text'#6#9'Ascending'
+  +#0#0#9'TComboBox'#11'cbIndexType'#4'Left'#3#254#0#6'Height'#2#27#3'Top'#2#1#5
+  +'Width'#3#148#0#5'Color'#4#219#242#247#0#10'ItemHeight'#2#0#9'ItemIndex'#2#1
+  +#13'Items.Strings'#1#6#11'Primary Key'#6#15'Secondary Index'#0#8'OnChange'#7
+  +#17'cbIndexTypeChange'#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#5#4'Text'
+  +#6#15'Secondary Index'#0#0#0#0#9'TTabSheet'#13'tsConstraints'#7'Caption'#6#11
+  +'Constraints'#12'ClientHeight'#3'|'#1#11'ClientWidth'#3#236#2#10'ImageIndex'
+  +#2#3#0#7'TBitBtn'#19'bbRefreshConstraint'#4'Left'#3'l'#2#6'Height'#2#30#3'To'
+  +'p'#3'W'#1#5'Width'#2'c'#7'Anchors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6
+  +#7'Refresh'#5'Color'#4#219#242#247#0#4'Kind'#7#7'bkRetry'#7'OnClick'#7#24'bb'
+  +'RefreshConstraintClick'#8'TabOrder'#2#0#0#0#11'TStringGrid'#13'sgConstraint'
+  +'s'#4'Left'#2#255#6'Height'#3'M'#1#3'Top'#2#255#5'Width'#3#220#2#7'Anchors'
+  +#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8'ColCount'#2#7#7'Columns'#14
+  +#1#13'Title.Caption'#6#15'Constraint Name'#18'Title.PrefixOption'#7#6'poNone'
+  +#5'Width'#2'x'#0#1#13'Title.Caption'#6#8'Key name'#18'Title.PrefixOption'#7#6
+  +'poNone'#5'Width'#2'd'#0#1#13'Title.Caption'#6#9'On Fields'#18'Title.PrefixO'
+  +'ption'#7#6'poNone'#5'Width'#2'x'#0#1#13'Title.Caption'#6#13'Foreign Table'
+  +#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'd'#0#1#13'Title.Caption'#6#11
+  +'Foriegn Key'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'd'#0#1#13'Title.'
+  +'Caption'#6#11'Update Rule'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'd'
+  +#0#1#13'Title.Caption'#6#11'Delete Rule'#18'Title.PrefixOption'#7#6'poNone'#5
+  +'Width'#2'd'#0#0#10'FixedColor'#4#207#218#221#0#9'FixedCols'#2#0#7'Options'
+  +#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#13
+  +'goRangeSelect'#11'goColSizing'#11'goRowSelect'#14'goSmoothScroll'#0#8'RowCo'
+  +'unt'#2#2#8'TabOrder'#2#1#0#0#7'TBitBtn'#15'bbNewConstraint'#4'Left'#2#6#6'H'
+  +'eight'#2#30#3'Top'#3'W'#1#5'Width'#2'w'#7'Anchors'#11#6'akLeft'#8'akBottom'
+  +#0#7'Caption'#6#14'New Constraint'#5'Color'#4#219#242#247#0#7'OnClick'#7#20
+  +'bbNewConstraintClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#16'bbDropConstraint'#4
+  +'Left'#3#144#0#6'Height'#2#30#3'Top'#3'W'#1#5'Width'#2'K'#7'Anchors'#11#6'ak'
+  +'Left'#8'akBottom'#0#7'Caption'#6#4'Drop'#5'Color'#4#219#242#247#0#4'Kind'#7
+  +#8'bkIgnore'#7'OnClick'#7#21'bbDropConstraintClick'#8'TabOrder'#2#3#0#0#0#9
+  +'TTabSheet'#10'tsTriggers'#7'Caption'#6#8'Triggers'#12'ClientHeight'#3'|'#1
+  +#11'ClientWidth'#3#236#2#10'ImageIndex'#2#1#0#11'TStringGrid'#10'sgTriggers'
+  +#4'Left'#2#0#6'Height'#3'D'#1#3'Top'#2#255#5'Width'#3#218#2#7'Anchors'#11#5
+  +'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8'ColCount'#2#2#7'Columns'#14#1#13
+  +'Title.Caption'#6#12'Trigger Name'#18'Title.PrefixOption'#7#6'poNone'#5'Widt'
+  +'h'#3#160#0#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#6
+  +'Active'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'd'#0#0#10'FixedColor'
+  +#4#207#218#221#0#9'FixedCols'#2#0#7'Options'#11#15'goFixedVertLine'#15'goFix'
+  +'edHorzLine'#10'goVertLine'#10'goHorzLine'#13'goRangeSelect'#11'goColSizing'
+  +#11'goRowSelect'#14'goSmoothScroll'#0#8'RowCount'#2#2#8'TabOrder'#2#0#0#0#7
+  +'TBitBtn'#17'bbRefreshTriggers'#4'Left'#3'z'#2#6'Height'#2#30#3'Top'#3'Q'#1#5
+  +'Width'#2'W'#7'Anchors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#7'Refresh'#5
+  +'Color'#4#219#242#247#0#4'Kind'#7#7'bkRetry'#7'OnClick'#7#22'bbRefreshTrigge'
+  +'rsClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#12'bbNewTrigger'#4'Left'#2#7#6'Heig'
+  +'ht'#2#30#3'Top'#3'O'#1#5'Width'#2'W'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7
+  +'Caption'#6#7'Add New'#5'Color'#4#219#242#247#0#7'OnClick'#7#17'bbNewTrigger'
+  +'Click'#8'TabOrder'#2#2#0#0#7'TBitBtn'#13'bbEditTrigger'#4'Left'#2'n'#6'Heig'
+  +'ht'#2#30#3'Top'#3'O'#1#5'Width'#2'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7
+  +'Caption'#6#4'Edit'#5'Color'#4#219#242#247#0#7'OnClick'#7#18'bbEditTriggerCl'
+  ,'ick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#13'bbDropTrigger'#4'Left'#3#200#0#6'Hei'
+  +'ght'#2#30#3'Top'#3'O'#1#5'Width'#2'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0
+  +#7'Caption'#6#4'Drop'#5'Color'#4#219#242#247#0#4'Kind'#7#8'bkIgnore'#7'OnCli'
+  +'ck'#7#18'bbDropTriggerClick'#8'TabOrder'#2#4#0#0#0#9'TTabSheet'#13'tsPermis'
+  +'sions'#7'Caption'#6#11'Permissions'#12'ClientHeight'#3'|'#1#11'ClientWidth'
+  +#3#236#2#10'ImageIndex'#2#4#0#11'TStringGrid'#13'sgPermissions'#4'Left'#2#0#6
+  +'Height'#3'D'#1#3'Top'#2#0#5'Width'#3#218#2#7'Anchors'#11#5'akTop'#6'akLeft'
+  +#7'akRight'#8'akBottom'#0#8'ColCount'#2#12#7'Columns'#14#1#13'Title.Caption'
+  +#6#9'User/Role'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#3#160#0#0#1#13'T'
+  +'itle.Caption'#6#4'Type'#18'Title.PrefixOption'#7#6'poNone'#0#1#11'ButtonSty'
+  +'le'#7#17'cbsCheckboxColumn'#8'ReadOnly'#9#13'Title.Caption'#6#6'Select'#18
+  +'Title.PrefixOption'#7#6'poNone'#5'Width'#2'd'#0#1#11'ButtonStyle'#7#17'cbsC'
+  +'heckboxColumn'#13'Title.Caption'#6#6'Insert'#18'Title.PrefixOption'#7#6'poN'
+  +'one'#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#6'Upda'
+  +'te'#18'Title.PrefixOption'#7#6'poNone'#0#1#11'ButtonStyle'#7#17'cbsCheckbox'
+  +'Column'#13'Title.Caption'#6#6'Delete'#18'Title.PrefixOption'#7#6'poNone'#0#1
+  +#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#10'References'
+  +#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'P'#0#1#11'ButtonStyle'#7#17'c'
+  +'bsCheckboxColumn'#13'Title.Caption'#6#12'Grant Select'#18'Title.PrefixOptio'
+  +'n'#7#6'poNone'#5'Width'#2'Z'#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13
+  +'Title.Caption'#6#12'Grant Insert'#18'Title.PrefixOption'#7#6'poNone'#5'Widt'
+  +'h'#2'Z'#0#1#11'ButtonStyle'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#12
+  +'Grant Update'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'd'#0#1#11'Butto'
+  +'nStyle'#7#17'cbsCheckboxColumn'#13'Title.Caption'#6#12'Grant Delete'#18'Tit'
+  +'le.PrefixOption'#7#6'poNone'#5'Width'#2'Z'#0#1#11'ButtonStyle'#7#17'cbsChec'
+  +'kboxColumn'#13'Title.Caption'#6#16'Grant References'#18'Title.PrefixOption'
+  +#7#6'poNone'#5'Width'#2'n'#0#0#10'FixedColor'#4#207#218#221#0#9'FixedCols'#2
+  +#0#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'g'
+  +'oHorzLine'#13'goRangeSelect'#11'goColSizing'#11'goRowSelect'#14'goSmoothScr'
+  +'oll'#0#8'RowCount'#2#2#8'TabOrder'#2#0#0#0#7'TBitBtn'#16'edEditPermission'#4
+  +'Left'#2#6#6'Height'#2#30#3'Top'#3'S'#1#5'Width'#2'K'#7'Anchors'#11#6'akLeft'
+  +#8'akBottom'#0#7'Caption'#6#4'Edit'#5'Color'#4#219#242#247#0#7'OnClick'#7#21
+  +'edEditPermissionClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#20'bbRefreshPermissio'
+  +'ns'#4'Left'#3'z'#2#6'Height'#2#30#3'Top'#3'S'#1#5'Width'#2'W'#7'Anchors'#11
+  +#7'akRight'#8'akBottom'#0#7'Caption'#6#7'Refresh'#5'Color'#4#219#242#247#0#4
+  +'Kind'#7#7'bkRetry'#7'OnClick'#7#25'bbRefreshPermissionsClick'#8'TabOrder'#2
+  +#2#0#0#7'TBitBtn'#9'bbAddUser'#4'Left'#2'Z'#6'Height'#2#30#3'Top'#3'S'#1#5'W'
+  +'idth'#2'}'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#15'Add User /'
+  +' Role'#5'Color'#4#219#242#247#0#7'OnClick'#7#14'bbAddUserClick'#8'TabOrder'
+  +#2#3#0#0#0#0#7'TBitBtn'#7'bbClose'#4'Left'#3#240#2#6'Height'#2#24#3'Top'#2#0
+  +#5'Width'#2#27#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#4' X  '#5'Co'
+  +'lor'#4#219#242#247#0#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#12'bbCloseC'
+  +'lick'#10'ParentFont'#8#8'TabOrder'#2#1#0#0#10'TImageList'#10'ImageList1'#12
+  +'DrawingStyle'#7#7'dsFocus'#4'left'#3#208#1#3'top'#3#240#0#6'Bitmap'#10#14#20
+  +#0#0'Li'#5#0#0#0#16#0#0#0#16#0#0#0#239#252#254#255#244#254#254#255#255#253
+  +#252#255#255#253#252#255#255#250#255#255#255#247#254#255#255#252#255#255#255
+  +#253#253#255#255#253#248#255#255#254#244#255#249#254#245#255#252#254#254#255
+  +#255#248#255#255#255#246#255#255#249#241#252#255#255#251#255#255#244#255#255
+  +#255#248#255#255#255#239#243#238#255#255#255#252#255#255#250#252#255#249#243
+  +#248#255#255#253#255#255#255#255#255#255#250#253#244#255#253#255#247#255#248
+  +#255#246#255#253#255#254#255#247#243#255#255#251#244#255#255#255#248#255#255
+  +#252#246#251#255#245#250#253#255#239#247#246#255#243#255#245#255#248#255#247
+  +#255#251#255#252#255#255#255#255#255#251#247#253#255#246#246#246#255#247#255
+  +#246#255#237#253#235#255#248#255#248#255#244#251#246#255#243#248#249#255#251
+  +#254#255#255#253#249#255#255#254#246#253#255#249#253#254#255#246#255#251#255
+  +#236#255#241#255#220#254#224#255#234#255#237#255#236#250#239#255#255#254#255
+  +#255#249#255#250#255#231#255#236#255#220#255#226#255#238#255#242#255#238#255
+  +#242#255#237#255#243#255#236#254#241#255#252#254#254#255#253#249#255#255#242
+  +#249#244#255#232#254#235#255#144#198#155#255#140#203#153#255#144#191#152#255
+  +#160#190#165#255#234#245#237#255#238#255#243#255#137#191#148#255#154#216#168
+  +#255#145#183#155#255#184#216#191#255#190#235#196#255#208#248#213#255#244#255
+  +#248#255#238#243#242#255#253#255#251#255#226#252#228#255#138#206#151#255#187
+  +#255#202#255#193#254#204#255#224#255#231#255#240#251#243#255#238#255#244#255
+  +#128#197#146#255#187#255#206#255#202#247#214#255#206#247#215#255#162#223#167
+  ,#255#183#239#188#255#227#249#231#255#251#255#255#255#255#251#248#255#233#254
+  +#232#255#128#199#142#255#179#255#197#255#197#255#209#255#221#255#226#255#251
+  +#255#252#255#229#247#234#255'v'#193#139#255#186#255#209#255#223#255#238#255
+  +#214#255#223#255#196#255#201#255#160#219#161#255#235#254#237#255#253#252#255
+  +#255#255#246#250#255#248#255#245#255#13'Q'#26#255#0'U'#17#255#12'L'#24#255#30
+  +'@"'#255#255#254#255#255#243#253#247#255#14'U#'#255#169#250#193#255#224#255
+  +#238#255#226#255#232#255#200#255#203#255#24'R'#24#255#239#251#239#255#255#250
+  +#255#255#255#239#254#255#255#255#251#255#7'@'#19#255#187#255#205#255#220#255
+  +#230#255#226#248#229#255#255#248#255#255#254#253#255#255#7'C'#26#255#197#255
+  +#218#255#228#255#239#255#227#252#232#255#200#254#201#255#27'I'#26#255#255#255
+  +#254#255#255#238#255#255#255#244#255#255#255#255#251#255#30'U('#255#191#255
+  +#206#255#209#255#219#255#230#252#233#255#255#245#255#255#255#254#255#255#28
+  +'V-'#255#185#254#204#255#229#255#239#255#225#251#228#255#21'K'#22#255#28'J'
+  +#27#255#252#255#251#255#255#249#255#255#255#255#254#255#235#251#233#255#13'H'
+  +#21#255#196#255#208#255#214#255#221#255#236#255#238#255#251#255#250#255#233
+  +#250#237#255#6'H'#21#255#16'Z '#255#25'D#'#255#29'E"'#255'h'#165'k'#255#210
+  +#255#211#255#243#255#244#255#248#251#249#255#243#255#242#255#237#255#240#255
+  +#197#255#203#255#197#255#205#255#208#255#214#255#229#255#232#255#244#255#245
+  +#255#239#255#241#255#203#255#213#255#194#255#205#255#212#255#219#255#218#255
+  +#224#255#214#255#219#255#209#255#212#255#230#255#232#255#240#255#240#255#236
+  +#255#240#255#219#255#222#255#209#255#214#255#209#255#214#255#205#254#208#255
+  +#224#255#228#255#216#243#217#255#220#254#223#255#206#255#209#255#198#255#203
+  +#255#209#255#214#255#209#255#214#255#205#255#211#255#209#255#216#255#214#252
+  +#216#255#230#255#231#255#10'%'#17#255#31'>#'#255#13'2'#12#255#8'-'#5#255#24
+  +'7'#24#255#18'-'#19#255':O9'#255#13')'#12#255#8'1'#4#255#12';'#10#255#0'('#0
+  +#255#3','#6#255#18':'#23#255#0'#'#5#255'BaD'#255#18'0'#19#255#248#255#254#255
+  +#244#251#246#255#239#243#232#255#255#255#248#255#248#245#241#255#255#255#254
+  +#255#241#242#240#255#252#255#248#255#244#253#233#255#241#255#229#255#248#255
+  +#240#255#246#255#244#255#236#243#238#255#240#246#245#255#247#255#246#255#246
+  +#255#244#255#249#249#255#0#255#253#255#255#255#252#254#255#255#250#253#255
+  +#255#244#255#255#255#250#255#255#255#251#255#255#255#252#253#255#255#255#248
+  +#255#252#251#237#255#255#255#244#255#248#250#244#255#255#247#255#255#255#251
+  +#255#255#247#242#244#255#255#254#250#255#243#255#251#255#244#255#251#255#249
+  +#255#253#255#255#253#253#255#255#250#254#255#255#250#255#255#241#255#255#255
+  +#236#255#255#255#248#251#255#255#245#246#255#255#246#252#255#255#229#243#255
+  +#255#236#254#255#255#239#253#255#255#251#251#255#255#255#250#255#255#246#255
+  +#252#255#245#255#249#255#250#255#253#255#255#255#254#255#255#252#255#255#255
+  +#251#255#255#247#252#255#255#243#255#255#255#251#254#255#255#247#246#255#255
+  +#249#252#255#255#250#254#255#255#243#254#255#255#239#248#252#255#245#245#251
+  +#255#255#253#255#255#255#255#254#255#253#254#252#255#255#255#254#255#255#254
+  +#254#255#255#251#252#255#255#251#252#255#255#252#250#255#255#255#251#255#251
+  +#251#245#255#255#255#251#255#255#254#247#255#255#250#244#255#255#255#249#255
+  +#255#255#249#255#255#255#249#255#251#255#248#255#255#248#250#255#255#250#252
+  +#255#255#250#251#255#255#244#244#255#255#241#243#255#255#246#247#255#255#249
+  +#245#255#255#251#243#255#255#255#245#255#253#255#243#255#255#255#244#255#255
+  +#255#247#255#255#245#237#255#254#246#239#255#255#255#251#255#248#252#246#255
+  +#144#30'%'#255#137#21#26#255#141#24#27#255#154#29#31#255#168#28#29#255#166#22
+  +#21#255#155#22#19#255'}&'#28#255#255#255#238#255#241#255#244#255#253#255#245
+  +#255#247#244#239#255#255#254#255#255#255#252#255#255#255#249#255#0#255#243
+  +#255#255#140#26#26#255#255#231#233#255#255#237#241#255#171#14#18#255#175#13
+  +#18#255#255#237#238#255#255#231#229#255'~'#30#24#255#255#254#242#255#255#252
+  +#240#255#255#252#248#255#255#247#248#255#255#252#255#255#255#249#255#0#254
+  +#244#255#255#255#250#255#255#255#222#207#255#255#250#240#255#255#234#234#255
+  +#164#20#25#255#157#21#27#255#255#234#238#255#255#247#247#255#255#215#215#255
+  +'w'#26'!'#255#134#21#31#255#155#23'$'#255#255#164#174#255'^(('#255#255#255
+  +#248#255#255#255#248#255#245#253#242#255#255#255#244#255#255#250#241#255#255
+  +#241#245#255#158#23'!'#255#142#25'"'#255#255#245#248#255#255#249#246#255#255
+  +#250#251#255#255#239#251#255#167#13' '#255#190#20''''#255#255#148#161#255#255
+  +#211#210#255#255#254#242#255#255#255#244#255#249#255#243#255#255#255#254#255
+  +#255#250#254#255#255#239#252#255#142#13#28#255#131#30'&'#255#255#248#248#255
+  +#255#254#246#255#255#254#247#255#255#243#247#255#153#20#30#255#168#17' '#255
+  +#255#225#236#255#255#251#249#255#254#254#248#255#255#255#252#255#253#254#250
+  +#255#246#248#248#255#255#250#254#255#255#236#248#255#158#19'!'#255#137#26#30
+  +#255#255#244#237#255#255#255#240#255#255#255#241#255#255#239#235#255#164#27
+  ,#31#255#162#14#24#255#255#238#247#255#255#251#251#255#252#253#251#255#255#254
   +#255#255#252#251#253#255#255#255#245#255#255#251#241#255#255#240#242#255#187
   +#25#30#255#171#19#18#255#255#246#235#255#255#255#231#255#255#255#231#255#255
   +#243#235#255#179#16#18#255#181#23#30#255#255#240#245#255#255#241#244#255#255
-  ,#254#254#255#255#254#255#255#253#254#255#255#250#255#248#255#255#253#247#255
+  +#254#254#255#255#254#255#255#253#254#255#255#250#255#248#255#255#253#247#255
   +'z'#26' '#255#152#21' '#255#145#14#25#255't'#17#25#255#255#250#247#255#255
   +#251#251#255'|'#16#29#255#154#16'"'#255#153#22'*'#255'y'#23'%'#255#255#248
   +#255#255#255#242#244#255#255#254#255#255#245#245#245#255#237#254#255#255#247
@@ -317,11 +321,11 @@ LazarusResources.Add('TfmTableManage','FORMDATA',[
   +#242#253#251#255#239#250#255#255#236#243#255#255#246#249#255#255#253#252#255
   +#255#255#253#255#255#255#255#254#255#253#255#254#255#240#252#254#255#233#246
   +#254#255#241#250#255#255#244#249#255#255#244#244#255#255#255#253#255#255#255
-  +#252#255#255#249#245#251#255'KT]'#255'2?O'#255'9C['#255'58T'#255'>4K'#255'OA'
+  ,#252#255#255#249#245#251#255'KT]'#255'2?O'#255'9C['#255'58T'#255'>4K'#255'OA'
   +'S'#255'?1<'#255'NHS'#255'8>Q'#255'AJe'#255'5<]'#255'65U'#255'E:T'#255'P>U'
   +#255#255#247#255#0#255#250#255#255#243#250#255#255#236#250#255#255#235#246
   +#255#255#244#246#255#255#255#244#255#255#255#241#255#255#255#248#255#255#255
-  ,#249#255#255#244#247#255#255#229#238#255#255#239#244#255#255#246#243#255#255
+  +#249#255#255#244#247#255#255#229#238#255#255#239#244#255#255#246#243#255#255
   +#255#241#255#255#255#243#255#255#255#251#255#255#253#244#254#255#255#251#255
   +#255#255#251#255#255#255#250#255#255#255#245#253#255#255#252#255#255#255#253
   +#255#255#253#251#255#255#253#253#255#255#251#254#255#255#247#250#255#255#255
@@ -381,11 +385,11 @@ LazarusResources.Add('TfmTableManage','FORMDATA',[
   +#248#251#255#255#246#248#255#255#250#252#255#255#249#251#255#255#250#247#255
   +#255#250#247#255#255#249#245#255#255#251#248#255#255#251#246#255#255#253#249
   +#255#255#252#249#255#255#248#245#255#255#251#248#255#255#249#246#255#255#253
-  +#249#255#255#249#244#255#255#251#248#255#255#251#248#255#255#250#247#255#255
+  ,#249#255#255#249#244#255#255#251#248#255#255#251#248#255#255#250#247#255#255
   +#249#246#255#255#145#141#170#255#138#135#161#255#141#136#163#255#150#146#171
   +#255#140#134#157#255#147#142#163#255#141#136#157#255#152#147#168#255#149#144
   +#165#255#147#142#163#255#150#144#167#255#150#144#167#255#140#136#161#255#139
-  ,#134#161#255#137#133#162#255#140#136#165#255#141#141#159#255#250#250#255#255
+  +#134#161#255#137#133#162#255#140#136#165#255#141#141#159#255#250#250#255#255
   +#249#247#255#255#245#244#255#255#250#247#255#255#253#251#255#255#253#251#255
   +#255#248#247#255#255#248#247#255#255#252#251#255#255#252#250#255#255#248#245
   +#255#255#251#250#255#255#251#250#255#255#147#147#165#255#139#139#157#255#141

+ 9 - 0
tablemanage.pas

@@ -13,6 +13,7 @@ type
   { TfmTableManage }
 
   TfmTableManage = class(TForm)
+    bbClose: TBitBtn;
     bbCreateIndex: TBitBtn;
     bbDrop: TBitBtn;
     bbDropConstraint: TBitBtn;
@@ -53,6 +54,7 @@ type
     tsConstraints: TTabSheet;
     tsFields: TTabSheet;
     procedure bbAddUserClick(Sender: TObject);
+    procedure bbCloseClick(Sender: TObject);
     procedure bbCreateIndexClick(Sender: TObject);
     procedure bbDropClick(Sender: TObject);
     procedure bbDropConstraintClick(Sender: TObject);
@@ -246,6 +248,12 @@ begin
   fmPermissions.Show;
 end;
 
+procedure TfmTableManage.bbCloseClick(Sender: TObject);
+begin
+  Close;
+  Parent.Free;
+end;
+
 procedure TfmTableManage.bbNewClick(Sender: TObject);
 var
   fmNewEditField: TfmNewEditField;
@@ -296,6 +304,7 @@ procedure TfmTableManage.bbRefreshClick(Sender: TObject);
 begin
   fmMain.ViewTableFields(fTableName, fdbIndex, sgFields);
   Show;
+  fmMain.PageControl1.ActivePage:= Self.Parent as TTabSheet;
 end;
 
 procedure TfmTableManage.bbRefreshConstraintClick(Sender: TObject);

+ 2 - 1
userpermissions.lfm

@@ -16,6 +16,7 @@ object fmUserPermissions: TfmUserPermissions
     Top = 31
     Width = 477
     Anchors = [akTop, akLeft, akBottom]
+    BorderStyle = bsNone
     ColCount = 3
     Columns = <    
       item
@@ -54,7 +55,7 @@ object fmUserPermissions: TfmUserPermissions
     TabOrder = 1
   end
   object Label1: TLabel
-    Left = 8
+    Left = 3
     Height = 18
     Top = 12
     Width = 46

+ 15 - 15
userpermissions.lrs

@@ -7,19 +7,19 @@ LazarusResources.Add('TfmUserPermissions','FORMDATA',[
   +#244#1#7'OnClose'#7#9'FormClose'#8'Position'#7#14'poScreenCenter'#10'LCLVers'
   +'ion'#6#6'0.9.31'#0#11'TStringGrid'#11'StringGrid1'#4'Left'#2#0#6'Height'#3
   +'K'#1#3'Top'#2#31#5'Width'#3#221#1#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBott'
-  +'om'#0#8'ColCount'#2#3#7'Columns'#14#1#13'Title.Caption'#6#8'Obj Type'#18'Ti'
-  +'tle.PrefixOption'#7#6'poNone'#5'Width'#2'd'#0#1#13'Title.Caption'#6#6'Objec'
-  +'t'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#3#200#0#0#1#13'Title.Caption'
-  +#6#10'Permission'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#3#200#0#0#0#10
-  +'FixedColor'#4#207#218#221#0#9'FixedCols'#2#0#4'Flat'#9#7'Options'#11#15'goF'
-  +'ixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#11'goColSiz'
-  +'ing'#11'goRowSelect'#14'goSmoothScroll'#0#8'TabOrder'#2#0#14'UseXORFeatures'
-  +#9#0#0#7'TBitBtn'#7'bbClose'#4'Left'#3#218#1#6'Height'#2#24#3'Top'#2#1#5'Wid'
-  +'th'#2#27#7'Anchors'#11#5'akTop'#7'akRight'#0#7'Caption'#6#4' X  '#5'Color'#4
-  +#219#242#247#0#10'Font.Style'#11#6'fsBold'#0#7'OnClick'#7#12'bbCloseClick'#10
-  +'ParentFont'#8#8'TabOrder'#2#1#0#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'
-  +#2#18#3'Top'#2#12#5'Width'#2'.'#7'Caption'#6#6'Object'#11'ParentColor'#8#0#0
-  +#6'TLabel'#8'laObject'#4'Left'#2'>'#6'Height'#2#18#3'Top'#2#11#5'Width'#2'>'
-  +#7'Caption'#6#8'laObject'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10
-  +'ParentFont'#8#0#0#0
+  +'om'#0#11'BorderStyle'#7#6'bsNone'#8'ColCount'#2#3#7'Columns'#14#1#13'Title.'
+  +'Caption'#6#8'Obj Type'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#2'd'#0#1
+  +#13'Title.Caption'#6#6'Object'#18'Title.PrefixOption'#7#6'poNone'#5'Width'#3
+  +#200#0#0#1#13'Title.Caption'#6#10'Permission'#18'Title.PrefixOption'#7#6'poN'
+  +'one'#5'Width'#3#200#0#0#0#10'FixedColor'#4#207#218#221#0#9'FixedCols'#2#0#4
+  +'Flat'#9#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'
+  +#10'goHorzLine'#11'goColSizing'#11'goRowSelect'#14'goSmoothScroll'#0#8'TabOr'
+  +'der'#2#0#14'UseXORFeatures'#9#0#0#7'TBitBtn'#7'bbClose'#4'Left'#3#218#1#6'H'
+  +'eight'#2#24#3'Top'#2#1#5'Width'#2#27#7'Anchors'#11#5'akTop'#7'akRight'#0#7
+  +'Caption'#6#4' X  '#5'Color'#4#219#242#247#0#10'Font.Style'#11#6'fsBold'#0#7
+  +'OnClick'#7#12'bbCloseClick'#10'ParentFont'#8#8'TabOrder'#2#1#0#0#6'TLabel'#6
+  +'Label1'#4'Left'#2#3#6'Height'#2#18#3'Top'#2#12#5'Width'#2'.'#7'Caption'#6#6
+  +'Object'#11'ParentColor'#8#0#0#6'TLabel'#8'laObject'#4'Left'#2'>'#6'Height'#2
+  +#18#3'Top'#2#11#5'Width'#2'>'#7'Caption'#6#8'laObject'#10'Font.Style'#11#6'f'
+  +'sBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#0
 ]);