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环境选项

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...