delphi中,我用多线程做了一个扫描程序目录下文件的类似资源管理的程序

delphi中,我用多线程做了一个扫描程序目录下文件的类似资源管理的程序,第1张

unit Unit1

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls

type

TTestThread=class(TThread)

protected

procedure Executeoverride

end

TForm1 = class(TForm)

Button1: TButton

Button2: TButton

Edit1: TEdit

procedure Button1Click(Sender: TObject)

procedure Button2Click(Sender: TObject)

private

{ Private declarations }

FPauseThread:Boolean

public

{ Public declarations }

published

property PauseThread: Boolean read FPauseThread write FPauseThread

end

var

Form1: TForm1

Answer:Int64

implementation

{$R *.dfm}

{ TTestThread }

procedure TTestThread.Execute

var

i:Integer

begin

inherited

FreeOnTerminate:=True

for i := 1 to 20000000 do

begin

Application.ProcessMessages//处理主线程消息

if Form1.PauseThread then//如果暂停,则

begin

Terminate//暂停线程执行

ShowMessage('线程被暂停')

break //注意:没有设计恢复线程执行的代码,请自行设计

end

Inc(Answer,Round(Abs(Sin(Sqrt(i)))))//

end

ShowMessage('线程结束')

end

procedure TForm1.Button1Click(Sender: TObject)

var

NewThread:TTestThread

begin

PauseThread:=False//线程暂停的标志,先置为不暂停

NewThread:=TTestThread.Create(False)//创建线程

NewThread.Suspend

NewThread.Resume

ShowMessage('调用结束')

//NewThread.Free

end

procedure TForm1.Button2Click(Sender: TObject)

begin//暂停线程

PauseThread:=Not PauseThread

end

end.

这个和delphi本身没有关系

一般有两种处理方式:

【方式一】在制作条码时候,条码自身包含批号,数量之类的信息,那在扫描的时候,可读出相关信息,再存入数据库 (具体条码值与信息的对应关系,那要看制作时如何定义该条码的)

【方式二】当信息量比较大的时候,条码本身很难包括这么多信息,那就需要再制作条码的时候,将条码和对应的信息作为一个基础资料保存在数据库中。在扫描的时候,读出条码值,储存在数据库。在取数据方面,就可以对应条码值作为关键字,取出基础资料中对应的信息


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11745064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存