点列头排序
1.add ehlibado.pas to project.
2.grideh>ColumnDefValues>Title>TitleButton=true;
3.grideh>SortLocal=true;
4.grideh>optionsEh>dghAutoSortMarking=true;
install component
open ehlib.dpk,replace ,then install ok!
in ' replace to in '..Common
grideh隔行变色:EvenRowColor/OddRowColor
grid的title:渐变色,TitleParams.FillStyle=cfstGradientEh
动态创建Grid列
var column : TColumnEh; begin self.DBGridEh1.Columns.AddAllColumns( true ); column := self.DBGridEh1.Columns.Add; column.Title.Caption := '姓名'; column.Width := 70; column.FieldName := 'name';
TColumnEh * column; column = DBGridEh1->Columns->Add( ); column->FieldName = "name"; column->Title->Caption = "姓名"; column->Width = 70;
这个父容器释放的时候会自动释放,所以不存在内存泄漏。
尾行合计
方法:双击grideh打开字段列表;选择需要求和的字段,有个属性Footer
https://blog.csdn.net/yanjinrong/article/details/43816369
GridEH编辑框当前单元格的值,正在编辑的值,正在输入的值,当前输入的值
self.DBGridEh1.InplaceEditor.Text
if Grid.InplaceEditorVisible then
Result := Grid.InplaceEditor.Text
Result := Grid.InplaceEditor.top
让进入编辑模式
DBGridEh1.EditorMode:=True;
InplaceEditor本质上是MaskEdit
TInplaceEdit = class(TCustomMaskEdit)
procedure TCustomDBGridEh.ShowEditor;
procedure TCustomDBGridEh.UpdateEdit; //计算位置
function TCustomDBGridEh.CellEditRect(ACol, ARow: Longint): TRect;
DBGridEh.pas
function TCustomDBGridEh.CellEditRect(ACol, ARow: Longint): TRect;
// abscrect.top :=abscrect.top+ 20;
Result.top:= abscrect.top;
grideh编辑框垂直居中
procedure TForm12.DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); var acol,arow:Integer; arect:TRect; begin if self.DBGridEh1.TitleHeight<5 then Caption:='0'; if (self.DBGridEh1.InplaceEditor<>nil) and(self.DBGridEh1.InplaceEditor.Visible) then //and (self.DBGridEh1.InplaceEditor.Top<=(25+ (self.FDMemTable1.RecNo-1)*(self.DBGridEh1.RowHeight+1) ) then begin arect:= self.DBGridEh2.CellRectAbs(DataCol,DBGridEh1.Row,true); self.Caption := Format('%d,%d,%d,%d',[DBGridEh1.Row, arect.Top,DBGridEh1.InplaceEditor.Top,DBGridEh1.InplaceEditor.Height]); DBGridEh1.InplaceEditor.Alignment := taCenter; if( DBGridEh1.InplaceEditor.Top <= 25+ 41*(DBGridEh1.Row-1) ) then self.DBGridEh1.InplaceEditor.Top := self.DBGridEh1.InplaceEditor.Top+10 ; end; // self.Caption:='cc'; end;