当前位置:文档之家› 程序中使用花指令(Delphi源码)

程序中使用花指令(Delphi源码)

程序中使用花指令(Delphi源码)
程序中使用花指令(Delphi源码)

程序中使用花指令(Delphi源码)

unit Ex3Main;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Button11: TButton;

Button12: TButton;

StatusBar1: TStatusBar;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

//第1种花指令

procedure TForm1.Button1Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

jb @label

jnb @label

db $E8

@label:

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

//第2种花指令

procedure TForm1.Button2Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

je @label

jne @label

db $E8

@label:

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

//第3种花指令

procedure TForm1.Button3Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

jbe @label

ja @label

db $E8

@label:

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

//第4种花指令

procedure TForm1.Button4Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

js @label

jns @label

db $E8

@label:

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

//第5种花指令

procedure TForm1.Button5Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

jpe @label

jpo @label

db $E8

@label:

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

//第6种花指令

procedure TForm1.Button6Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

jl @label

jge @label

db $E8

@label:

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

//第7种花指令

procedure TForm1.Button7Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

jle @label

jg @label

db $E8

@label:

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

//第8种花指令

procedure TForm1.Button8Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

jz @label

jnz @label

db $E8

@label:

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

//第9种花指令

procedure TForm1.Button9Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

push ecx

xor ecx,ecx

jcxz @label

db $E8

@label:

pop ecx

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

//第10种花指令

procedure TForm1.Button10Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

jl @label1

@label2:

jmp @label3

db $E8

@label1:

jz @label2

@label3:

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

//第11种花指令

procedure TForm1.Button11Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

call @label1

db $E8

jmp @label2

db $E8

@label1:

pop eax

jmp @label3

db $E8,$E8,$E8

@label3:

inc eax

jmp @label4

db $E8,$E8,$E8

@label4:

jmp eax

db $E8

@label2:

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

//第12种花指令

procedure TForm1.Button12Click(Sender: TObject); var

a,b:Integer;

begin

a:=20;b:=10;

asm

call @label1

db $E8,$E8

jmp @label4

@label1:

pop eax

jmp @label2

db $E8,$E8

@label2:

add eax,2

jmp @label3

db $E8

@label3:

push eax

ret

db $E8

@label4:

end;

if a>b then

Messagebox(Handle,'a>b','info',MB_OK); end;

end.

DELPHI源码调试方法(适合新手)

Delphi调试概述 除非你的程序只有几行,否则几乎不可能一次写成,因此调试就非常必要。然而许多初学者不知道如何进行调试,写完程序就运行,发现结果不对再看代码,这样觉得非常吃力。这里,简单介绍一下Delphi所提供的调试功能。 1.语法检查(Syntax Check) Delphi提供了语法检查的功能,这个功能和正常编译很相似,同样也会给出各类错误和警告信息,但是不会生成代码。 必须重视Delphi给出的任何信息,很多简单的错误就能够在这个阶段被发现。Delphi的编译信息分为4类:Fault(故障),Error(错误),Warning(警告)和Hint(提示)。Fault是指导致编译程序不能继续工作的错误,例如内存溢出等;Error是指发现用户程序不符合某些规定而导致不能按照用户程序的要求进行处理;Warning是指用户程序使用了某些不符合规定的形式,但是并不影响编译程序生成目标文件;Hint是指编译程序对用户程序的某些形式提出了怀疑。 前两类信息是必须要解决的,否则你不能运行你的程序,但是往往会有很多人忽略后两种信息。然而,这些信息却是非常重要的。 对于下面这个代码,编译程序将会出现一个Warning: var a,b:Integer; begin ... if a<100then if a<b then begin ... end; end. end. 编译程序会告诉你,在“.”(句号)后面的内容被忽略了,实际上你会发现你漏了一个begin,同时将最后第二个end后面的“;”(分号)误写成“.”(句号)了。 再看看下面的代码: var a,b:Integer; begin b:=a+1; end; 编译程序会给出一个Hint,告诉你a尚未被初始化,通常没有被初始化的变量其内容是不确定的。

微信小程序功能优秀案例体验软文

微信小程序功能体验太差?那是因为你没用过这些小程序! 小程序经过两个月争议的洗礼与数次沉浮起落,慢慢开始走上正轨。滴滴、摩拜、今日头条等一大批巨头的进驻和小程序自身能力的开放。让小程序丰富了许多。越来越多的用户开始使用并习惯使用小程序,借助“即速应用”这类无需代码拖拽组件直接生成的小程序开发工具,整个市场中的小程序数量也在快速增长,除了大平台发布的关注度较高的小程序之外。其实还有很多实用而美的小程序也值我们去发现。今天就给大家介绍几款这样的小程序。 1、小睡眠 这是一款辅助睡眠的小程序,里面有非常多纯粹的天然白噪音和几十种自然界中纯净的声音,非常有趣。除此之外,小睡眠界面清新,设计简洁,还支持定时停止,非常适合睡前来使用。

