TActionListDemo 项目分析¶
项目信息¶
- 项目名称: TActionListDemo
- 下载链接: TActionListDemo.rar
- 分析时间: 2026-03-05
文件结构¶
TActionListDemo/
├── Extractor_Icon.ico
├── Project1.py
├── Project1.xml
├── Unit1.py
├── Unit1.pydfm
├── Unit1.sct
├── Unit1.sfm
主程序文件: Project1.py¶
from glcl import *
from Unit1 import *
def main():
Application.Initialize()
Application.Title = 'Project1'
Application.MainFormOnTaskbar = True
Application.Icon.LoadFromFile(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Extractor_Icon.ico"))
MainForm = Form1(Application)
MainForm.Show()
FreeConsole()
Application.Run()
MainForm.Free()
if __name__ == '__main__':
main()
单元文件: Unit1.py¶
import os
from glcl import *
class Form1(Form):
def __init__(self, owner): # 构造函数,接收一个参数 owner
self.ListBox1 = ListBox(self)
self.PopupMenu1 = PopupMenu(self)
self.MainMenu1 = MainMenu(self)
self.ActionList1 = ActionList(self)
self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Unit1.pydfm"))
# 注意:动作是选中ActionList然后右键弹出菜单选择Action List Editor创建
self.actClear.OnExecute = self.actClearExecute # 绑定清空动作的执行方法
self.actDelete.OnExecute = self.actDeleteExecute # 绑定删除动作的执行方法
self.actAdd.OnExecute = self.actAddExecute # 绑定添加动作的执行方法
def actAddExecute(self, Sender): # 添加水果的执行方法
newFruit = Application.InputBox('请输入水果名', '水果', '') # 弹出输入框请求水果名
self.ListBox1.Items.Add(newFruit) # 将输入的水果名添加到列表框中
def actDeleteExecute(self, Sender): # 删除水果的执行方法
selIndex = self.ListBox1.ItemIndex # 获取选中的列表项索引
if selIndex != -1: # 如果有选中项
self.ListBox1.Items.Delete(selIndex) # 从列表中删除选中的项
else: # 如果没有选中项
Application.MessageBox('当前未选中水果', '提示', MB_ICONINFORMATION) # 显示提示信息
def actClearExecute(self, Sender): # 清空列表的执行方法
self.ListBox1.Clear() # 清空列表框中的所有项
设计文件: Unit1.sct¶
def actAddExecute(Sender):
def actDeleteExecute(Sender):
def actClearExecute(Sender):
设计文件: Unit1.sfm¶
object Form1: TForm
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 338
ClientWidth = 490
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -15
Font.Name = 'Segoe UI'
Font.Style = []
Menu = MainMenu1
TextHeight = 20
object ListBox1: TListBox
Left = 24
Top = 24
Width = 441
Height = 257
ItemHeight = 20
Items.Strings = (
#33529#26524
#39321#34121
#33889#33796
#30707#27060
#30058#33540
#21704#23494#29916
#26586#23376
#24067#26519
#35199#29916)
PopupMenu = PopupMenu1
TabOrder = 0
end
object ActionList1: TActionList
Left = 456
Top = 296
object actAdd: TAction
Caption = #22686#21152#27700#26524
OnExecute = actAddExecute
end
object actDelete: TAction
Caption = #21024#38500#27700#26524
OnExecute = actDeleteExecute
end
object actClear: TAction
Caption = #28165#31354#27700#26524
OnExecute = actClearExecute
end
end
object MainMenu1: TMainMenu
Left = 392
Top = 296
object MenuItem5: TMenuItem
Caption = 'MenuItem5'
object MenuItem10: TMenuItem
Caption = 'MenuItem10'
end
end
object MenuItem4: TMenuItem
Caption = 'MenuItem4'
object MenuItem9: TMenuItem
Caption = 'MenuItem9'
end
end
object MenuItem3: TMenuItem
Caption = #32534#36753
object MenuItem8: TMenuItem
Action = actAdd
end
object MenuItem16: TMenuItem
Action = actDelete
end
object MenuItem17: TMenuItem
Action = actClear
end
end
object MenuItem2: TMenuItem
Caption = 'MenuItem2'
object MenuItem7: TMenuItem
Caption = 'MenuItem7'
end
end
object MenuItem1: TMenuItem
Caption = 'MenuItem1'
object MenuItem6: TMenuItem
Caption = 'MenuItem6'
end
end
end
object PopupMenu1: TPopupMenu
Left = 424
Top = 296
object MenuItem11: TMenuItem
Action = actAdd
end
object MenuItem12: TMenuItem
Action = actDelete
end
object MenuItem13: TMenuItem
Action = actClear
end
end
end
其他文件¶
- Extractor_Icon.ico
- Project1.xml
详细分析¶
功能概述¶
GUI组件演示
使用的组件¶
- Form1 (TForm)
- ListBox1 (TListBox)
- ActionList1 (TActionList)
- actAdd (TAction)
- actDelete (TAction)
- actClear (TAction)
- MainMenu1 (TMainMenu)
- MenuItem5 (TMenuItem)
- MenuItem10 (TMenuItem)
- MenuItem4 (TMenuItem)
- MenuItem9 (TMenuItem)
- MenuItem3 (TMenuItem)
- MenuItem8 (TMenuItem)
- MenuItem16 (TMenuItem)
- MenuItem17 (TMenuItem)
- MenuItem2 (TMenuItem)
- MenuItem7 (TMenuItem)
- MenuItem1 (TMenuItem)
- MenuItem6 (TMenuItem)
- PopupMenu1 (TPopupMenu)
- MenuItem11 (TMenuItem)
- MenuItem12 (TMenuItem)
- MenuItem13 (TMenuItem)
技术特点¶
- 包含23个GUI组件
- 定义0个事件处理
窗体属性¶
- caption: MenuItem6
- height: 338
- width: 490
代码分析¶
导入的模块: - import os - from glcl import *
定义的类: - Form1
定义的方法: - init - actAddExecute - actDeleteExecute - actClearExecute