Marco Web Center |
Home: Code Repository: Mastering Delphi 5Project TABLES
Project StructureTABLES.DPRprogram Tables; uses Forms, TablesF in 'TablesF.pas' {MainForm}, FieldsF in 'FieldsF.pas' {FieldsForm}, DbgridF in 'Dbgridf.pas' {GridForm}; {$R *.RES} begin Application.CreateForm(TMainForm, MainForm); Application.CreateForm(TFieldsForm, FieldsForm); Application.CreateForm(TGridForm, GridForm); Application.Run; end. TABLESF.PASunit TablesF; interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ExtCtrls, Buttons, Grids, DBGrids, DBTables; type TMainForm = class(TForm) ListBox1: TListBox; Panel1: TPanel; ComboBox1: TComboBox; Label1: TLabel; Table1: TTable; DataSource1: TDataSource; DBGrid1: TDBGrid; SpeedButton1: TSpeedButton; Splitter1: TSplitter; procedure FormCreate(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure ListBox1Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure ListBox1DblClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainForm: TMainForm; implementation {$R *.DFM} uses FieldsF, DbGridF; procedure TMainForm.FormCreate(Sender: TObject); begin Session.GetDatabaseNames (ComboBox1.Items); // force an initial list in the listbox ComboBox1.Text := 'DBDEMOS'; ComboBox1Change (Self); // force an initial selection in the DBGrid ListBox1.ItemIndex := 0; ListBox1Click (Self); end; procedure TMainForm.ComboBox1Change(Sender: TObject); begin Session.GetTableNames (ComboBox1.Text, '', True, False, ListBox1.Items); end; procedure TMainForm.ListBox1Click(Sender: TObject); begin Table1.Close; Table1.DatabaseName := ComboBox1.Text; Table1.Tablename := Listbox1.Items [Listbox1.ItemIndex]; Table1.Open; Caption := Format ('Table: %s - %s', [Table1.DatabaseName, Table1.Tablename]); end; procedure TMainForm.SpeedButton1Click(Sender: TObject); var I: Integer; begin FieldsForm.FieldsList.Clear; for I := 0 to Table1.FieldCount - 1 do begin FieldsForm.FieldsList.Items.Add ( Table1.Fields[I].FieldName); FieldsForm.FieldsList.Selected [I] := Table1.Fields[I].Visible; end; if FieldsForm.ShowModal = mrOk then for I := 0 to Table1.FieldCount - 1 do Table1.Fields[I].Visible := FieldsForm.FieldsList.Selected [I]; end; procedure TMainForm.ListBox1DblClick(Sender: TObject); var GridForm: TGridForm; begin GridForm := TGridForm.Create (Self); {connect the table component to the selected table and activate it} GridForm.Table1.DatabaseName := ComboBox1.Text; GridForm.Table1.TableName := Listbox1.Items [Listbox1.ItemIndex]; try GridForm.Table1.Open; GridForm.Show; except GridForm.Close; end; end; end. FIELDSF.PASunit FieldsF; interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TFieldsForm = class(TForm) FieldsList: TListBox; Label1: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; private { Private declarations } public { Public declarations } end; var FieldsForm: TFieldsForm; implementation {$R *.DFM} end. DBGRIDF.PASunit DbgridF; interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, Buttons, Fieldsf; type TGridForm = class(TForm) DBGrid1: TDBGrid; Table1: TTable; DataSource1: TDataSource; Panel1: TPanel; DBNavigator1: TDBNavigator; SpeedButton1: TSpeedButton; ComboBox1: TComboBox; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure SpeedButton1Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var GridForm: TGridForm; implementation {$R *.DFM} procedure TGridForm.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TGridForm.SpeedButton1Click(Sender: TObject); var I: Integer; begin for I := 0 to Table1.FieldCount - 1 do begin FieldsForm.FieldsList.Items.Add (Table1.Fields[I].FieldName); if Table1.Fields[I].Visible then FieldsForm.FieldsList.Selected [I] := True; end; if FieldsForm.ShowModal = mrOk then for I := 0 to Table1.FieldCount - 1 do Table1.Fields[I].Visible := FieldsForm.FieldsList.Selected [I]; FieldsForm.FieldsList.Clear; end; procedure TGridForm.ComboBox1Change(Sender: TObject); begin // toggle the visibility of the field Table1.FieldByName (ComboBox1.Text).Visible := not Table1.FieldByName (ComboBox1.Text).Visible; end; procedure TGridForm.FormShow(Sender: TObject); var I: Integer; begin Caption := Format ('Table: %s - %s', [Table1.DatabaseName, Table1.TableName]); // fill the combo box with the names of the fields ComboBox1.Items.Clear; for I := 0 to Table1.FieldCount - 1 do ComboBox1.Items.Add (Table1.Fields[I].FieldName); end; end. TABLESF.DFMobject MainForm: TMainForm Left = 190 Top = 121 Width = 533 Height = 378 Caption = 'Tables Browser' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clBlack Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = True OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Splitter1: TSplitter Left = 193 Top = 33 Width = 3 Height = 318 Cursor = crHSplit end object ListBox1: TListBox Left = 0 Top = 33 Width = 193 Height = 318 Align = alLeft ItemHeight = 13 TabOrder = 0 OnClick = ListBox1Click OnDblClick = ListBox1DblClick end object Panel1: TPanel Left = 0 Top = 0 Width = 525 Height = 33 Align = alTop TabOrder = 1 object Label1: TLabel Left = 8 Top = 8 Width = 49 Height = 13 Caption = '&Database:' FocusControl = ComboBox1 end object SpeedButton1: TSpeedButton Left = 241 Top = 6 Width = 84 Height = 21 Caption = 'Select Fields...' OnClick = SpeedButton1Click end object ComboBox1: TComboBox Left = 61 Top = 5 Width = 172 Height = 21 ItemHeight = 13 TabOrder = 0 OnChange = ComboBox1Change end end object DBGrid1: TDBGrid Left = 196 Top = 33 Width = 329 Height = 318 Align = alClient DataSource = DataSource1 TabOrder = 2 TitleFont.Charset = DEFAULT_CHARSET TitleFont.Color = clBlack TitleFont.Height = -11 TitleFont.Name = 'MS Sans Serif' TitleFont.Style = [] end object Table1: TTable Left = 24 Top = 48 end object DataSource1: TDataSource DataSet = Table1 Left = 96 Top = 48 end end FIELDSF.DFMobject FieldsForm: TFieldsForm Left = 209 Top = 113 BorderStyle = bsDialog Caption = 'FieldsForm' ClientHeight = 232 ClientWidth = 424 Color = clBtnFace Font.Charset = ANSI_CHARSET Font.Color = clBlack Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = True PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 18 Top = 12 Width = 202 Height = 13 Caption = 'Select the fields you want to see in the grid' WordWrap = True end object FieldsList: TListBox Left = 16 Top = 32 Width = 297 Height = 185 ExtendedSelect = False ItemHeight = 13 MultiSelect = True TabOrder = 0 end object BitBtn1: TBitBtn Left = 328 Top = 154 Width = 81 Height = 28 Caption = 'OK' Default = True ModalResult = 1 TabOrder = 1 Glyph.Data = { DE010000424DDE01000000000000760000002800000024000000120000000100 0400000000006801000000000000000000001000000000000000000000000000 80000080000000808000800000008000800080800000C0C0C000808080000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 3333333333333333333333330000333333333333333333333333F33333333333 00003333344333333333333333388F3333333333000033334224333333333333 338338F3333333330000333422224333333333333833338F3333333300003342 222224333333333383333338F3333333000034222A22224333333338F338F333 8F33333300003222A3A2224333333338F3838F338F33333300003A2A333A2224 33333338F83338F338F33333000033A33333A222433333338333338F338F3333 0000333333333A222433333333333338F338F33300003333333333A222433333 333333338F338F33000033333333333A222433333333333338F338F300003333 33333333A222433333333333338F338F00003333333333333A22433333333333 3338F38F000033333333333333A223333333333333338F830000333333333333 333A333333333333333338330000333333333333333333333333333333333333 0000} NumGlyphs = 2 end object BitBtn2: TBitBtn Left = 328 Top = 190 Width = 81 Height = 28 TabOrder = 2 Kind = bkCancel end end DBGRIDF.DFMobject GridForm: TGridForm Left = 255 Top = 188 Width = 435 Height = 300 Caption = 'Table' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clBlack Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = True OnClose = FormClose OnShow = FormShow PixelsPerInch = 96 TextHeight = 13 object DBGrid1: TDBGrid Left = 0 Top = 33 Width = 427 Height = 240 Align = alClient DataSource = DataSource1 TabOrder = 0 TitleFont.Charset = DEFAULT_CHARSET TitleFont.Color = clBlack TitleFont.Height = -11 TitleFont.Name = 'MS Sans Serif' TitleFont.Style = [] end object Panel1: TPanel Left = 0 Top = 0 Width = 427 Height = 33 Align = alTop TabOrder = 1 object SpeedButton1: TSpeedButton Left = 118 Top = 4 Width = 67 Height = 25 Caption = 'Fields...' OnClick = SpeedButton1Click end object DBNavigator1: TDBNavigator Left = 4 Top = 4 Width = 104 Height = 25 DataSource = DataSource1 VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast] TabOrder = 0 end object ComboBox1: TComboBox Left = 192 Top = 4 Width = 145 Height = 21 Style = csDropDownList ItemHeight = 13 Sorted = True TabOrder = 1 OnChange = ComboBox1Change end end object Table1: TTable Left = 384 Top = 232 end object DataSource1: TDataSource DataSet = Table1 Left = 352 Top = 232 end end
|
||
© Copyright Marco Cantù, 1995-2020, All rights reserved |