Author Topic: Egrid Pro 的慣常使用方式(程式碼取自QrCodeXtra)  (Read 3796 times)

admin

  • Administrator
  • *****
  • Posts: 0
    • View Profile
Egrid Pro 的慣常使用方式(程式碼取自QrCodeXtra)
« on: December 04, 2011, 04:17:06 PM »
初始化 Egrid 的欄數,列數,大小, 欄目名稱等
Code: [Select]
Sub FRMBROWSEDATA_InitGrid

    SendMessage (HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_FULLLINEMODE , %TRUE, 0)
    SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_SETSELSHOWSTATE, %TRUE, 0)

    SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_SHOWCOLHEADER, %true, 0)
    SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_SHOWROWHEADER, %FALSE, 0) 
    SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_SETDEFAULTROWHEIGHT, 25, 0)
    SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_SETDEFAULTROWHEIGHT, 26, 0)
    SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_SETEDITLOCK, %TRUE, 0)
 
    EG_SetColumnCount HWND_FRMBROWSEDATA_EGRDBROWSE,5,30
    EG_RemoveAllRows  HWND_FRMBROWSEDATA_EGRDBROWSE

    SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_SETCOLUMNSIZE, %cntautoid, 80 )     
    EG_SetColumnHeaderCaption(HWND_FRMBROWSEDATA_EGRDBROWSE ,%cntautoid,"Auto ID")
    EG_SetColumnBothAlignment ( HWND_FRMBROWSEDATA_EGRDBROWSE ,%cntautoid, %TA_center,%TA_Center)

    SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_SETCOLUMNSIZE, %cntDatatype, 200 )
    EG_SetColumnHeaderCaption(HWND_FRMBROWSEDATA_EGRDBROWSE ,%cntdatatype,"Data Type")
    EG_SetColumnBothAlignment ( HWND_FRMBROWSEDATA_EGRDBROWSE ,%cntdatatype, %TA_left,%TA_center)
   
    SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_SETCOLUMNSIZE, %cntcontents, 530 )
    EG_SetColumnHeaderCaption(HWND_FRMBROWSEDATA_EGRDBROWSE ,%cntcontents,"Contents")
    EG_SetColumnBothAlignment ( HWND_FRMBROWSEDATA_EGRDBROWSE ,%cntcontents, %TA_left,%TA_center)
   
    SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_SETCOLUMNSIZE, %cntlastupdate, 160 )
    EG_SetColumnBothAlignment (HWND_FRMBROWSEDATA_EGRDBROWSE ,%cntlastupdate,%TA_center,%TA_Center)
    EG_SetColumnHeaderCaption(HWND_FRMBROWSEDATA_EGRDBROWSE ,%cntlastupdate,"Last Update")
   
    EG_SetColumnHeaderVerticalAlignment( HWND_FRMBROWSEDATA_EGRDBROWSE,%TA_Center)
    EG_SetColumnHeaderHorizonAlignment( HWND_FRMBROWSEDATA_EGRDBROWSE,%TA_CENTER)
           
    EG_SetColumnVisible(HWND_FRMBROWSEDATA_EGRDBROWSE,%cntDataTypeID,%false)             
           
End Sub


填入資料表至表格內
Code: [Select]
Sub FRMBROWSEDATA_FillegrdBrowse
    Dim tmpSQL As String
    Dim tmpData As String
    Dim lngErrNum As Long
   
    tmpsql="select a.*,b.qrdatadesc from (qrdatarecord a left join qrdatatype b on a.datatype=b.autoid) order by autoid desc"
     
    slSel tmpsql
   
    lngErrNum = slGetErrorNumber
    If lngErrNum <> 0 Then
        MsgBox "Error Number is: " & Str$(lngErrNum), 0, "Error"
    Else
      Do While slGetRow
        tmpdata= slFN("autoid")
        tmpdata=  tmpdata & $Tab & slFN("qrdatadesc")
        tmpdata=  tmpdata & $Tab & Trim$(Utf8ToChr$(slFN("contents")))
        tmpdata=  tmpdata & $Tab & DbltoDateTime(Val( slFN("lastupdate")))
        tmpdata=  tmpdata & $Tab & slFN("datatype")
        EG_AddRowData HWND_FRMBROWSEDATA_EGRDBROWSE,tmpdata

      Loop
   
    End If
   
    slCloseSet

End Sub

反白目前的列
Code: [Select]
Function FRMBROWSEDATA_EGRDBROWSE_EGN_SELECTIONCHANGED (ControlIndex As Dword, HwndForm As Dword, hEGrid As Long, wParam As Dword, lParam As Long) As Long

  Local EGN As EgridNotify Ptr
  Local nCols As Long
 
  EGN = lParam

  nCols = SendMessage (HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_GetMaxColumns, 0, 0)

  @EGN.Selec.SX1 = 1
  @EGN.Selec.SX2 = nCols 
 

End Function


按欄目名稱排序當前欄位
Code: [Select]
Function FRMBROWSEDATA_EGRDBROWSE_EGN_HEADERLEFTCLICK (ControlIndex As Dword, HwndForm As Dword, hEGrid As Long, wParam As Dword, lParam As Long) As Long
 
  Local EGN As EgridNotify Ptr
  Local tmpRows As Long
  EGN = lParam

 tmprows = SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_GETMAXROWS, 0, 0)
 SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_INTERNALSELECTUD, 1,tmprows)
 SendMessage(HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_SORTCOLUMN, @EGN.CELL.X, %EG_SORTTEXT Or %EG_SHOWDIRECTION   Or %EG_TOGGLE)
 SendMessage (HWND_FRMBROWSEDATA_EGRDBROWSE, %EG_REFRESHALL, 0, 0)

'ztrace Str$(tmprows)

End Function
« Last Edit: December 04, 2011, 07:36:15 PM by Roy Chan »