ehlib 用法记录

时间:2025-02-08 16:07:32

点列头排序

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 := ;
column.FieldName := 'name';
     TColumnEh * column;
column = DBGridEh1->Columns->Add( );
column->FieldName = "name";
column->Title->Caption = "姓名";
column->Width = ;

这个父容器释放的时候会自动释放,所以不存在内存泄漏。

尾行合计

方法:双击grideh打开字段列表;选择需要求和的字段,有个属性Footer

https://blog.****.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< then Caption:=''; 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 <= + *(DBGridEh1.Row-) ) then
self.DBGridEh1.InplaceEditor.Top := self.DBGridEh1.InplaceEditor.Top+ ;
end; // self.Caption:='cc';
end;