2、小打卡 小打卡是一个简洁的学习管理软件,每天健身、阅读、学英语,打卡记录自己的成长。 此外小打卡还支持与好友分享打卡记录,和好友相互鼓励,养成好习惯。 小打卡里的Pro付费功能还可以设置打卡地点。很适合户外跑、徒步的用户记录自己的足迹。

3、社交名片 社交名片是一个名片管理小工具,我们可以非常方便的把自己的名片收录进去以便需要时分享给别人。也可以把别人的名单都存储在小程序中,等需要的时候,可以随时调看,并且支 持一键拨打电话,非常实用。推荐给大家。

4、轻松同传 轻松同传是一款即时翻译软件。页面简洁,但功能简单好用,只需要将文字输入对话框或者语音讲出来,点击发送,马上就有对应的英语翻译。非常迅速和准确,在现实的场景中具有 很强的实用性。

5、玩物志 玩物志是一个专注轻奢、设计品、有趣之物的线上电商平台。和某宝、某东有着清晰而不同定位。上面的商品,品类不多,但每一个都有着独特的设计感和小情调。很符合追求生活品 质和与不平凡的你。

delphi打印小票源码

//取得字符的高度function CharHeight: Word; var Metrics: TTextMetric; begin GetTextMetrics(Printer.Canvas.Handle, Metrics); Result : = Metrics.tmHeight; end; //file: //取得字符的平均宽度 function AvgCharWidth: Word; var Metrics: TTextMetric; begin GetTextMetrics(Printer.Canvas.Handle, Metrics); Result :

= Metrics.tmAveCharWidth; end; //file: //取得纸张的物理尺寸---单位:点function GetPhicalPaper: TPoint; var PageSize : TPoint; begin //file: //PageSize.X;纸张物理宽度-单位:点//file: //PageSize.Y;纸张物理高度-单位:点Escape(Printer.Handle, GETPHYSPAGESIZE, 0,nil,@PageSize); Result : = PageSize; end; //file: //2.取得纸张的逻辑宽度--可打印区域 //file: //取得纸张的逻辑尺寸 function PaperLogicSize: TPoint;

var APoint: TPoint; begin APoint.X : = Printer.PageWidth; APoint.Y : = Printer.PageHeight; Result : = APoint; end; //file: //纸张水平对垂直方向的纵横比例function HVLogincRatio: Extended; var AP: TPoint; begin Ap : = PaperLogicSize;

delphi制作浏览器

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; WebBrowser1: TWebBrowser; Button6: TButton; ComboBox1: TComboBox; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin webbrowser1.GoBack; end; procedure TForm1.Button2Click(Sender: TObject);

微信小程序开发合同协议书范本-新

微信小程序开发合同 甲方:乙方: 联系人:联系人: 联系电话:联系电话: 地址:地址: 本合同除合同编号、文本空格、双方签章信息外,其余内容均为印刷字体。手写部分(包括但不限于添加、删除、修改)无效,不具备法律效力。委托人甲方与受托人(以下简称“乙方”)双方本着平等互利、友好协商的原则,依据《中华人民共和国合同法》等法律规定,就甲方授权乙方开发微信小程序事宜的达成如下协议。 第一条、服务内容: 、甲方的权利和义务: 1、甲方有权享有本合同备注项目下的服务。 2、合同期满后甲方有权自主进行选择服务商,乙方应提供必要的协助。 3、甲方应该如实向乙方提供所需之相关信息(包括但不限于本合同填写之信息)凡因相关信息不真实,不准确等原因导致乙方无法或不能妥善履行本合同义务的,因此产生的一切后果由甲方负责。 4、甲方应当遵守相关法律及本合同项下服务内容相关的各项服务费用规定,甲方应保

