📄 frequest.class
字号:
' Gambas class filePRIVATE $hConn AS ConnectionPRIVATE $rData AS ResultPUBLIC SUB _new(hConn AS Connection, rData AS Result) $hConn = hConn $rData = rData RefreshTitle ReadData ME.Move(Int(Rnd(Desktop.W - ME.W)), Int(Rnd(Desktop.H - ME.H)))ENDPRIVATE SUB RefreshTitle() DIM sTitle AS String sTitle = ("SQL request") & " - " & $hConn.Name ME.Title = sTitle ENDPRIVATE SUB ReadData() DIM hTable AS Table DIM hField AS ResultField DIM sField AS String DIM iInd AS Integer DIM iLen AS Integer INC Application.Busy tbvData.Rows.Count = 0 tbvData.Columns.Count = $rData.Fields.Count FOR EACH hField IN $rData.Fields WITH hField 'PRINT .Name; ": "; .Type; " "; .Length tbvData.Columns[iInd].Text = .Name tbvData.Columns[iInd].Width = WidthFromType(tbvData, .Type, .Length, .Name) END WITH INC iInd NEXT tbvData.Rows.Count = $rData.Count FINALLY DEC Application.Busy CATCH Message.Error("Cannot exec request." & "\n\n" & Error.Text) ENDPUBLIC SUB tbvData_Data(Row AS Integer, Column AS Integer) $rData.MoveTo(Row) tbvData.Data.Text = Str($rData[tbvData.Columns[Column].Text]) ENDPUBLIC SUB Form_Resize() tbvData.Resize(ME.ClientW, ME.ClientH) ENDPRIVATE FUNCTION WidthFromType(hCtrl AS control, iType AS Integer, iLength AS Integer, sTitle AS String) AS Integer DIM iWidth AS Integer SELECT CASE iType CASE gb.Boolean iWidth = hCtrl.Font.Width(Str(FALSE)) + 32 CASE gb.Integer iWidth = hCtrl.Font.Width("1234567890") + 16 CASE gb.Float iWidth = hCtrl.Font.Width(CStr(Pi) & "E+999") + 16 CASE gb.Date iWidth = hCtrl.Font.Width(Str(Now)) + 16 CASE gb.String IF iLength = 0 THEN iLength = 255 iLength = Min(32, iLength) iWidth = hCtrl.Font.Width("X") * iLength + 16 END SELECT iWidth = Max(iWidth, hCtrl.Font.Width(sTitle) + 8) RETURN iWidth END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -