如何把不同的几个delphi程序合并为一个工具集?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把不同的几个delphi程序合并为一个工具集?相关的知识,希望对你有一定的参考价值。
如何把不同的几个delphi小程序合并为一个工具集?
比如说 我有个写好的记事本,计算器,时钟,我怎么才能把他们集成在一个新创建的Mainform里面,可以点新创建的 主界面上的 不同按钮 就可以进入相应的小程序?
谢谢~ 请尽量说的详细一些~
我才刚刚入门,记事本之类的小程序是我下载的。
若哪位大侠帮我解决了,再追加50分,以示诚意~
再次谢过!!!!!!!!
太谢谢了~ 我的邮箱是 xly603@163.com~
关键是调用一个执行外部应用程序的函数:这样的函数比较多,你在搜索引擎里搜“Delphi 如何调用外部程序”会给你很多参考的。我这里用
WinExec()函数来实现。你也可以用其他的。
先定义一个过程:
procedure MyTools(ToolPathAndName: string;WindowState: string);
begin
WinExec(ToolPathAndName,WindowState);
end;
然后在每个按钮下输入这行代码就可以了:
MyTool('(1)','(2)');
注:(1)处为该按钮要打开的你工具的路径和名称,可以用绝对和相对路径,如绝对路径:C:\我的记事本.exe,相对路径:mytools\我的记事本.exe(建议你用相对路径这样,你的整个程序放到别人的电脑上,只要相对路径不变几不会出问题)
(2)处为你想打开的程序的窗口状态你可以默认设置为:"SW_SHOWNORMAL"(普通大小),也可以最大化,最小化,界于你是在程序里调用,我觉得就"SW_SHOWNORMAL"就行了。
如果还有什么问题的话,可以给我发消息。我第一时间回答你。
你甚至可以把你那些工具的名字给我,我给你做一演示程序都行。
【补充】:演示程序我已经做好了,如果你愿意的话,你把你的邮箱给我,我给你发过来。 参考技术A Function File_ShellOpen(Const aFile: String): Boolean;
Var
Tmp: Array[0..100] Of char;
Begin
Result := ShellExecute(Application.Handle,
'open', StrPCopy(Tmp, aFile), Nil, Nil, SW_NORMAL) > 32;
End;
你可以放按钮,通过调用上面函数实现你需要的功能
函数的参数是你存放的工具的路径.
如何创建一个脚本来合并另一个表中的几个表?
对不起我的英语,这不是我的力量!
我正在为一个负责培训课程的非政府组织工作。
我们有一个google工作表,在不同的电子表格中逐个编译每个培训日参与者的数据。
所以我的年度文档由30个电子表格组成。我想再创建一个电子表格,它将合并来自其他标签的所有数据,以便: - 能够快速查看谁还没有支付他的账单 - 计算总金额
我知道我可以通过使用过滤器功能来实现它,但是对于这么多的电子表格来说它真的非常耗时,如果我添加一个训练课程,我将不得不改变公式。而且,我每年都会被迫这样做。
所以我想创建一个按钮来导入新电子表格中的所有数据。
您将在此处找到仅包含2个电子表格的工作表示例:https://docs.google.com/spreadsheets/d/1-RxzUGJFXnU3_mJ3Qj0MCTpwPTlnmgIT439AchyrRrE/edit?usp=sharing
我希望你能帮助我!
谢谢,新年快乐:D
Merging Sheets in another sheet in same spreadsheet.
您将需要名为“CopiDdeFCCE”的电子表格的ID,其他参数将默认为“CopieDdeFCCE”。
function mergeSpreadsheet(ssid,shname){
var shname=shname || 'CopieDdeFCCE';
var ss=SpreadsheetApp.openById(ssid);//id of spreadsheet named 'CopieDdeFCCE' in your case
var sh=ss.getSheetByName(shname);//sheetname of sheet where other sheets are merged into again in your case its named 'CopieDdeFCCE'
if(!sht){ss.insertSheet(shname);}
var allshts=ss.getSheets();
for(var i=0;i<allshts.length;i++){
if(allshts[i].getName()!=shname){//do this for all sheets except shname
var shi=allshts[i];
var rg=shi.getDataRange();
var vA=rg.getValues();
shi.getRange(sh.getLastRow() + 1, 1,shi.getLastRow(),shi.getLastColumn()).setValues(vA);
}
}
}
只是为了清楚。
- Google称之为电子表格的文件是包含所有标签(即表格)的文件。
- 在您的第一个评论中,您说了以下内容:我想将名为“CopieDdeFCCE”的所有28张文件合并到同一文件的新工作表中。
- 但现在在你的问题中你说:我想创建一个按钮来导入新电子表格中的所有数据。
- 您在上次评论中声明您的命令如下所示:mergeSpreadsheet(“1KC6kHcgtLZ93S4-r4wOwHFOG6Rq3mesGRKv26Ttnm9E”,“CopieDdeFFCE”)
- 但很明显,这不是示例的ID,并且该示例没有具有该名称的工作表。
所以我的问题是:你究竟想要什么?
很抱歉,我没有收到任何回复通知,因为这是一个编辑,当我来看看你是否写了一些东西时,我看了一下网站的底部。 :/
首先,新年快乐,再次感谢您的帮助!
以下是您提出的精确度:
1°实际上,我想将名为“CopieDdeFCCE”的所有28张文件合并到同一文件的新工作表中。为了更准确,我给你链接文件的确切位置和一些表格的例子:link。
2°其次,我将创建一个按钮,轻松更新所有数据。但我想我知道该怎么做,所以暂时忘记这个问题;)
3°在我附上的文件中,我们是否同意“id”是:1KC6kHcgtLZ93S4-r4wOwHFOG6Rq3mesGRKv26Ttnm9E ??
再次感谢您的所有时间!
以上是关于如何把不同的几个delphi程序合并为一个工具集?的主要内容,如果未能解决你的问题,请参考以下文章