首页 > 其他分享 >【电子量产工具】5.页面系统

【电子量产工具】5.页面系统

时间:2023-09-08 12:32:28浏览次数:39  
标签:__ Run name 量产 工具 main ptTmp 页面

@TOC

前言

最近看了 电子量产工具 这个项目,本专栏是对该项目的一个总结。


一、页面系统分析

【电子量产工具】5.页面系统_数据结构

页面系统是指在软件应用或网站中,将功能和内容划分为不同的页面,并通过页面间的导航和交互来展示信息和实现用户操作的一种组织方式。

页面系统通常由多个页面组成,每个页面都有自己的功能和呈现内容。用户可以通过导航菜单、链接、按钮等方式在不同的页面之间进行切换和操作。

这里主要是编写 main page 主页面。

二、页面数据结构抽象

对于每一个页面,抽象出如下结构体,核心在于其中的 Run 函数页面结构体中 ,描述了 页面的名字运行函数,以及指针 用于连接链表。

typedef struct PageAction {
	char *name;
	void (*Run)(void *pParams);
	struct PageAction *ptNext;
}PageAction, *PPageAction;

三、底层代码 main_page.c

  1. 实现 PageAction 结构体。
static PageAction g_tMainPage = {
	.name = "main",
	.Run  = MainPageRun,					//主页面的运行函数
};
  1. 运行函数我们先在运行函数里 打印行数,为 业务系统做准备。
static void MainPageRun(void *pParams)
{
	printf("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);
}

四、页面管理器

  1. 中间的 页面管理层,起承上启下的作用:
  • 把下面的各个页面注册进来。
  • 上层可以选择并运行某个界面。
  1. 页面管理器用来管理页面,只需要实现 2 个函数:
  • PagesRegister: 把多个页面注册进链表。
  • Page(name):取出某个页面。
  1. 将页面 注册进链表:这里由于页面肯定不止一个,可以注册多个页面。
  2. 根据 名字 取出某个页面。
PPageAction Page(char *name)
{
	PPageAction ptTmp = g_ptPages;				//临时指针指向 头指针

	while (ptTmp)
	{
		if (strcmp(name, ptTmp->name) == 0)			//比较名字是否相同
			return ptTmp;
		ptTmp = ptTmp->ptNext;					//遍历链表
	}

	return NULL;
}

五、测试程序

int main(int argc, char **argv)
{
	PagesRegister();				//注册界面
	Page("main")->Run(NULL);		//运行 Run 函数
	return 0;	
}

测试效果

效果就是 打印出 Run 函数 的行号。

【电子量产工具】5.页面系统_数据结构_02


总结

总体来说,页面系统的代码并不复杂。 主要是为下面的 业务系统做铺垫。

标签:__,Run,name,量产,工具,main,ptTmp,页面
From: https://blog.51cto.com/u_16159289/7408476

相关文章

  • 使用HeidiSQL工具导出导入MariaDB数据的正确方法
    这个开源工具,用来导数据确实好使,而且可以一次导多个数据库甚至多个连接导出:1.首先在数据库或表上右键--点击"导出数据为sql脚本"2.左边栏就可以选择数据库或者表,甚至连接3.右边是各种参数,重要的:最大insert如果填0是逐条,会很慢,默认即可;文件路径注意:它不会检测是否有......
  • el-input 回车事件keydown刷新页面(白屏)
    因为触发了form表单的事件,禁用即可,@submit.prevent<el-form:model="form"[email protected]><el-form-itemlabel=""><el-inputv-model="form.code"placeholder=""......
  • 界面控件DevExpress WinForms工具栏菜单组件,模拟流行办公软件!
    DevExpressWinForms的工具栏和菜单组件灵感来自于MicrosoftOffice,并针对WinForms开发人员进行了优化,可以帮助开发者快速模拟当下流行的办公软件应用程序。DevExpressWinForms有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。同时能完美构建流畅、美观且......
  • Codeium:免费的AI驱动代码加速工具包
    什么是Codeium?Codeium是现代编码超能力,一个基于尖端人工智能技术构建的免费代码加速工具包。目前,Codeium在70多种语言中提供自动完成、聊天和搜索功能,速度快且建议质量先进。现代编码工作流中有许多令人厌烦、乏味或沮丧的部分,从重复使用样板代码到在StackOverflow上搜索。最......
  • pageoffice 6版本隐藏office工具栏和自定义按钮,并修改标题栏内容
    在实际项目集成调用PageOffice的过程中:(1)有时需要把Office的工具栏隐藏,比如只读模式打开文件的时候,Office工具栏上的按钮几乎都是灰掉的,此时显示Office工具栏没有任何意义,并且浪费了宝贵的界面空间。实现此功能只需在OnPageOfficeCtrlInit事件中调用js设置PageOffice控件的Office......
  • PostgreSQL 工具集 之 pgmetrics 详解
    pgmetrics介绍pgmetrics是一个开源的、零依赖的、单二进制的工具,它可以轻松收集和报告PostgreSQL指标,用于脚本编写、自动化和故障排除。pgmetrics从正在运行的PostgreSQL服务器收集350多个指标,并以易于阅读的文本格式显示,或者将其导出为JSON和CSV用于脚本编写。pgmetrics是......
  • 怎么提高页面中大量图表渲染的性能?
    要提高页面中大量图表渲染的性能,可以考虑以下几个方面的优化:图表渲染性能优化:减少图表的绘制数量:根据需求,可以考虑只在可见区域内绘制图表,当滚动时,只绘制当前可见的图表。非可见区域的图表可以延迟渲染或者不渲染。异步渲染:将图表的绘制工作放入任务队列中异步执行,避免阻塞主线程,保......
  • 统信UOS1060使用UDOM工具箱打开支持长文件名特性
    原文链接:统信UOS1060使用UDOM工具箱打开支持长文件名特性hello,大家好啊,今天给大家带来一篇文章,在统信UOS发布的最新版桌面操作系统1060中,增加了长文件名模式,最长支持255个中文或英文字符,这样对于在windows上使用长文件的文件,迁移到国产操作系统上而言,避免了文件命名失败、文件丢失......
  • 图吧工具箱怎么用?
    图吧工具箱官方版是一款功能强劲的硬件检测工具。图吧工具箱官方版主要用于系统维护和硬件检测,从检测到测试以及系统驱动激活的管理,图吧工具箱官方版汇集了用户针对硬件以及系统的检测管理需求。图吧工具箱软件介绍图吧工具箱官方版是电脑系统和硬件维护工具箱,拥有各种常用的系统......
  • 抓包工具Wireshark使用教程
    抓包工具Wireshark使用教程 合集-抓包软件(4) 1.mitmproxy抓包工具2022-12-082.Fidder抓包工具2022-03-283.【保姆级教学】抓包工具Wireshark使用教程06-134.测试与爬虫—抓包神器之Charles08-04收起 wireshark介绍今天讲一下另一款底层抓包软件,之前写过......