begin

Delphi DBGrid 实现复选框

僤鯓⒐⒋嵵緔 提交于 2019-12-05 22:07:56
1 在数据库对应的表中加入 bit 列验证是否被选中 然后dbgrid第一列的filedname是bit列 在DBgrid的onDrawColumnCell事件中写: procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); const   CtrlState: array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED); begin if column.Field.DataType=ftboolean then begin DBGrid1.Canvas.FillRect(rect); drawframecontrol(DBGrid1.Canvas.Handle,rect,dfc_button,ctrlstate[column.Field.asboolean]); end; end;    上方事件写完后会在第一行第一列出现复选框 2 在dbgrid的oncellclick事件中写,目的就是实现单击时 复选框被选中 procedure TcgDaohuodj

LaTeX学习笔记1

旧时模样 提交于 2019-12-05 18:02:34
2019.11.26 1.求和公式使用 $p = \sum\limits_{n=1}^Na_n$ , \sum 为求和公式, \limits 为取消限制在单行中。 2.多行对齐使用align,例如: \begin{align} 1. \quad & g(X) = x_1 - x_2 + 1 \ 2.\quad & g(X) = -x_1 + x_2 + 1 \end{align} 3.梯度符号为 \nabla 多数符号详见 https://blog.csdn.net/caiandyong/article/details/53351737 4.在gather环境中可以使用 pmatrix 生成矩阵。注意:在gather环境中不会自动换行。 \begin{gather} X_1 = \begin{pmatrix} 2 \ 2 \end{pmatrix} \text{,}X_2 = \begin{pmatrix} -1 \ -1 \end{pmatrix} \text{,}X_3 = \begin{pmatrix} 1 \ 1 \end{pmatrix} \text{,}X_4 = \begin{pmatrix} 2 \ 2 \end{pmatrix} \end{gather} 5.使用TiKz宏包可以实现画图功能。(未学习) https://logiclife.wordpress

Delphi-基础(运算符)

≯℡__Kan透↙ 提交于 2019-12-05 14:36:24
一、运算符   1、变量   2、运算符**   3、表达式 1、变量 变量解释:编程中最小的存储单元(空间),它的空间大小由它在声明时的数据类型决定。 1.1、声明 : 定义一个变量,告诉Delphi一个名字的存储空间 1 var 变量名:数据类型; 1.2、初始化 给变量的第一次赋值 1 {赋值: 变量名:=变量的值;} 1 //变量进行声明 2 var 3 Age:Integer; 1.3、变量声明示例 1 var 2 Name:string='小黑'; 3 begin 4 Age := 0; 5 6 //写出(写出的控制台)指定的内容 7 8 Writeln(6 / 4); 9 Writeln(6 div 2); 10 Writeln(6 mod 4); 11 12 Readln; //从控制台读入一行内容,它现在的主要的就是暂停,等我们按下回车键。 2、运算符    算数运算符: + - * /(不会整除) div(整除) mod(求模、求余数)   布尔运算符:   关系运算符:<>(不等于) 2.1、布尔运算符示例 1 Writeln(1 <> 2); 2 Writeln(not(1 <> 2)); 3 Writeln((1<2) and (2<3)); 4 Writeln((1<2) or (2<3)); 2.2、xor(异或):判断条件中相同为False

LeetCode解题总结(1)

