uniGUI試用筆記(十一)


最近研究了一下UniGUI的TuniDBGrid,記錄一下免得忘記了。

TuniDBGrid的重要屬性包括:

1、列—TUniDBGridColumns和TUniDBGridColumn

每個列對象(TUniDBGridColumn)的重要屬性包括:

  • CheckBoxField : TUniCheckBoxField

列作為CheckBox操作的相關屬性

屬性

類型

說明

AutoPost

Boolean

當用戶點選CheckBox后,改變前端顯示並根據該屬性決定:

True—立即自動提交到數據集中並刷新前端顯示

False—只改變前端顯示,當記錄滾動時再提交數據集

BooleanFieldOnly

Boolean

是否只針對Boolean字段,

True—只能識別Boolean字段,非Boolean字段將不能顯示CheckBox

False—DisplayValues和FieldValues可以針對非Boolean字段進行處理

Enabled

Boolean

是否允許顯示CheckBox

DisplayValues/

FieldValues

string

聯合決定了CheckBox不同狀態下對應的值,FieldValues存儲字段值,DisplayValues存儲顯示文字,如果空白就表示不顯示文字,只顯示CheckBox,每個值通過分號(;)區分,文字顯示CheckBox的右側。如下圖:

image

  • DisplayMemo:Boolean

對TMemoField而言,是否顯示(Memo)字樣,缺省為False

False—不顯示字段內容,顯示(Memo)字樣

True—不顯示(Memo)字樣,而是直接顯示字段內容

  • Filtering : TUniColumnFilter

在列標題下顯示過濾編輯框,自動對列數據進行過濾,如下圖:

image

參考Demos下的GridFilter例子。要實現該功能,必須:

     A.放一個TUniHiddenPanel控件在窗體上,然后將TUniEdit、TUniComboBox 、TUniDBLookupComboBox等控件放置在這個隱藏的Panel上,如下圖:

image

      B.設置每個列的Filtering,將其Editor屬性設置對應的編輯控件

      C. 對編輯控件進行相關屬性設置,如TUniDBLookupComboBox需要設置ListSource等

屬性

類型

說明

ChangeDelay

Integer

當用戶鍵入字符后,延時進行過濾處理的毫秒數

Editor

TControl

過濾的輸入框,按照輸入框內容進行過濾。TUniDBLookupComboBox按照KeyField的值進行過濾

Enabled

Boolean

是否允許進行過濾

  • GroupHeader和GroupHeaderSeparator

多欄顯示表頭,如GroupHeader = a;b;c 時的樣式見下圖:

image

  • ShowSummary:Boolean

是否顯示合計值,與Grid的Summary的屬性聯合使用。

  • Sortable:Boolean

是否允許進行排序操作。允許排序操作時,在字段名稱旁顯示排序符號,並且在Menu中的排序菜單是可用的,如下圖:

image

  • Editor : TControl;

對該字段進行編輯時,對應的單元采用怎樣的控件進行處理,這個功能非常強大,如設置TuniComboBox作為Editor則完全替代字段Picklist的功能,如下圖:

image

  • Memu(TUniColumnMenu)

對列標題下拉顯示的菜單進行控制

屬性

類型

說明

ColoumnHideable

Boolean

是否允許隱藏字段,缺省True,即允許用戶通過勾選隱藏指定的列,如下圖:

image

MenuEnabled

Boolean

是否允許顯示列的菜單

MenuText

String

該列顯示在菜單上的文字,缺省為空,表示顯示字段DisplayLabel,否則顯示該文字。如下圖:

image

  • ImageOptions

當該字段需要顯示圖片時,聯合使用ImageOptions屬性和OnFieldImage事件,其中:

屬性

類型

說明

Height/Width

Integer

顯示圖片的大小

Visible

Boolean

是否顯示圖片,True則觸發OnFieldImage事件進行圖片處理,如:

procedure TMainForm.UniDBGrid1FieldImage(const Column: TUniDBGridColumn;

const AField: TField; var OutImage: TGraphic; var DoNotDispose: Boolean;

var ATransparent: TUniTransparentOption);

begin

if SameText(AField.FieldName, 'gender') then

begin

// 代碼處理圖片

DoNotDispose := True;

// 根據字段值返回圖片

if AField.AsString = 'male' then

OutImage := UniImage1.Picture.Graphic

else if AField.AsString = 'female' then

OutImage := UniImage2.Picture.Graphic;

end;

end;

該方法可以讓列顯示某項圖片按鈕,如:

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM