📄 ccoolbutton.class
字号:
' Gambas class filePROPERTY Enabled AS BooleanPROPERTY ToolTip AS StringPUBLIC Tag AS StringPRIVATE $hPanel AS PanelPRIVATE $hImage AS PictureBoxPRIVATE $hLabel AS LabelEVENT Click()PUBLIC SUB _new(hContainer AS Container, X AS Integer, Y AS Integer, W AS Integer, H AS Integer, sText AS String, vICon AS Variant, OPTIONAL sFont AS String) DIM hPict AS Picture $hPanel = NEW Panel(hContainer) AS "Panel" $hPanel.Move(X, Y, W, H) $hPanel.Mouse = Mouse.Pointing IF TypeOf(vIcon) = gb.String THEN hPict = Picture[vIcon] ELSE hPict = vIcon ENDIF $hImage = NEW PictureBox($hPanel) AS "Panel" $hImage.Move(8, 4, hPict.Width, H - 8) $hImage.Alignment = Align.Center $hImage.Picture = hPict $hLabel = NEW Label($hPanel) AS "Panel" $hLabel.Move($hImage.X + $hImage.W + 8, 4, W - ($hImage.X + $hImage.W + 8) - 8, H - 8) $hLabel.Alignment = Align.Left $hLabel.Text = sText '$hLabel.Foreground = Color.White IF sFont THEN $hLabel.Font = Font[sFont]ENDPUBLIC SUB Panel_Enter() IF Object.Type(LAST) <> "Panel" THEN RETURN LAST.BackColor = &88D5FF&ENDPUBLIC SUB Panel_Leave() IF Object.Type(LAST) <> "Panel" THEN RETURN LAST.BackColor = LAST.Window.BackgroundENDPRIVATE FUNCTION GetPanel() AS Panel DIM hPanel AS Panel TRY hPanel = LAST IF ERROR THEN hPanel = LAST.Parent ENDIF RETURN hPanelENDPUBLIC SUB Panel_MouseDown() GetPanel().Border = Border.Sunken $hLabel.Move($hLabel.X + 1, $hLabel.Y + 1) $hImage.Move($hImage.X + 1, $hImage.Y + 1)ENDPUBLIC SUB Panel_MouseUp() DIM hPanel AS Panel DIM X AS Integer DIM Y AS Integer hPanel = GetPanel() hPanel.Border = Border.None X = Mouse.X Y = Mouse.Y IF LAST <> hPanel THEN X = X + LAST.X Y = Y + LAST.Y ENDIF $hLabel.Move($hLabel.X - 1, $hLabel.Y - 1) $hImage.Move($hImage.X - 1, $hImage.Y - 1) IF (X >= 0 AND Y >= 0 AND X < hPanel.W AND Y < hPanel.H) THEN RAISE Click() ELSE 'PRINT "Pas Click !"; X; " "; Y; " "; hPanel.W; " "; hPanel.H ENDIFENDPRIVATE FUNCTION Enabled_Read() AS Boolean RETURN $hPanel.EnabledENDPRIVATE SUB Enabled_Write(bEnabled AS Boolean) $hPanel.Enabled = bEnabledENDPUBLIC SUB Move(X AS Integer, Y AS Integer) $hPanel.Move(X, Y)ENDPUBLIC SUB Resize(W AS Integer, H AS Integer) $hPanel.Resize(W, H) $hLabel.Resize(W - ($hImage.X + $hImage.W + 8) - 8, H - 8)ENDPRIVATE FUNCTION ToolTip_Read() AS String RETURN $hPanel.ToolTipENDPRIVATE SUB ToolTip_Write(sToolTip AS String) $hPanel.ToolTip = sToolTip '$hImage.ToolTip = sToolTip '$hLabel.ToolTip = sToolTipEND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -