Преглед изворни кода

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 година
родитељ
комит
c64228c5df
13 измењених фајлова са 705 додато и 550 уклоњено
  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
 ]);