From: Olivier S. <ob...@us...> - 2004-08-07 17:35:53
|
Update of /cvsroot/jvcl/dev/JVCL3/examples/JvUltimDBGrid/BDE In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26495/dev/JVCL3/examples/JvUltimDBGrid/BDE Added Files: .cvsignore JvUltimDBGridBDETest.dof JvUltimDBGridBDETest.dpr JvUltimDBGridBDETest.res MainForm.dfm MainForm.pas Log Message: Backported from BCB to Delphi --- NEW FILE: .cvsignore --- JvUltimDBGridBDETest.cfg --- NEW FILE: JvUltimDBGridBDETest.dof --- [Directories] OutputDir=..\..\..\bin UnitOutputDir=..\..\..\dcu PackageDLLOutputDir= PackageDCPOutputDir= SearchPath=..\..\..\run;..\..\..\resources --- NEW FILE: JvUltimDBGridBDETest.dpr --- program JvUltimDBGridBDETest; uses Forms, MainForm in 'MainForm.pas' {frmMain}; {$R *.res} begin Application.Initialize; Application.CreateForm(TfrmMain, frmMain); Application.Run; end. --- NEW FILE: MainForm.pas --- unit MainForm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, DBCtrls, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids, JvExDBGrids, JvDBGrid, JvDBUltimGrid; type TfrmMain = class(TForm) MyUltimGrid: TJvDBUltimGrid; Panel1: TPanel; Label1: TLabel; ValueToSearch: TEdit; B_Search: TBitBtn; B_SearchNext: TBitBtn; DBNavigator1: TDBNavigator; B_ResizeCols: TBitBtn; Table1: TTable; DataSource1: TDataSource; procedure FormShow(Sender: TObject); procedure MyUltimGridIndexNotFound(Sender: TJvDBUltimGrid; FieldsToSort: TSortFields; IndexFieldNames, DescFields: String; var Retry: Boolean); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure B_SearchClick(Sender: TObject); procedure B_SearchNextClick(Sender: TObject); procedure MyUltimGridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); procedure B_ResizeColsClick(Sender: TObject); private { Private declarations } ResultCol: Integer; ResultField: TField; public { Public declarations } end; var frmMain: TfrmMain; implementation {$R *.dfm} procedure TfrmMain.FormShow(Sender: TObject); var InitialSort: TSortFields; begin Table1.Open; SetLength(InitialSort, 2); InitialSort[0].Name := 'Category'; InitialSort[0].Order := JvGridSort_ASC; InitialSort[1].Name := 'Common_Name'; InitialSort[1].Order := JvGridSort_ASC; MyUltimGrid.Sort(InitialSort); end; procedure TfrmMain.MyUltimGridIndexNotFound(Sender: TJvDBUltimGrid; FieldsToSort: TSortFields; IndexFieldNames, DescFields: String; var Retry: Boolean); var NewIndex: Integer; DescMarker: string; NewIndexName: string; begin // Nota bene: you need to update Biolife.db to Paradox 7 if you want a sort // in descending order. Otherwise, the index creation will fail. DescMarker := ''; if DescFields = '' then DescMarker := ' (DESC)'; NewIndex := Application.MessageBox(PChar('Index not found for field: ' + IndexFieldNames + DescMarker + #13#10'Do you want to create an index ?'), 'New index ?', MB_YESNO); if (NewIndex = ID_YES) then begin NewIndexName := IndexFieldNames; while (Pos(';', NewIndexName) > 0) do Delete(NewIndexName, Pos(';', NewIndexName), 1); while (Pos(' ', NewIndexName) > 0) do Delete(NewIndexName, Pos(' ', NewIndexName), 1); NewIndexName := 'Idx_' + NewIndexName + DescMarker; Table1.Close; try Table1.AddIndex(NewIndexName, IndexFieldNames, [ixCaseInsensitive], DescFields); except on ErrAddIdx: Exception do ShowMessage('AddIndex(' + NewIndexName + ') failed: ' + ErrAddIdx.Message); end; Table1.Open; Retry := true; end; end; procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction); begin Table1.Close; end; procedure TfrmMain.B_SearchClick(Sender: TObject); var SearchOk: Boolean; begin MyUltimGrid.SearchFields.Clear(); MyUltimGrid.SearchFields.Add('Category'); MyUltimGrid.SearchFields.Add('Common_Name'); MyUltimGrid.SearchFields.Add('Species Name'); MyUltimGrid.SearchFields.Add('Notes'); SearchOK := MyUltimGrid.Search(ValueToSearch.Text, ResultCol, ResultField, False, False, True); B_SearchNext.Enabled := SearchOK; if (SearchOK) then ShowMessage('Hurrah! Text found in field ' + Trim(ResultField.FieldName)) else ShowMessage('Text not found'); end; procedure TfrmMain.B_SearchNextClick(Sender: TObject); begin if (not MyUltimGrid.SearchNext(ResultCol, ResultField, False, False, True)) then begin ShowMessage('Text not found - End of search'); B_SearchNext.Enabled := False; end; end; procedure TfrmMain.MyUltimGridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var Image: TBitmap; begin // Hey fish, let me see your face...hum...your fins if (Column.Field.FieldName = 'Graphic') then begin Image := TBitmap.Create; try Image.Assign(TBlobField(Column.Field)); if (Image.Height > Rect.Bottom - Rect.Top) then Image.Height := Rect.Bottom - Rect.Top; if (Image.Width > Rect.Right - Rect.Left) then Image.Width := Rect.Right - Rect.Left; MyUltimGrid.Canvas.FillRect(Rect); MyUltimGrid.Canvas.Draw(Rect.Left, Rect.Top, Image); finally Image.Free; end; end; end; procedure TfrmMain.B_ResizeColsClick(Sender: TObject); begin MyUltimGrid.RowsHeight := 129; MyUltimGrid.InitializeColumnsWidth(70, False, False); MyUltimGrid.AutoSizeColumnIndex := JvGridResizeLastVisibleCol; MyUltimGrid.AutoSizeColumns := True; end; end. --- NEW FILE: MainForm.dfm --- object frmMain: TfrmMain Left = 192 Top = 107 Width = 790 Height = 489 Caption = 'BDE Test' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False OnClose = FormClose OnShow = FormShow PixelsPerInch = 96 TextHeight = 13 object MyUltimGrid: TJvDBUltimGrid Left = 0 Top = 0 Width = 782 Height = 421 Align = alClient DataSource = DataSource1 TabOrder = 0 TitleFont.Charset = DEFAULT_CHARSET TitleFont.Color = clWindowText TitleFont.Height = -11 TitleFont.Name = 'MS Sans Serif' TitleFont.Style = [] OnDrawColumnCell = MyUltimGridDrawColumnCell TitleButtons = True AlternateRowColor = clInfoBk SelectColumn = scGrid TitleArrow = True SelectColumnsDialogStrings.Caption = 'S'#233'lection des colonnes visibles' SelectColumnsDialogStrings.RealNamesOption = '[Avec le vrai nom du champ]' SelectColumnsDialogStrings.OK = '&OK' SelectColumnsDialogStrings.NoSelectionWarning = 'Il doit y avoir au moins une colonne visible !' EditControls = <> AutoSizeRows = False RowResize = True RowsHeight = 42 TitleRowHeight = 17 WordWrap = True OnIndexNotFound = MyUltimGridIndexNotFound Columns = < item Expanded = False FieldName = 'Species No' Width = 60 Visible = True end item Expanded = False FieldName = 'Category' Width = 72 Visible = True end item Expanded = False FieldName = 'Common_Name' Title.Caption = 'Common Name' Width = 100 Visible = True end item Expanded = False FieldName = 'Species Name' Width = 100 Visible = True end item Expanded = False FieldName = 'Length (cm)' Width = 62 Visible = True end item Expanded = False FieldName = 'Length_In' Title.Caption = 'Length (in)' Width = 102 Visible = True end item Expanded = False FieldName = 'Notes' Width = 150 Visible = True end item Expanded = False FieldName = 'Graphic' Width = 96 Visible = True end> end object Panel1: TPanel Left = 0 Top = 421 Width = 782 Height = 41 Align = alBottom TabOrder = 1 object Label1: TLabel Left = 12 Top = 12 Width = 77 Height = 13 Caption = 'Value to search:' end object ValueToSearch: TEdit Left = 92 Top = 9 Width = 185 Height = 21 TabOrder = 0 end object B_Search: TBitBtn Left = 284 Top = 8 Width = 69 Height = 25 Caption = 'Search' TabOrder = 1 OnClick = B_SearchClick Glyph.Data = { 76010000424D7601000000000000760000002800000020000000100000000100 04000000000000010000130B0000130B00001000000000000000000000000000 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 333333333333333333FF33333333333330003FF3FFFFF3333777003000003333 300077F777773F333777E00BFBFB033333337773333F7F33333FE0BFBF000333 330077F3337773F33377E0FBFBFBF033330077F3333FF7FFF377E0BFBF000000 333377F3337777773F3FE0FBFBFBFBFB039977F33FFFFFFF7377E0BF00000000 339977FF777777773377000BFB03333333337773FF733333333F333000333333 3300333777333333337733333333333333003333333333333377333333333333 333333333333333333FF33333333333330003333333333333777333333333333 3000333333333333377733333333333333333333333333333333} NumGlyphs = 2 end object B_SearchNext: TBitBtn Left = 360 Top = 8 Width = 69 Height = 25 Caption = 'Next' Enabled = False TabOrder = 2 OnClick = B_SearchNextClick Glyph.Data = { 76010000424D7601000000000000760000002800000020000000100000000100 04000000000000010000130B0000130B00001000000000000000000000000000 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000 FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 333333333333333333FF33333333333330003FF3FFFFF3333777003000003333 300077F777773F333777E00BFBFB033333337773333F7F33333FE0BFBF000333 330077F3337773F33377E0FBFBFBF033330077F3333FF7FFF377E0BFBF000000 333377F3337777773F3FE0FBFBFBFBFB039977F33FFFFFFF7377E0BF00000000 339977FF777777773377000BFB03333333337773FF733333333F333000333333 3300333777333333337733333333333333003333333333333377333333333333 333333333333333333FF33333333333330003333333333333777333333333333 3000333333333333377733333333333333333333333333333333} NumGlyphs = 2 Spacing = 10 end object DBNavigator1: TDBNavigator Left = 456 Top = 12 Width = 185 Height = 21 DataSource = DataSource1 VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast, nbRefresh] TabOrder = 3 end object B_ResizeCols: TBitBtn Left = 664 Top = 8 Width = 109 Height = 25 Caption = 'Resize Cols && Rows' TabOrder = 4 OnClick = B_ResizeColsClick NumGlyphs = 2 end end object Table1: TTable DatabaseName = 'BCDEMOS' Exclusive = True ReadOnly = True TableName = 'biolife.db' Left = 744 Top = 368 end object DataSource1: TDataSource DataSet = Table1 Left = 712 Top = 368 end end --- NEW FILE: JvUltimDBGridBDETest.res --- (This appears to be a binary file; contents omitted.) |