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的右側。如下圖: |
- DisplayMemo:Boolean
對TMemoField而言,是否顯示(Memo)字樣,缺省為False
False—不顯示字段內容,顯示(Memo)字樣
True—不顯示(Memo)字樣,而是直接顯示字段內容
- Filtering : TUniColumnFilter
在列標題下顯示過濾編輯框,自動對列數據進行過濾,如下圖:
參考Demos下的GridFilter例子。要實現該功能,必須:
???? A.放一個TUniHiddenPanel控件在窗體上,然后將TUniEdit、TUniComboBox 、TUniDBLookupComboBox等控件放置在這個隱藏的Panel上,如下圖:
????? B.設置每個列的Filtering,將其Editor屬性設置對應的編輯控件
????? C. 對編輯控件進行相關屬性設置,如TUniDBLookupComboBox需要設置ListSource等
| 屬性 | 類型 | 說明 |
| ChangeDelay | Integer | 當用戶鍵入字符后,延時進行過濾處理的毫秒數 |
| Editor | TControl | 過濾的輸入框,按照輸入框內容進行過濾。TUniDBLookupComboBox按照KeyField的值進行過濾 |
| Enabled | Boolean | 是否允許進行過濾 |
- GroupHeader和GroupHeaderSeparator
多欄顯示表頭,如GroupHeader = a;b;c 時的樣式見下圖:
- ShowSummary:Boolean
是否顯示合計值,與Grid的Summary的屬性聯合使用。
- Sortable:Boolean
是否允許進行排序操作。允許排序操作時,在字段名稱旁顯示排序符號,并且在Menu中的排序菜單是可用的,如下圖:
- Editor : TControl;
對該字段進行編輯時,對應的單元采用怎樣的控件進行處理,這個功能非常強大,如設置TuniComboBox作為Editor則完全替代字段Picklist的功能,如下圖:
- Memu(TUniColumnMenu)
對列標題下拉顯示的菜單進行控制
| 屬性 | 類型 | 說明 |
| ColoumnHideable | Boolean | 是否允許隱藏字段,缺省True,即允許用戶通過勾選隱藏指定的列,如下圖: |
| MenuEnabled | Boolean | 是否允許顯示列的菜單 |
| MenuText | String | 該列顯示在菜單上的文字,缺省為空,表示顯示字段DisplayLabel,否則顯示該文字。如下圖: |
- 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; |
該方法可以讓列顯示某項圖片按鈕,如:
轉載于:https://www.cnblogs.com/ChinaEHR/p/4275122.html
總結
以上是生活随笔為你收集整理的uniGUI试用笔记(十一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对象之function
- 下一篇: Counting power sets