| 1 | unit _BaseTemplate; | 
 
 
 
 
 | 2 |  | 
 
 
 
 
 | 3 | interface | 
 
 
 
 
 | 4 |  | 
 
 
 
 
 | 5 | uses | 
 
 
 
 
 | 6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, | 
 
 
 
 
 | 7 | Dialogs, ExtCtrls, StdCtrls, StrUtils, | 
 
 
 
 
 | 8 | TypeDefs; | 
 
 
 
 
 | 9 |  | 
 
 
 
 
 | 10 | type | 
 
 
 
 
 | 11 | TNewConnectionEvent = procedure(ConnectionID: Integer) of object; | 
 
 
 
 
 | 12 | TCheckCloseableEvent = function: Boolean of object; | 
 
 
 
 
 | 13 |  | 
 
 
 
 
 | 14 | TForm_BaseTemplate = class(TForm) | 
 
 
 
 
 | 15 | panel_connection: TPanel; | 
 
 
 
 
 | 16 | label_connection: TLabel; | 
 
 
 
 
 | 17 | combo_connection: TComboBox; | 
 
 
 
 
 | 18 | panel_basecontent: TPanel; | 
 
 
 
 
 | 19 | procedure FormClose(Sender: TObject; var Action: TCloseAction); | 
 
 
 
 
 | 20 | procedure FormActivate(Sender: TObject); | 
 
 
 
 
 | 21 | procedure combo_connectionChange(Sender: TObject); | 
 
 
 
 
 | 22 | protected | 
 
 
 
 
 | 23 | FOnNewConnection: TNewConnectionEvent; | 
 
 
 
 
 | 24 | FOnCheckCloseable: TCheckCloseableEvent; | 
 
 
 
 
 | 25 | FConnectionID: Integer; | 
 
 
 
 
 | 26 | function GetToolCloseable: Boolean; | 
 
 
 
 
 | 27 | public | 
 
 
 
 
 | 28 | constructor Create(AOwner: TComponent); override; | 
 
 
 
 
 | 29 | procedure UpdateConList; | 
 
 
 
 
 | 30 | procedure SelectConnection(ConnectionID: Integer); | 
 
 
 
 
 | 31 | published | 
 
 
 
 
 | 32 | property OnNewConnection: TNewConnectionEvent read FOnNewConnection write FOnNewConnection; | 
 
 
 
 
 | 33 | property OnCheckCloseable: TCheckCloseableEvent read FOnCheckCloseable write FOnCheckCloseable; | 
 
 
 
 
 | 34 | property ConnectionID: Integer read FConnectionID; | 
 
 
 
 
 | 35 | property Closeable: Boolean read GetToolCloseable; | 
 
 
 
 
 | 36 | end; | 
 
 
 
 
 | 37 |  | 
 
 
 
 
 | 38 |  | 
 
 
 
 
 | 39 | implementation | 
 
 
 
 
 | 40 | {$R *.dfm} | 
 
 
 
 
 | 41 | uses Main, ConnectionManager; | 
 
 
 
 
 | 42 |  | 
 
 
 
 
 | 43 |  | 
 
 
 
 
 | 44 | procedure TForm_BaseTemplate.UpdateConList; | 
 
 
 
 
 | 45 | var | 
 
 
 
 
 | 46 | i: Integer; | 
 
 
 
 
 | 47 | fn, datatype, boxstring: String; | 
 
 
 
 
 | 48 | level: Integer; | 
 
 
 
 
 | 49 | begin | 
 
 
 
 
 | 50 | combo_connection.ItemIndex := -1; | 
 
 
 
 
 | 51 | combo_connection.Items.Clear; | 
 
 
 
 
 | 52 | if ConManager.Count > 0 then | 
 
 
 
 
 | 53 | begin | 
 
 
 
 
 | 54 | for i := 0 to ConManager.Count - 1 do | 
 
 
 
 
 | 55 | begin | 
 
 
 
 
 | 56 | level := ConManager.ConnectionByIndex[i].LevelNumber; | 
 
 
 
 
 | 57 | fn := ExtractFileName(ConManager.ConnectionByIndex[i].FileName); | 
 
 
 
 
 | 58 | if ConManager.ConnectionByIndex[i].Backend = DB_ONI then | 
 
 
 
 
 | 59 | datatype := 'ONI-.dat: ' | 
 
 
 
 
 | 60 | else if ConManager.ConnectionByIndex[i].Backend = DB_ADB then | 
 
 
 
 
 | 61 | datatype := 'OUP-DB: ' | 
 
 
 
 
 | 62 | else | 
 
 
 
 
 | 63 | datatype := 'Unknown: '; | 
 
 
 
 
 | 64 | boxstring := datatype + fn + ' (Level: ' + IntToStr(level) + ') [' + IntToStr(ConManager.ConnectionByIndex[i].ConnectionID) + ']'; | 
 
 
 
 
 | 65 | combo_connection.Items.Add(boxstring); | 
 
 
 
 
 | 66 | if ConManager.ConnectionByIndex[i].ConnectionID = FConnectionID then | 
 
 
 
 
 | 67 | combo_connection.ItemIndex := combo_connection.Items.Count - 1; | 
 
 
 
 
 | 68 | end; | 
 
 
 
 
 | 69 | if combo_connection.ItemIndex = -1 then | 
 
 
 
 
 | 70 | begin | 
 
 
 
 
 | 71 | combo_connection.ItemIndex := 0; | 
 
 
 
 
 | 72 | combo_connectionChange(Self); | 
 
 
 
 
 | 73 | end; | 
 
 
 
 
 | 74 | end | 
 
 
 
 
 | 75 | else | 
 
 
 
 
 | 76 | begin | 
 
 
 
 
 | 77 | FConnectionID := 0; | 
 
 
 
 
 | 78 | combo_connectionChange(Self); | 
 
 
 
 
 | 79 | end; | 
 
 
 
 
 | 80 | end; | 
 
 
 
 
 | 81 |  | 
 
 
 
 
 | 82 |  | 
 
 
 
 
 | 83 |  | 
 
 
 
 
 | 84 | procedure TForm_BaseTemplate.combo_connectionChange(Sender: TObject); | 
 
 
 
 
 | 85 | var | 
 
 
 
 
 | 86 | name: String; | 
 
 
 
 
 | 87 | begin | 
 
 
 
 
 | 88 | if combo_connection.ItemIndex >= 0 then | 
 
 
 
 
 | 89 | begin | 
 
 
 
 
 | 90 | name := combo_connection.Items.Strings[combo_connection.ItemIndex]; | 
 
 
 
 
 | 91 | FConnectionID := StrToInt(MidStr(name, Pos('[', name) + 1, Pos(']', name) - Pos('[', name)  - 1)); | 
 
 
 
 
 | 92 | end | 
 
 
 
 
 | 93 | else | 
 
 
 
 
 | 94 | FConnectionID := -1; | 
 
 
 
 
 | 95 | if Assigned(FOnNewConnection) then | 
 
 
 
 
 | 96 | FOnNewConnection(FConnectionID); | 
 
 
 
 
 | 97 | end; | 
 
 
 
 
 | 98 |  | 
 
 
 
 
 | 99 |  | 
 
 
 
 
 | 100 | procedure TForm_BaseTemplate.SelectConnection(ConnectionID: Integer); | 
 
 
 
 
 | 101 | begin | 
 
 
 
 
 | 102 | if FConnectionID <> ConnectionID then | 
 
 
 
 
 | 103 | begin | 
 
 
 
 
 | 104 | combo_connection.ItemIndex := ConManager.ConnectionIndexByID[ConnectionID]; | 
 
 
 
 
 | 105 | combo_connectionChange(Self); | 
 
 
 
 
 | 106 | end; | 
 
 
 
 
 | 107 | end; | 
 
 
 
 
 | 108 |  | 
 
 
 
 
 | 109 |  | 
 
 
 
 
 | 110 | function TForm_BaseTemplate.GetToolCloseable: Boolean; | 
 
 
 
 
 | 111 | begin | 
 
 
 
 
 | 112 | if Assigned(FOnCheckCloseable) then | 
 
 
 
 
 | 113 | Result := FOnCheckCloseable | 
 
 
 
 
 | 114 | else | 
 
 
 
 
 | 115 | Result := True; | 
 
 
 
 
 | 116 | end; | 
 
 
 
 
 | 117 |  | 
 
 
 
 
 | 118 |  | 
 
 
 
 
 | 119 | constructor TForm_BaseTemplate.Create(AOwner: TComponent); | 
 
 
 
 
 | 120 | begin | 
 
 
 
 
 | 121 | inherited; | 
 
 
 
 
 | 122 | Self.Width  := 260; | 
 
 
 
 
 | 123 | Self.Height := 300; | 
 
 
 
 
 | 124 | FOnNewConnection := nil; | 
 
 
 
 
 | 125 | FOnCheckCloseable := nil; | 
 
 
 
 
 | 126 | FConnectionID := -1; | 
 
 
 
 
 | 127 | UpdateConList; | 
 
 
 
 
 | 128 | end; | 
 
 
 
 
 | 129 |  | 
 
 
 
 
 | 130 | procedure TForm_BaseTemplate.FormActivate(Sender: TObject); | 
 
 
 
 
 | 131 | begin | 
 
 
 
 
 | 132 | if panel_basecontent.CanFocus then | 
 
 
 
 
 | 133 | panel_basecontent.SetFocus; | 
 
 
 
 
 | 134 | end; | 
 
 
 
 
 | 135 |  | 
 
 
 
 
 | 136 | procedure TForm_BaseTemplate.FormClose(Sender: TObject; var Action: TCloseAction); | 
 
 
 
 
 | 137 | begin | 
 
 
 
 
 | 138 | Action := caFree; | 
 
 
 
 
 | 139 | end; | 
 
 
 
 
 | 140 |  | 
 
 
 
 
 | 141 |  | 
 
 
 
 
 | 142 | end. |