码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Delphi记录


    文章目录

    • delphi
      • 软件安装
      • 基础
        • 参考书
        • 名词释义
        • 基本语法
        • 常用函数
          • 数学运算函数
          • 字符处理函数
          • 日期时间函数
          • 顺序类型函数
      • 操作
        • 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
      • 范例
        • 财务系统
        • 医院病案管理系统
      • 博文链接
    • Lazarus
      • 操作
        • 将分离的窗口整合起来
        • 减小Lazarusv IDE 编译出的文件的大小

    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);
    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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    写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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    使用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环境选项

    Lazarus

    操作

    将分离的窗口整合起来

    找到anchordockingdsgn.lpk插件,
    在这里插入图片描述
    打开该插件,
    在这里插入图片描述
    在这里插入图片描述

    减小Lazarusv IDE 编译出的文件的大小

    如何减小Lazarusv IDE v1.2.4 编译出的文件的大小

    在这里插入图片描述

  • 相关阅读:
    设计模式之适配器模式
    查看显存和内存大小
    GBase 8c V3.0.0数据类型——文本检索函数
    零基础学Java第六节(面向对象二)
    【Nginx】彻底卸载Nginx以及安装Nginx的详细教程
    16S全长测序揭示绿头虻肠道微生物及共生细菌
    Tomcat 的连接器是如何设计的(上)
    文件上传之图片码混淆绕过(upload的16,17关)
    植物大战僵尸各种僵尸攻略(四)
    图解网络(三)——TCP篇04
  • 原文地址:https://blog.csdn.net/linbian1168/article/details/127269832
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号