ccoolbutton.class

来自「Gambas is a graphical development enviro」· CLASS 代码 · 共 155 行

CLASS
155
字号
' 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 + =
减小字号Ctrl + -
显示快捷键?