⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fwelcome.class

📁 Gambas is a graphical development environment based on a Basic interpreter, like Visual Basic. It us
💻 CLASS
字号:
' Gambas class fileSTATIC PRIVATE $sPath AS StringPRIVATE btnNew AS CCoolButtonPRIVATE btnOpen AS CCoolButtonPRIVATE btnRecent AS CCoolButtonPRIVATE btnExample AS CCoolButtonPRIVATE btnQuit AS CCoolButtonPRIVATE $iRecent AS IntegerPRIVATE $aExample AS String[]PRIVATE $bExample AS BooleanPRIVATE CONST LIST_NONE AS Integer = 0PRIVATE CONST LIST_RECENT AS Integer = 1PRIVATE CONST LIST_EXAMPLE AS Integer = 2PRIVATE CONST POS_BUTTON AS Integer = 128PRIVATE CONST HEIGHT_BUTTON AS Integer = 40STATIC PUBLIC FUNCTION Run() AS String  'DIM hForm AS Form  $sPath = ""  'hForm = NEW FWelcome  FWelcome.ShowModal()  RETURN $sPathENDPUBLIC SUB _new()  DIM iInd AS Integer  DIM hPict AS Picture  DIM hButton AS CCoolButton  DIM W AS Integer  DIM sFont AS String  DIM aList AS String[]  DIM sLastDir AS String  DIM sDir AS String  DIM Y AS Integer  DIM hLabel AS Label  sFont = ""  W = ME.ClientW - 16  svwRecent.Background = ME.Background  svwExample.Background = ME.Background  'lblList.Background = ME.Background  btnNew = NEW CCoolButton(ME, 8, POS_BUTTON, W, HEIGHT_BUTTON, ("New project..."), "img/welcome/new.png", sFont) AS "btnNew"  btnOpen = NEW CCoolButton(ME, 8, POS_BUTTON + HEIGHT_BUTTON, W, HEIGHT_BUTTON, ("Open project..."), "img/welcome/open.png", sFont) AS "btnOpen"  btnRecent = NEW CCoolButton(ME, 8, POS_BUTTON + HEIGHT_BUTTON * 2, W, HEIGHT_BUTTON, ("Recent projects"), "img/welcome/recent.png", sFont) AS "btnRecent"  btnExample = NEW CCoolButton(ME, 8, POS_BUTTON + HEIGHT_BUTTON * 3, W, HEIGHT_BUTTON, ("Examples"), "img/welcome/help.png", sFont) AS "btnExample"  btnQuit = NEW CCoolButton(ME, 8, POS_BUTTON + HEIGHT_BUTTON * 4, W, HEIGHT_BUTTON, ("Quit"), "img/welcome/quit.png", sFont) AS "btnQuit"  lblMessage.Width = lblMessage.Font.Width(lblMessage.Text) + 8  lblMessage.X = panMessage.Width  ' Fill recent list  aList = Project.Recent  FOR iInd = 0 TO aList.Count - 1    hButton = NEW CCoolButton(svwRecent, 0, iInd * 32, 1024, 32, File.Name(aList[iInd]), Project.GetIcon(aList[iInd], 24)) AS "btnOpenRecent"    hButton.Tag = aList[iInd]    hButton.ToolTip = File.Dir(aList[iInd])  NEXT  IF aList.Count = 0 THEN btnRecent.Enabled = FALSE  ' Fill sample list  $aExample = Project.GetExamples()  IF $aExample.Count = 0 THEN btnExample.Enabled = FALSE  lblVersion.Text = Subst(("version &1"), Project.Version)  IF Project.Recent.Count THEN    Toggle(LIST_RECENT)  ELSE    Toggle(LIST_EXAMPLE)  ENDIFENDPUBLIC SUB cvwRecent_Click()  $sPath = Project.Recent[Val(LAST.Key)]  ME.CloseENDPUBLIC SUB timMessage_Timer()  lblMessage.X = lblMessage.X - 1  IF lblMessage.X < (-lblMessage.Width) THEN    lblMessage.X = panMessage.Width  ENDIFENDPUBLIC SUB btnNew_Click()  $sPath = FNewProject.Run()  IF $sPath THEN ME.CloseENDPUBLIC SUB btnOpen_Click()  $sPath = Project.GetProject()  IF $sPath THEN ME.CloseENDPUBLIC SUB btnRecent_Click()  Toggle(LIST_RECENT)ENDPUBLIC SUB btnExample_Click()  Toggle(LIST_EXAMPLE)ENDPUBLIC SUB btnQuit_Click()  $sPath = ""  ME.Close(TRUE)ENDPRIVATE SUB Toggle(iState AS Integer)  'IF iState = $iRecent THEN  '  $iRecent = LIST_NONE  'ELSE    $iRecent = iState  'ENDIF  'ME.Border = Window.Resizable  IF $iRecent THEN    'btnQuit.Move(8, 216 + cvwRecent.H + 8)    'cvwRecent.Move(360 - cvwRecent.W, 216)    panList.Raise    svwRecent.Visible = $iRecent = LIST_RECENT    svwExample.Visible = $iRecent = LIST_EXAMPLE    panList.Visible = TRUE    IF $iRecent = LIST_RECENT THEN      lblList.Text = " " & ("Recent projects")    ELSE      lblList.Text = " " & ("Examples")    ENDIF  ELSE    panList.Visible = FALSE  ENDIF  IF $iRecent = LIST_EXAMPLE THEN FillExampleENDPUBLIC SUB btnOpenRecent_Click()  $sPath = LAST.Tag  ME.CloseENDPUBLIC SUB Form_KeyPress()  IF Key.Code = Key["Esc"] THEN    btnQuit_Click  ENDIFENDPUBLIC SUB Form_Resize()  DIM hCtrl AS Control  DIM W AS Integer  lblBackground.Width = ME.ClientW  imgGambas.X = Max(224, ME.ClientW - 16 - imgGambas.Width)  panMessage.Width = ME.ClientW - 48  panList.Resize(ME.ClientW - panList.X - 8, ME.ClientH - panList.Y - 8)  lblList.Move(4, 4, panList.ClientW - 8, 16)  svwExample.Move(4, lblList.Y + lblList.H + 4, panList.ClientW - 8, panList.ClientH - lblList.H - 12)  WITH svwExample    svwRecent.Move(.X, .Y, .W, .H)  END WITH'   W = ME.ClientW - 16'   btnNew.Resize(W, HEIGHT_BUTTON)'   btnOpen.Resize(W, HEIGHT_BUTTON)'   btnRecent.Resize(W, HEIGHT_BUTTON)'   btnExample.Resize(W, HEIGHT_BUTTON)'   btnQuit.Resize(W, HEIGHT_BUTTON)ENDPRIVATE SUB FillExample()  DIM sLastDir AS String  DIM sDir AS String  DIM Y AS Integer  DIM hButton AS CCoolButton  DIM hLabel AS Label  DIM iInd AS Integer  DIM sPath AS String  IF $bExample THEN RETURN  INC Application.Busy  sLastDir = ""  Y = 0  FOR iInd = 0 TO $aExample.Count - 1    sPath = $aExample[iInd]    sDir = File.Dir(sPath)    IF sDir <> sLastDir THEN      sLastDir = sDir      hLabel = NEW Label(svwExample)      hLabel.Move(0, Y, 1024, 16)      'hLabel.Alignment = Align.BottomNormal      hLabel.Text = " " & sDir      hLabel.Font = Font["8"]      hLabel.BackColor = &HC0E8FF      Y = Y + hLabel.H    ENDIF    hButton = NEW CCoolButton(svwExample, 0, Y, 1024, 32, File.Name(sPath), Project.GetIcon(Project.EXAMPLES_DIR &/ sPath, 24)) AS "btnOpenRecent"    Y = Y + 32    hButton.Tag = Project.EXAMPLES_DIR &/ sPath  NEXT  $bExample = TRUEFINALLY  DEC Application.BusyENDPUBLIC SUB Form_Open()  Config.LoadWindow(ME, "/FWelcome")ENDPUBLIC SUB Form_Close()  Config.SaveWindow(ME, "/FWelcome")END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -