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

📄 cclassinfo.class

📁 Gambas is a graphical development environment based on a Basic interpreter, like Visual Basic. It us
💻 CLASS
字号:
' Gambas class filePUBLIC Name AS StringPUBLIC Parent AS StringPUBLIC Symbols AS CollectionPUBLIC Creatable AS BooleanPUBLIC AutoCreatable AS BooleanPUBLIC Component AS StringPUBLIC ParentComponent AS StringPUBLIC DefaultEvent AS StringPUBLIC Events AS String[]PUBLIC PropertyList AS String[]PUBLIC Properties AS CollectionPUBLIC VirtualControl AS BooleanPUBLIC SUB _new(sName AS String, OPTIONAL sParent AS String)  DIM hSym AS CSymbolInfo  Name = sName  Parent = sParent  Symbols = NEW Collection(gb.Text)  IF Parent THEN    ParentComponent = CComponent.Classes[sParent].Component    FOR EACH hSym IN CComponent.Classes[sParent].Symbols      Symbols[hSym.Name] = hSym    NEXT  ENDIFENDPUBLIC SUB InitControl(hWin AS Form)  DIM aProp AS String[]  DIM sProp AS String  DIM hProp AS CPropertyInfo  DIM hSym AS CSymbolInfo  DIM hCtrl AS Object  IF NOT Symbols.Exist("_Properties") THEN RETURN    IF CComponent.All[Component].Type = "Form" THEN    IF Name = "Form" OR Name = "Control" THEN      hCtrl = hWin    ENDIF  ENDIF    IF NOT hCtrl THEN    hSym = Symbols["_new"]    'PRINT Name; " -> "; hSym.Signature    IF Len(hSym.Signature) AND Left$(hSym.Signature) <> "[" THEN      TRY hCtrl = New(Name, hWin)    ELSE      TRY hCtrl = New(Name)      'PRINT "InitControl: "; Name; " is VIRTUAL"      VirtualControl = TRUE    ENDIF    IF NOT hCtrl THEN hCtrl = NEW Frame(hWin)  ENDIF  hSym = Symbols["_Properties"]  Properties = NEW Collection  FOR EACH sProp IN Split(hSym.Value)    ' Name could be "xxx=y"    hProp = NEW CPropertyInfo(Component, Name, sProp, hCtrl, FALSE, VirtualControl)    Properties[hProp.Name] = hProp  NEXT  DefaultEvent = Symbols["_DefaultEvent"].Value  Events = NEW String[]  FOR EACH hSym IN Symbols    IF hSym.Kind = ":" THEN      Events.Add(Mid$(hSym.Name, 2))    ENDIF  NEXT  Events.Sort  ' Modification des propriétés  PropertyList = NEW String[]  FOR EACH hProp IN Properties    PropertyList.Add(hProp.Name)  NEXT  Properties[CPropertyInfo.EVENT_NAME] = NEW CPropertyInfo(Component, Name, CPropertyInfo.EVENT_NAME, NULL)  PropertyList.Add(CPropertyInfo.EVENT_NAME, 0)  'IF Name = "Timer" THEN  IF VirtualControl THEN    Properties["X"] = NEW CPropertyInfo("", "", "X", hWin, TRUE)    PropertyList.Add("X", 1)    Properties["Y"] = NEW CPropertyInfo("", "", "Y", hWin, TRUE)    PropertyList.Add("Y", 2)  ENDIF  IF hCtrl <> hWin THEN    TRY hCtrl.Delete  ENDIFENDPUBLIC FUNCTION GetProperties() AS Collection  IF Properties THEN    IF Properties.Count THEN      RETURN Properties    ENDIF  ENDIF  IF Parent THEN    RETURN CComponent.Classes[Parent].GetProperties()  ENDIFENDPUBLIC FUNCTION Inherits(sClass AS String) AS Boolean    IF Parent = sClass THEN RETURN TRUE  IF NOT Parent THEN RETURN FALSE  RETURN CComponent.Classes[Parent].Inherits(sClass)  END

⌨️ 快捷键说明

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