证本合同项下服务过程中甲方通过小程序发布传递信息的真实性、准确性、合法性和合理性;不能使用小程序开发服务从事任何违反法律及国家利益的事务;若乙方发现甲方有上述违约或违规行为,乙方有权选择立即暂停或终止微信小程序服务,并有权不承担任何责任的单方解除本合同,甲方还应当给乙方适当的赔偿。 5、甲方应妥善保管小程序相关账号和密码,非因乙方原因造成甲方账号和密码泄露,被他人盗用等所产生的损失,乙方不承担任何责任。 、乙方的权利和义务: 1、乙方为甲方提供小程序开发服务、技术支持及服务器。 2、未经甲方书面同意,乙方不得随意更改甲方提供的资料,乙方应对甲方的相关信息保密(司法机关或行政机关根据其权限调查除外)。 3、乙方负责在产品设计功能范围内解决甲方在小程序内容制作过程中遇到的技术问题。 4、乙方在维护管理服务器时,或由于乙方网站平台改版、升级、更新等,必要时可短时间中断服务。 第四条、验收标准: 1、甲方应以电话、传真以及电子邮件提供运营结果。 2、运营结果达到到约定效果即为验收合格。 3、乙方需及时填写验收确认信息。 4、验收期限为三天,如果乙方超过验收期未验收,甲方将视为验收满意。 5、甲方完成验收后以合同提供的联系方式及时联系乙方。 、违约责任: 1、因甲方违反本合同的约定造成乙方收到相关部门处罚或者对任何第三方产生不良后果的,甲方应当赔偿因此给乙方造成的损失,并追究甲方其他的法律责任。 2、若乙方违反合同约定,甲方有权单方面终止合同,并要求乙方退回未履约的相应费用,并追究乙方的其他法律责任。 3、任何一方因不可抗力,致使对方受到重要经济损失,或导致本合同不能履行或不能完全履行时,受不可抗力影响的一方对另一方的损失不承担违约责任,本合同所指不可抗力,是指不能避免,不能实现的客观要求,包括但不仅限于地震、洪水等自然灾害、战争及政府行为、突发性公共事实等。 4、任何一方违反本合同约定的,应赔偿守约方因对方违约造成的全部损失,守约方有

delphi FTP源码

//连接FTP var i:integer; tr : Tstrings; IdFTP1.Quit; tr := TStringlist.Create; IdFTP1.Host := hostTxt.Text; //FTP服务器地址 172.20.16.76 IdFTP1.Port := StrToInt(PortTxt.Text); //FTP服务器端口号9500 https://www.doczj.com/doc/6c8733173.html,ername := UserTxt.Text; //FTP服务器用户名 IdFTP1.Password := pwdTxt.Text; //FTP服务器密码 IdFTP1.Connect(); //连接到ftp IdFTP1.ChangeDir('JMPZ'); IdFTP1.List(tr); //得到目录下所有文件列表 FFTxt.Items.Assign(tr); tr.Free; //ftp当前路径,从登陆用户的起始目录起始 IdFTP1.RetrieveCurrentDir //ftp目录变换,DirName只能是上一目录,或者下一目录,无需加"/" IdFTP1.ChangeDir(DirName); idftp_Client.Connected// 判断是否连接 //要使用IdFTP1.DirectoryListing属性,必须uses IdAllFTPListParsers;否则会有no idftplistparse classes have been registered的错误 //=========================================================== UseMLIS为目录解析器相关的参数,不同的Ftp服务器,会有不同的格式 //使用idftp1.list命令获取的目录列表时,显示列表为 drw-rw-rw- 1 user group0 Jun 2619:30 JMPZ drw-rw-rw- 1 user group0 Jun 2619:31加密配置 若进入二级目录,则多显示两行 drw-rw-rw- 1 user group0 Jun 2619:30 . drw-rw-rw- 1 user group0 Jun 2619:30 .. drw-rw-rw- 1 user group0 Apr 509:420旧订单 drw-rw-rw- 1 user group0 Apr 509:2911rrrrrrrr 但是当参数https://www.doczj.com/doc/6c8733173.html,eMLIS:= true;时,显示列表为 Type=dir;Modify=20170626113034;Win32.ea=0x00000010; JMPZ Type=dir;Modify=20170626113101;Win32.ea=0x00000010; 加密配置 若进入二级目录,则多显示行 Type=cdir;Modify=20170626113034;Win32.ea=0x00000010; /JMPZ Type=dir;Modify=20170405014212;Win32.ea=0x00000010; 0旧订单 Type=dir;Modify=20170405012904;Win32.ea=0x00000010; 11rrrrrrrr Type=dir;Modify=20170608010420;Win32.ea=0x00000010; 4501036094

Delphi 通过MSHTML实现一个HTML解析类

Delphi 通过MSHTML实现一个HTML解析类 Delphi 通过MSHTML实现一个HTML解析类分类:Delphi编程 2010-01-05 09:14 400人阅读 评论(7) 收藏 举报 最近经常会模拟网页提交返回网页源码,然后获得网页中相应的元素,于是需要常常解析Html中相应的各种元素,网络是个好东西,搜索一番,就找到了 好几个Delphi版本的HtmlParser的类库,试着使用了几个,发现解析起来都不完整,或多或少的回出现一些问题!于是想到了如果界面上有一个浏 览器,我们可以通过WebBrowser的Document接口对网页元素进行操作,很是方便!但是模拟网页提交,界面上是不一定要出现 WebBrowser的,肯定有办法,不通过WebBrowser就直接