不打扰是莪最后的温柔 提交于 2019-12-05 12:20:23
LeetCode解题总结(1) 序 最近在对以前学过做过的东西做一些总结和回顾,为了检验学习成果和查漏补缺,开启了一段刷题之路。 1. Two Sum Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. 思路 看完描述后,最容易想到的是暴力计算的思路,对每个数,用target减去这个数,得到一个需要用来相加的数字,然后遍历除自己外的所有数字,找出是否满足,如果满足,就返回这两个数的位置。此时,因为对每个数都要进行一次遍历,所以时间复杂度为O(n^2),不需要额外空间,空间复杂度为O(1)。 但是显然这样做是不好的,想到解唯一且重复的计算很多,所以用空间换时间的做法,每次相减后直接把结果记录下来,如果碰到一个数跟之前记录的需要的结果相同,即为解: 此时,只需要一次遍历即可,时间复杂度O(n),空间复杂度O(n) class Solution { public: vector<int> twoSum(vector

精通awk系列(7):awk读取行的细节

牧云@^-^@ 提交于 2019-12-05 09:10:19
回到: Linux系列文章 Shell系列文章 Awk系列文章 详细分析awk如何读取文件 awk读取输入文件时,每次读取一条记录(record)(默认情况下按行读取,所以此时记录就是行)。每读取一条记录,将其保存到 $0 中,然后执行一次main代码段。 awk '{print $0}' a.txt 如果是空文件,则因为无法读取到任何一条记录,将导致直接关闭文件,而不会进入main代码段。 touch x.log # 创建一个空文件 awk '{print "hello world"}' x.log 可设置表示输入记录分隔符的预定义变量RS(Record Separator)来改变每次读取的记录模式。 # RS="\n" 、 RS="m" awk 'BEGIN{RS="\n"}{print $0}' a.txt awk 'BEGIN{RS="m"}{print $0}' a.txt RS通常设置在BEGIN代码块中,因为要先于读取文件就确定好RS分隔符。 RS指定输入记录分隔符时,所读取的记录中是不包含分隔符字符的。例如 RS="a" ,则 $0 中一定不可能出现字符a。 特殊的RS值用来解决特殊读取需求: RS="" :按段落读取 RS="\0" :一次性读取所有数据,但有些特殊文件中包含了空字符 \0 RS="^$" :真正的一次性读取所有数据,因为非空文件不可能匹配成功

第9章 顺序容器

て烟熏妆下的殇ゞ 提交于 2019-12-05 03:04:28
exercises section 9.2 9.2 list<deque<int> > list_deque_int; section 9.2.1 迭代器 1、迭代器与容器一样有公共的接口(forward_list的迭代器不支持递减运算符(--) exercise section 9.2.1 9.3、 1.迭代器必须指向同一个容器中的元素,或者容器最后一个元素之后的位置。 2.end不在begin之前。 9.4、 //p9_4.cpp #include <vector> #include <iostream> using namespace std; bool find(vector<int>::iterator first, vector<int>::iterator last, int val) { bool exist = false; //用来指示是否找到指定值,初始为false for(auto ix = first; ix != last; ++ix)//遍历迭代范围 { if(*ix == val) //若值相等 { exist = true; //说明找到了指定的值 break; //停止迭代 } } return exist; //返回exist,若存在则exist为true,否则为false } 9.5、 vector<int>::iterator find

linux三剑客

若如初见. 提交于 2019-12-04 19:59:22
awk是由Alfred Aho 、Peter Weinberger 和 Brian Kernighan这三个人创造的,awk由这个三个人的姓氏的首个字母组成。awk其实可以看成是一门独立的编程语言,他支持条件判断、数组、循环等功能。awk共有两个版本(gawk与nawk版本),在linux中我们最常使用的是gawk,同时awk、grep、sed被称为Linux中的三剑客 [root@CodeSheep ~]# ll /usr/bin/awk lrwxrwxrwx. 1 root root 4 Feb 15 2019 /usr/bin/awk -> gawk 关于"三剑客"的特长 grep 更适合单纯的查找和匹配文本 sed 更适合编辑匹配的文本 awk 更适合格式化文本,对文本进行较复杂格式处理 awk基础 语法 awk [options] '{pattern + action}' {filenames} 其中的action 我们最常用的就是print以及prinf,对于action来说,每次经过一行,都会当前行执行一边action 比如 awk '{print "1",NR}' /etc/passwd 你会发现有多少行,他就输出了多少个1 每行一个 awk的工作流程 首先awk并不是列操作,而是行操作,同样的他也是一行一行的处理的,其中$0表示当前行

Delphi 线程间发送消息

我的梦境 提交于 2019-12-04 14:14:21
转载自: https://www.cnblogs.com/ADAN1024225605/p/7927695.html 线程B向线程A发送消息,SendMessage(线程A句柄, msg, wParam参数, lParam参数); 线程A重写WndProc(var Message: TMessage); { 线程B发送消息 } unit ThreadUnit; interface uses Classes, ActiveX, businessService, Dialogs, Constant, Windows, Messages, SysUtils; type TUpgradeAppThread = class(TThread) protected procedure execute; override; private appFileDir: string; manualCheck: Boolean; public MainFromHandle: HWND; //主线程句柄 constructor Create(appFileDir: string; manualCheck: Boolean); end; const {0x0400 - 0x7FFF} WM_UPDATE_UI1 = WM_USER + $1001; WM_UPDATE_UI2 = WM_USER +

AWK 讲义 && 练习

我怕爱的太早我们不能终老 提交于 2019-12-04 11:55:18
awk 显示例子 显示行的所有内容 $0 awk '{print $0}' /etc/passwd 显示hello world (前面的金额echo 控制了 输出1行 与内容无关) echo asdf |awk '{print "hello world"}' 显示多行hello world (文件内有几行 就显示几行hello world 文件控制了输出的行数) awk '{print "hello world !"}' /etc/passwd 使用分隔符 awk 'BEGIN{FS=":"}{print "$7"}' /etc/passwd 使用分隔符(功能一样) awk -F":" '{print $7}' /etc/passwd 使用制表符和字符串 awk -F":" '{print "username: "$1",\t UID:"$3}' /etc/passwd BEGIN块和END块 通常,对于每个输入行,awk 都会执行每个脚本代码块一次。然而,在许多编程情况中, 可能需要在 awk 开始处理输入文件中的文本之前执行初始化代码。对于这种情况,awk 允许 您定义一个 BEGIN 块。我们在前一个示例中使用了 BEGIN 块。因为 awk 在开始处理输入文 件之前会执行 BEGIN 块,因此它是初始化 FS(字段分隔符)变量、打印页眉或初始化其它

Linux文本三剑客

情到浓时终转凉″ 提交于 2019-12-04 11:26:04
```bash [root@CodeSheep ~]# ll /usr/bin/awk lrwxrwxrwx. 1 root root 4 Feb 15 2019 /usr/bin/awk -> gawk ``` ## 关于"三剑客"的特长 - grep 更适合单纯的查找和匹配文本 - sed 更适合编辑匹配的文本 - awk 更适合格式化文本,对文本进行较复杂格式处理 ## awk基础 **语法** awk [options] '{pattern + action}' {filenames} 其中的action 我们最常用的就是print以及prinf,对于action来说,每次经过一行,都会当前行执行一边action 比如 ```bash awk '{print "1",NR}' /etc/passwd ``` 你会发现有多少行,他就输出了多少个1 每行一个 ## awk的工作流程 首先awk并不是列操作,而是行操作,同样的他也是一行一行的处理的,其中$0表示当前行,比如在正常情况下我们输出全文是用cat来查看的,那么用awk的操作是这样的,另外awk的接受标准输入和文件 ```bash cat /etc/passwd awk '{print $0}' /etc/passwd # 如上的内容是一样的 ``` ## awk中的分隔符 为了处理好每一行中的每一个字段