Delphi记录
创始人
2024-04-13 23:34:57
0

文章目录

  • 软件安装
  • 基础
    • 参考书
    • 名词释义
    • 基本语法
    • 常用函数
      • 数学运算函数
      • 字符处理函数
      • 日期时间函数
      • 顺序类型函数
  • 操作
    • 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的网络连接
在这里插入图片描述

基础

参考书

在这里插入图片描述
在这里插入图片描述

名词释义

名词释义
dprdelphi project的后缀,dpr文件包含启动程序的Pascal代码,dproj文件包含XML格式配置信息。
pas代码文件的后缀
dfmvisual form文件的后缀
VCLVisual 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);
varfid: File;byteArray: array [0 .. 1023] of u8_t;ucData: u8_t;i: u32_t;byteArray2: array [0 .. 7] of u8_t;
beginfor i := 0 to 1023 dobeginbyteArray[i] := u8_t(i);end;{第一类测试:向一个文件中每次写入1个字节}AssignFile(fid, 'test_1.bin');ReWrite(fid, 1); // 每次写入的数量为1个字节的整数倍for i := 0 to 1023 dobeginBlockWrite(fid, byteArray[i], 1);end;CloseFile(fid);{第二类测试:向一个文件中每次写入4个字节}AssignFile(fid, 'test_2.bin');ReWrite(fid, 4); // 每次写入的数量为4个字节的整数倍for i := 0 to 16 dobeginBlockWrite(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 dobeginBlockRead(fid, ucData, 1);ShowMessage(IntToStr(ucData));end;CloseFile(fid);{第四类测试:从文件中每次读出2个字节}AssignFile(fid, 'test_1.bin');ReSet(fid, 2); // 每次读出的数量为2个字节的整数倍for i := 0 to 7 dobeginBlockRead(fid, byteArray2, 1);ShowMessage(u16_2_hexStr(u8_2_u16(byteArray2[0], byteArray2[1])));end;CloseFile(fid);
end;procedure TForm1.btn2Click(Sender: TObject);
varfid: TextFile;text: string;i: u32_t;
beginAssignFile(fid, 'test.txt');ReWrite(fid);Write(fid, 'Hello ');Write(fid, 'World');WriteLn(fid); // WriteLn会写入换行符// Write some numbers to the file as a single linefor i := 2 to 4 dobeginWrite(fid, i / 2, ' ');end;WriteLn(fid);for i := 2 to 4 dobeginWrite(fid, i);end;WriteLn(fid);for i := 2 to 4 dobeginWrite(fid, i / 2:5:1);end;WriteLn(fid);CloseFile(fid);// 重新打开文件,用于读取ReSet(fid);while not Eof(fid) dobeginReadLn(fid, text);ShowMessage(text);end;CloseFile(fid);
end;

写excel

procedure CreateExcelFile;
varxls: 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);tryxls.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');        //保存文件finallyxls.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环境选项

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...