文章目录
- 软件安装
- 基础
- 参考书
- 名词释义
- 基本语法
- 常用函数
- 数学运算函数
- 字符处理函数
- 日期时间函数
- 顺序类型函数
- 操作
- IDE设置
- 去掉Delphi程序启动时的welcome page(欢迎页)
- 设置环境变量的PATH及library的path
- 安装控件
- 如何在Delphi中安装库?
- 安装Add-in-Exprexx
- 安装TMS FlexCel 7.1 D10.4 Sydney FS
- 安装Office Component Suite
- 处理生成的exe文件
- 更换exe的皮肤
- 更改生成exe的图标
- 让生成的exe支持WIN XP
- 文件操作
- 文本文件/二进制文件读写
- 写excel
- 使用ApiMate读取excel文件后,生成相关的code
- 控件操作
- 使用状态栏
- You cannot delete a TclxCustomDockSite in floating mode
- 辅助软件使用
- 使用C2Delphi,将C转换为delphi
- 范例
- 财务系统
- 医院病案管理系统
- 博文链接
偶然看到delphi的代码,长得和VHDL有点像,耐不住好奇心,浅尝辄止,记录于此。
软件安装
安装10.4.2版本,安装完成后,使用防火墙关闭IDE的网络连接
基础
参考书
名词释义
名词 | 释义 |
---|---|
dpr | delphi project的后缀,dpr文件包含启动程序的Pascal代码,dproj文件包含XML格式配置信息。 |
pas | 代码文件的后缀 |
dfm | visual form文件的后缀 |
VCL | Visual Component Library |
基本语法
常用函数
数学运算函数
字符处理函数
日期时间函数
顺序类型函数
操作
IDE设置
去掉Delphi程序启动时的welcome page(欢迎页)
下述的方法一和方法二对于Delphi10.4无效,
通过删除startpageguide相关文件可以在delphi启动时关闭欢迎页,不过在启动之前会提示startpageguide.bpl丢失
经试验,在下述路径中找到了对应的注册表项,删除之,在启动之前就没有再提示startpageguide.bpl丢失了
设置环境变量的PATH及library的path
安装控件
如何在Delphi中安装库?
安装Add-in-Exprexx
安装TMS FlexCel 7.1 D10.4 Sydney FS
安装Office Component Suite
将Source文件夹中的文件添加到Delphi104文件夹中,并在library path中添加Delphi104,之后打开Delphi104_64中的dpr工程,进行编译安装
尝试了几次,提示能安装成功,但是在palette中无法看到如下的图,
在网上荡了一圈,有人也出现过装组件后无法图标显示的问题,是通过清注册表中的cache后变好的;照做了一番,没有变化;于是又折腾了好一会,未果;推敲安装的版本,发现桌面delphi 10.4图标指向的是32位的版本,那么是不应该安装64位版本的,于是又接着对32位的进行编译安装,始终不成功;后来,在Delphi102文件夹中编译安装,成功显示图标了。
处理生成的exe文件
更换exe的皮肤
更改生成exe的图标
让生成的exe支持WIN XP
文件操作
文本文件/二进制文件读写
procedure TForm1.btn1Click(Sender: TObject);
var
fid: File;
byteArray: array [0 .. 1023] of u8_t;
ucData: u8_t;
i: u32_t;
byteArray2: array [0 .. 7] of u8_t;
begin
for i := 0 to 1023 do
begin
byteArray[i] := u8_t(i);
end;
{
第一类测试:向一个文件中每次写入1个字节
}
AssignFile(fid, 'test_1.bin');
ReWrite(fid, 1); // 每次写入的数量为1个字节的整数倍
for i := 0 to 1023 do
begin
BlockWrite(fid, byteArray[i], 1);
end;
CloseFile(fid);
{
第二类测试:向一个文件中每次写入4个字节
}
AssignFile(fid, 'test_2.bin');
ReWrite(fid, 4); // 每次写入的数量为4个字节的整数倍
for i := 0 to 16 do
begin
BlockWrite(fid, byteArray[i * 2], 1);
BlockWrite(fid, byteArray[i * 4], 1);
end;
CloseFile(fid);
{
第三类测试:从文件中每次读出1个字节
}
AssignFile(fid, 'test_1.bin');
ReSet(fid, 1); // 每次读出的数量为1个字节的整数倍
for i := 0 to 7 do
begin
BlockRead(fid, ucData, 1);
ShowMessage(IntToStr(ucData));
end;
CloseFile(fid);
{
第四类测试:从文件中每次读出2个字节
}
AssignFile(fid, 'test_1.bin');
ReSet(fid, 2); // 每次读出的数量为2个字节的整数倍
for i := 0 to 7 do
begin
BlockRead(fid, byteArray2, 1);
ShowMessage(u16_2_hexStr(u8_2_u16(byteArray2[0], byteArray2[1])));
end;
CloseFile(fid);
end;
procedure TForm1.btn2Click(Sender: TObject);
var
fid: TextFile;
text: string;
i: u32_t;
begin
AssignFile(fid, 'test.txt');
ReWrite(fid);
Write(fid, 'Hello ');
Write(fid, 'World');
WriteLn(fid); // WriteLn会写入换行符
// Write some numbers to the file as a single line
for i := 2 to 4 do
begin
Write(fid, i / 2, ' ');
end;
WriteLn(fid);
for i := 2 to 4 do
begin
Write(fid, i);
end;
WriteLn(fid);
for i := 2 to 4 do
begin
Write(fid, i / 2:5:1);
end;
WriteLn(fid);
CloseFile(fid);
// 重新打开文件,用于读取
ReSet(fid);
while not Eof(fid) do
begin
ReadLn(fid, text);
ShowMessage(text);
end;
CloseFile(fid);
end;
写excel
procedure CreateExcelFile;
var
xls: TXlsFile;
begin
// Create a new empty Excel file, with default formatting as if it was created by Excel 2019.
// Different Excel versions can have different formatting when they create
// an empty file, so for example
// Excel 2003 will have a default font of Arial, and 2019 will use Calibri.
// This format is anyway the starting format, you can change it all later.
xls := TXlsFile.Create(1, TExcelFileFormat.v2007, true);
try
xls.SetCellValue(1, 1, 'Just A Try'); //向A1中写入字符串
xls.SetCellValue(2, 1, 7); //注意,如果使用xls.SetCellValue(2, 1, '7'),则会输入字符串'7'
xls.SetCellValue(3, 1, 11.3); //Excel中的所有数字都是浮点数,所以即使你输入一个整数,它也会被存储为双精度数。
xls.SetCellValue(4, 1, TFormula.Create('=Sum(A2:A3)')); //使用公式
xls.Save('test.xlsx'); //保存文件
finally
xls.Free;
end;
end;
使用ApiMate读取excel文件后,生成相关的code
控件操作
使用状态栏
注意,可以在设置状态栏panel[i]文本的同时,设置宽度;该属性可以动态设置。
You cannot delete a TclxCustomDockSite in floating mode
辅助软件使用
使用C2Delphi,将C转换为delphi
对于语法不同熟悉,但对C比较了解,就使用该软件进行语法转换,可以比较快的上手,
范例
财务系统
该例子使用了TDBGrid、TComboBox、TBitBtn、TPageControl、TToolBar、TStatusBar
医院病案管理系统
该例子使用了TDateTimePicker
博文链接
Vcl.Dialogs.ShowMessage
Delphi组件安装错误
Delphi 10.3MitovLabs VCL 控件包关于“E2225: Never-build package ‘Mitov_Runtime.dpk’ must be recompiled”的问题
Delphi 10.4 Sydney Release Notes
Delphi10.2 DPR文件
Delphi10.2 VCL Forms Application 的构成
设定Delphi环境选项