解析HTML的,那便是我不要WebBrowser这个外壳,只要他里面的 Document文档接口对象就能实现对Html的解析了,查找了一番MSDN,然后Google一下,果然可行,构建方法如下://创建 IHTMLDocument2接口 CoCreateInstance(CLASS_HTMLDocument, nil, CLSCTX_INPROC_SERVER, IID_IHTMLDocument2, FHtmlDoc); 接口创建好了之后就能够对文 档元素进行解析了,很是爽快! 结合了我自己的特有操作,我对Combobox,Table,Frame等一些网页元素做了相应的封装,实现 了一个HTMLParser,大致代码如下: 这里只给出声明,代 码请在最后下载 代码

(* **************************************************** *)(* 得闲工作 室 *)(* 网页元素操作 类库 *)(* *)(* DxHtmlElement Unit *)(* Copyright(c) 2008-2010 不得 闲 *)(* email:appleak46@https://www.doczj.com/doc/6c8733173.html, QQ:75492895 *)(* **************************************************** *)unit DxHtmlElement;interfaceuses

delphi indy的UDP传输的演示源码

https://www.doczj.com/doc/6c8733173.html,/t810509 用Delphi编写点对点传文件程序 delphi indy的UDP传输的演示源码 2009-02-27 17:05 客户端: var cmd: string; ASize, TotalSize: Int64; AFileStream: TFileStream; begin IdTCPClient1.Host := Edit1.Text; //连接主机 IdTCPClient1.Port := StrToIntDef(Edit2.Text, 9925); //端口 IdTCPClient1.Connect; //连接 try IdTCPClient1.WriteLn('BEGIN'); //提示服务器开始接收 cmd := IdTCPClient1.ReadLn; //以“|”符号分离文件名 SaveDialog1.FileName := Copy(cmd, Pos('|', cmd) + 1, Length(cmd)); if not SaveDialog1.Execute then begin IdTCPClient1.WriteLn('CANCEL'); //告诉服务器取消 IdTCPClient1.Disconnect; //断开连接 exit; end; TotalSize := StrToInt(Copy(cmd, 0, Pos('|', cmd) - 1)); //分离文件大小 //建立文件流准备接收 AFileStream := TFileStream.Create(SaveDialog1.FileName, fmCreate); try //循环开始接受 repeat IdTCPClient1.WriteLn(IntToStr(AFileStream.Size));//发送当前传输的位置 ASize := Min(TotalSize - AFileStream.Size, IdTCPClient1.RecvBufferSize); //选择剩余大小和缓冲区大小小的一个作为传输的大小 IdTCPClient1.ReadStream(AFileStream, ASize); //接收流 StatusBar1.SimpleText := Format('当前传输位置%d/大小%d', [AFileStream.Size, TotalSize]); Application.ProcessMessages; until AFileStream.Size = TotalSize; //大小一致了表示结束 finally AFileStream.Free; //释放文件流 end; IdTCPClient1.WriteLn('END'); //提示服务器传输完成

微信小程序开发实战

《微信小程序开发实战》试卷 得分 单选题(每题2分,共计30分) 1.微信小程序提供了()组件,将音乐文件引入到小程序中。 A、<> B、<> C、<> D、<> 2.关于属性说法错误的是()。 A、表示按钮的样式类型 B、点击分别触发事件 C、表示是否禁用 D、按钮是否镂空,背景不透明3.在微信小程序的页面组件中,图片组件用()表示。 A、<> B、<> C、<> D、<> 4.下列关于媒体组件,说法正确的是()。 A、媒体组件包括音频组件、视频组件、图片组件 B、组件的属性有12种展现模式 C、表示视频组件 D、组件的宽高不能通过设置 5.搭建后台服务,()命令可以实时监听文件的修改且进行实时更新。A、 B、 C、 D、 总分题型单选题多选题填空题简答题题分 得分

6.关于表单组件描述错误的是()。 A、每个表单内的组件不用设定属性 B、表单提交的是表单内选中的所有组件 C、组件用来将表单里的值提交给逻辑层进行处理 D、中的有两个属性分别是和 7.在使用实现页面列表渲染时,的值为()时表示将每一项本身作为唯一标识。 A、* B、 C、 D、 8.下列关于坐标点说法错误的是()。 A、表示经纬度数组 B、表示线的颜色 C、表示线宽 D、默认为显示虚线9.在小程序的页面组件中,()是定义单选框。 A、<> B、 C、 D、<> 10.下列关于组件说法错误的是()。 A、属性可以设置输入框的禁用 B、用来控制输入单行文本内容 C、通过给输入框添加友好提示信息 D、的属性有3种有效类型 11.在小程序权限管理中,()是可以使用开发者工具及开发版小程序进行开发。 A、开发管理 B、开发者权限 C、暂停服务设置 D、登录

delphi实现计算器源码-完整版

private { Private declarations } protected // procedure CreateParams(var Params: TCreateParams);override; public { Public declarations } end; TRightEdit = class(TEdit) protected procedure CreateParams(var Params : TCreateParams);override; end; type operator = (Emp,add,sub,mul,divid); //空、加、减、乘、除 var FrmCounter: TFrmCounter; MyRightEdit: TRightEdit; operate: Operator = emp; operate1: Operator = emp; //记录上一次用户按下的运算符Pointed: Boolean = False; //是否输入小数点 temp: string = ''; tempnum: Real = 0.0; implementation {$R *.dfm} //重载TRightEdit的CreateParams自定义编辑框的一些样式procedure TRightEdit.CreateParams(var Params : TCreateParams); begin inherited; Params.Style := params.Style + ES_Right; end; //创建窗体时初始化一些参数 procedure TFrmCounter.FormCreate(Sender: TObject); begin MyRightEdit := TrightEdit.Create(nil); with MyRightEdit do begin parent := panel1; text := '0.';

Delphi作的程序的源代码中常见的文件扩展名

Delphi作的程序的源代码中常见的文件扩展名 Delphi作的程序的源代码中常见的文件扩展名 时间:2011-5-24来源:yang 作者: peng点击: 32次 整理了一下用Delphi作的程序的源代码中常见的文件扩展名,并给出了这些文件扩展名的意义,以便源代码管理时作为参照,扩展名以字母为序(不需要进源代码库不表示不需要进库)。 ~* Delphi生成的备份文件,在版本控制库及发布代码中不应该出现这些文件,如果修改了某个文件却因某些原因没有保存的话,可以尝试使用这些文件恢复。 bmp/wmf/emf/gif/jpg/pcx/png/tiff/ico/cur/ani 图形/图标/光标文件,这些文件如果使用到了也需要进源代码库。 bpg 工程组文件(Borland Project Group File),文本格式,需要进源代码库;bpg文件其实是makefile格式,要编译bpg 文件可以使用make工具,语法如下: make -f %FileName%

bpl 运行时刻包文件,是一种Borland定义的特殊格式的dll,简单的说与普通dll的差别就是bpl有一些共用的部分只使用了同一引用,而dll使用了多份拷贝,因此才会使得bpl与dll的某些方面的差别很大。 此类型文件是否进源代码库需要根据其用途来判断,一般情况下源代码编译出来的bpl无需进库,但是如果此bpl 是IDE的扩充插件,可能也需要进库,此外如果第三方组件没有提供源码仅提供了此文件,则此文件也需要进源代码库。 bpr/bpf/bpj/h/cpp BCB(Borland C++ Builder)相关文件,如果工程使用了BCB,则需要进源代码库,但在我们的工程中应该不需要这些文件。 cab ActiveX控件包文件,如果是工程使用到的第三方控件,则需要进源代码库。 cfg 编译工程时的配置文件。dcc32.exe程序编译工程时使用cfg文件的顺序为:首先使用dcc32.exe同目录下的dcc32.cfg 文件,然后使用待编译文件同目录下的dcc32.cfg文件,最后使用待编译文件同目录下的同名的cfg文件,为了保证在不

delphi IDHTTP登录网站教程代码

【转】 delphi IDHTTP登录网站教程代码 2010-08-12 14:51 转载自s_jqzhang 最终编辑zxp922 下面代码是delphi2010的,主要区别也就在于stringstream的初使化,Response := TStringStream.Create(”, TEncoding.UTF8); 改成 Response := TStringStream.Create(‘ ‘); unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, StdCtrls; type TForm1 = class(TForm) mmo1: TMemo; btn1: TButton; IdHTTP1: TIdHTTP; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; procedure btn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btn1Click(Sender: TObject); var

微信小程序开发-简易教程

本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果。这个小程序的首页将会显示欢迎语以及当前用户的微信头像,点击头像,可以在新开的页面中查看当前小程序的启动日志。下载源码 1. 获取微信小程序的AppID 首先,我们需要拥有一个帐号,如果你能看到该文档,我们应当已经邀请并为你创建好一个帐号。注意不可直接使用服务号或订阅号的AppID。利用提供的帐号,登录https://https://www.doczj.com/doc/6c8733173.html,,就可以在网站的“设置”-“开发者设置”中,查看到微信小程序的AppID了。 注意:如果我们不是用注册时绑定的管理员微信号,在手机上体验该小程序。那么我们还需要操作“绑定开发者”。即在“用户身份”-“开发者”模块,绑定上需要体验该小程序的微信号。本教程默认注册帐号、体验都是使用管理员微信号。 2. 创建项目 我们需要通过开发者工具,来完成小程序创建和代码编辑。

开发者工具安装完成后,打开并使用微信扫码登录。选择创建“项目”,填入上文获取到的AppID,设置一个本地项目的名称(非小程序名称),比如“我的第一个项目”,并选择一个本地的文件夹作为代码存储的目录,点击“新建项目”就可以了。 为方便初学者了解微信小程序的基本代码结构,在创建过程中,如果选择的本地文件夹是个空文件夹,开发者工具会提示,是否需要创建一个quick start项目。选择“是”,开发者工具会帮助我们在开发目录里生成一个简单的demo。 项目创建成功后,我们就可以点击该项目,进入并看到完整的开发者工具界面,点击左侧导航,在“编辑”里可以查看和编辑我们的代码,在“调试”里可以测试代码并模拟小程序在微信客户端效果,在“项目”里可以发送到手机里预览实际效果。

微信小程序案例源码-cocos creator跨平台开发小游戏案例

前言 本人一直想学习游戏开发,以前做过Android游戏开发,但电脑坏了,所有源码都没有了,后面也就没有开发了,近来下班之余又想开发游戏了。开发游戏之前,需要考虑开发平台及语言,以前基于Android开发,但是只能够运行在Android手机上,开发成本很高。当前各种小游戏平台十分火爆,包括微信小程序、QQ程序、百度小程序、支付宝小程序、华为小程序等等,通过查询了解,cocos creator能够为跨平台提供支持,而且能够一键编译各种小程序、Android和苹果系统原生应用,实现一次开发,多平台编译,多平台运行。 案例介绍 本案例以《成语词语找字大神》(简称“找字大神”)为例,详细介绍整个开发过程,目的在于帮助游戏开发爱好者更快地开发游戏,减少弯路,快速开发自己的游戏。为了更好了解本教程,建议各位爱好者务必使用微信扫描关注试玩,快速了解本游戏的基本功能,更加容易学习本教程。 《成语词语找字大神》微信小游戏

源码开放 在学习的过程中,苦于没有太多案例,经过了长时间的琢磨和试错,终于完成了整个微信小游戏的开发,著作权的申请,微信小游戏的发布,时间比较漫长。本人开发游戏属于兴趣爱好,为了给更多开发者了解各平台小游戏的开发流程、发布流程等,减少弯路,特将本小程序进行源码开放,供各兴趣爱好者参考,如有问题,请联系我。 多平台编译和发布 本教程使用cocos creator跨平台开发有微信小程序为案例,然后根据自己的需要,通过cocos creator跨平台功能构建QQ程序、百度小程序、支付宝小程序、华为小程序、Android和苹果系统原生应用,实现“一次开发,多平台编译,多平台运行”。 下面教程,我将一步一步地描述《成语词语找字大神》的开发、发布、审批整个过程,敬请大家下一篇观看。

微信小程序大全(建议收藏)

微信小程序大全(建议收藏) 怎么找到它们呢?你可以在“发现”里点开最后一行“小程序”,在里面进行搜索。注意: 1、现在搜索功能对模糊搜索的支持不算很好,请严格按照以下列表的名称进行搜索。 2、有写小程序后面还有个“+”号,别忘了一并输入。 3、关于小程序的答疑,我写在最后。【高频使用】美团外卖滴滴公交查询车来了大众点评+京东购物摩拜单车滴滴出行DiDi携程酒店机票火车票 【旅行】驴妈妈门票预订飞常准查航班海南航空微应用南航e行去哪儿出行朋友家精选民宿熊猫签证去哪儿酒店预订【购物】国际品牌价格小小包麻麻好物好药师优选汽车之家Autohome手机查报价有赞精选什么车好微店轻便版Coolbuy玩物志美的官方商城腾讯周边订蛋糕元祖黑天鹅诺心21cake新品有戏应用 【交通】滴滴公交查询车来了租租车出国去哪玩巴士管家知了交通 【健康医疗】姨妈日历美柚APP经期月月记好药师优选孕期提醒APP柚宝宝App药顾问丁香医生 【图片】嗨图MOTIF米田图案壁纸小工具名画滤镜APP今日名画小蚁AI艺术Miatou藏识相册 【工具】我的计算器朝夕日历Pro印象笔记微清单亲戚关系

100房贷助手查地铁Coolbuy玩物志看剧小助手约会来也老板管账掌上探路者生活序列号查查小程序示例解忧室股票灯塔艺术签名助手延迟退休计算器汽车报价库签到打卡实时空气质量自选股高校图书馆查询小小房贷计算器新股申购宝最新汇率查询汇率e二手车e记账e翻译e通勤助手留学公寓助手云梦助眠引导蚂蚁待办蚂蚁微日记窝牛App 【教育培训】小D词典词汇量查询分答快问钢琴优课天天练口语词汇量测试有钱兔择校宝宝微空间一首一首诗人人词典有可能微课蚯蚓课+桔子创投内参感恩笔记本爱弹唱 【快递查询】快递100小助手 【天气查询】智慧气象服务精准天气预报30天天气预报【投资理财】自选股富途牛牛股票微众银行南方基金微理财BP助手FellowPlus创投数据库 【票务】猫眼电影小小票儿电影演出赛事 【阅读】今日头条lite轻芒杂志Qdaily桔子创投内参QQ阅读壹点调查快看漫画段掌柜西窗诗词网易灰评换阅空间360好书推荐历史上的今时心邮口袋书架 【视频】腾讯视频开眼视频Eyepetizer 【美食】下厨房+探城美食APP 【美妆】化妆品点评 【体育】酷竞 【表情包】表情家园斗图表情包神器

delphi打印小票源码

//取得字符的高度 function CharHeight: Word; var Metrics:TTextMetric; begin GetTextMetrics(Printer.Canvas.Handle, Metrics); Result := Metrics.tmHeight; end; //file://取得字符的平均宽度 function AvgCharWidth: Word; var Metrics: TTextMetric; begin GetTextMetrics(Printer.Canvas.Handle, Metrics); Result := Metrics.tmAveCharWidth; end; //file://取得纸张的物理尺寸---单位:点 function GetPhicalPaper: TPoint; var PageSize : TPoint; begin //file://PageSize.X; 纸张物理宽度-单位:点 //file://PageSize.Y; 纸张物理高度-单位:点 Escape(Printer.Handle, GETPHYSPAGESIZE, 0,nil,@PageSize); Result := PageSize; end; //file://2.取得纸张的逻辑宽度--可打印区域 //file://取得纸张的逻辑尺寸 function PaperLogicSize: TPoint; var APoint: TPoint; begin APoint.X := Printer.PageWidth; APoint.Y := Printer.PageHeight; Result := APoint; end; //file://纸张水平对垂直方向的纵横比例 function HVLogincRatio: Extended; var AP: TPoint;

delphi信息采集程序可以推广为网络爬虫程序

下述为新闻采集程序,在理解了新闻采集程序的基础之上就可以做出网络爬虫程序了. 今天,我们讨论的是网站新闻采集程序的制作。所谓新闻采集程序,就是自动抓取网上信息,并保存到自己网站数据库的一种程序。现在很多大型网站都有自己的新闻采集系统,其中许多采集系统价值不菲。通过这篇文章,我希望大家都能自己做一个采集程序,来维护自己的网站。 为了便于理解,先阐述一下本文的新闻采集程序的一些基本信息。这里的新闻系统,是用delphi实现,并将采集到的数据保存到本地access数据库。所以,这将是一个基与桌面的采集程序,而不是类似“动易采集”的基于浏览器。个人认为,基于桌面的采集系统,更容易实现强大的功能,有更高的稳定和安全性能。而经过扩展,大家完全可以把这个例子做成可以访问远程数据库的大型采集系统。 在说如何制作采集程序之前,我们先来定义一个本地access数据库,用来存取采集到的信息。这个数据库只有一个表,表名”T_Article”,该表有ArticleID、ClassID、Title、Keyword、CopyFrom、Content六个字段,分别代表新闻的编号、类别编号、标题、关键字、出处、内容。 首先,所谓采集,第一步当然是要能抓取信息,并且是能按照用户的要求,从网上抓取相关信息。这里假设我们要抓取https://www.doczj.com/doc/6c8733173.html,/article/69/69929.shtm 的文章,加到自己网站的“delphi技术”这么一个栏目。首先要做的,是读取https://www.doczj.com/doc/6c8733173.html,/article/69/69929.shtm 上的文章列表,然后通过列表索引,逐篇将文章正文内容读到我们的网站数据库。接下来将是关键,如何采集https://www.doczj.com/doc/6c8733173.html,/article/69/69929.shtm 上的文章列表。这里分为两步,一、利用delphi网络功能,读取69929.shtm的HTML源文件。二、通过分析69929.shtm的源文件,截取其中列表部分。第一步的实现,可以用delphi的indy控件族的idHTTP控件,该控件在indy Clients面板,该控件的具体使用,将在后面讲解,现在我们只要知道,给定一个URL地址,就能通过indy控件返回该URL的网页源代码。第二步的实现,则是简单的字符串处理了。 我们先来讨论第二步如何实现,打开https://www.doczj.com/doc/6c8733173.html,/article/69/69929.shtm ,可以看到左边是“我的技术中心”“最新文档列表”等东西,这些和我们没有关系。右边则是一篇篇文章的列表,这些就是我们要的。如何截取列表里的内容呢?查看网页的源代码,CTRL+F查找“标题”,可以发现这样一段代码:

标题 对了,这就是列表的开始,那么列表结束的位置,显然是在这里:

编程代码实现 网站自动登录(C# Delphi通用)

表单(form)的自动填写和提交 要使我们的WebBrowser具有自动填表、甚至自动提交的功能,并不困难。 假设有一个最简单的登录页面,输入用户名密码,点“登录”按钮即可登录。已知用户名输入框的id(或Name,下同)是username,密码输入框的id是passwor d,“登录”按钮的id是submitbutton,那么我们只需要在webBrowser的Docume ntCompleted事件中使用下面的代码即可: 假设你已经建立了一个Windows Form,上面有一个WebBrowser名为“we bBrow ser1”。 C# code private void button1_Click(object sender, EventArgs e) { HtmlElement btnSubmit = webBrowser1.Document.All["But_login"]; HtmlElement tbUserid = webBrowser1.Document.All["TBloginName"]; HtmlElement tbPasswd = webBrowser1.Document.All["TBloginPwd"]; if (tbUserid == null || tbPasswd == null || btnSubmit == null) return; tbUserid.SetAttribute("value", "admin"); tbPasswd.SetAttribute("value", "admin"); btnSubmit.InvokeMember("click"); } 这里我们用SetAttribute来设置文本框的“value”属性,用InvokeMember来调用了按钮的“click”方法。因为不同的Html元素,其拥有的属性和方法也不尽相同,所以.Net 2.0提供了统一的HtmlElement来概括各种Html元素的同时,提供了这两个方法以调用元素特有的功能。关于各种Html元素的属性和方法一览,可以查阅MSDN的DHTML Reference。 ※关于表单的提交,的确还有另一种方法就是获取form元素而不是button,并用form元素的submit方法:

小程序源码是怎么回事

小程序源码是怎么回事 大部分人都知道小程序源码对于微信小程序来说,作用是非常大的,所以在这样的一种情况下,如果想要更好的使用,微信小程序的话,就一定要对小程序源码有一个比较全面的了解,有一些微信小程序开发者在进行开发的过程当中,也会有一些相关的源码的数据,这样才能够保证在开发的时候更加的全面和完善,这是非常值得注意的。 但是也有一些微信的用户不知道,微信小程序的主要用途是什么,有一些人甚至会和微信公众号混淆,只是一般情况下来说,微信小程序的主要作用和操作方式是和微信公众号差不多类似的,但是,相比于微信公众号来说,作用和功能是更加强大的,因为在这些小应用当中是可以进行购物或者是消费的,甚至可以替代一些软件应用,整个的操作也非常的简单。 比如说有一些人的手机内存会变得越来越小,主要是因为手机上的垃圾软件变得越来越多,那么在这样的一种情况下,也会影响到手机的运行速度,可是如今有了微信小程序这样的一些应用的话,就能够很好的解决这个问题。小程序源码的了解非常的有必要,因为能够帮助自己进行更好的操作,关于这一点是尤其值得注意的,还有就是有一些人可能会通过点点客这样的一个平台来进行一些相关的营销和宣传。 在这样的一个平台当中,主要是利用小程序源码一些大数据来进行相关的营销,因为在大数据的分析之下能够促成交易的达成,然后会通过一些其他的技术要求来完成相关的工作,同时能够提供非常多样化的营销工具,从而能够满足大部分客户的需求,小程序源码的应用也会变得更加的流畅,这一点是非常关键的。 微信小程序主要是致力于一些社交的平台,所以对于人们的生活也会有更大的帮助,了解了小程序的一些相关应用之后,也能够更加全面的去注意一些问题,在大数据时代下进行营销非常的重要。

DELPHI的一些程序代码

1.程序实现求最大公约数。 procedure TForm1.Button1Click(Sender:TObject); var m,n,t,r:longword; begin m:=strtoint(edit1.Text); n:=strtoint(edit2.Text); if m<=n then begin t:=m; m:=n; n:=t; end; repeat r:=m mod n; m:=n; n:=r; until r=0; Label3.Caption:=inttostr(m); end; 2.程序实现求最小公倍数。 procedure TForm1.Button1Click(Sender:TObject); var m,n,i,j:integer; begin m:=strtoint(edit1.Text); n:=strtoint(edit2.Text); j:=compare(m,n); if m=j then m:=n; for i:=1to j do begin if(i*m)mod j=0then break; end; edit3.Text:=inttostr(i*m); end; function https://www.doczj.com/doc/6c8733173.html,pare(a:integer;b:integer):integer; begin if a<=b then compare:=a else compare:=b; end; procedure TForm1.Button2Click(Sender:TObject); begin edit1.text:=''; edit2.text:='';

文本预览
相关文档 最新文档