delphi7信息系统设计与开发实例源代码(有谁能提供delphi7多线程编程序实例看一下)

:暂无数据 2026-08-30 10:10:06 0

delphi7信息系统设计与开发实例源代码(有谁能提供delphi7多线程编程序实例看一下)

这篇文章给大家聊聊关于delphi7信息系统设计与开发实例源代码,以及有谁能提供delphi7多线程编程序实例看一下对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

有谁能提供delphi7多线程编程序实例看一下

多线程数据采集的代码
unit HMSThread;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SyncObjs, ;
type
THMSampleThread = class(TThread)
private
{ Private declarations }
TmpMeterInfo:TMeterInfo;
TmpMeterData:TMeterData;
public
procedure Execute; override;
constructor Create(strMeterInfor:TMeterInfo;const IsSuspended:Boolean=False);
procedure DebugInfoShow;
procedure AppendHMSDataInDB;
end;
implementation
//uses
// HeatTransferMeterMain;
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure THMSampleThread.UpdateCaption;
begin
Form1.Caption := ’Updated in a thread’;
end; }
{ THMSampleThread }
procedure THMSampleThread.AppendHMSDataInDB;
begin
with DMframe do
begin
InsertOneSampleRecord(TmpMeterInfo,TmpMeterData);
end;
end;
constructor THMSampleThread.Create(strMeterInfor: TMeterInfo;
const IsSuspended: Boolean);
begin
FreeOnTerminate:=True;
TmpMeterInfo:=TMeterInfo.Create;
TmpMeterInfo:=strMeterInfor;
inherited Create(IsSuspended);
end;
procedure THMSampleThread.DebugInfoShow;
var
TmpMtInfo:TMeterInfo;
TmpMtData:TMeterData;
begin
TmpMtInfo:=TMeterInfo.Create;
TmpMtInfo:=TmpMeterInfo;
TmpMtData:=TMeterData.Create;
TmpMtData:=TmpMeterData;
with FrmMain do
begin
end;
end;
procedure THMSampleThread.Execute;
begin
{ Place thread code here }
TmpMeterData:=TMeterData.Create;
InitMeterData(TmpMeterData);
SampleHMS(TmpMeterInfo,TmpMeterData);
Synchronize(DebugInfoShow);
Synchronize(AppendHMSDataInDB);
InterlockedIncrement(CurrFinishedSampleHMNum);
end;
end.

求高手用delphi7补充一段检测执行代码

1、设置一个位置存储最后一次更新过的文件,如在注册表、配置文件等
2、程序运行的时候读取上次保存过的最后更新文件的名字
3、当按下按钮的时候,对指定文件夹进行遍历,比较文件夹下指定类型文件的文件名,如果小于原最后更新文件名,则比较下一个文件;如果大于最后更新的文件名,即保留此文件名为需要删除的文件,并对后面的文件与此文件进行比较,如仍有晚于此文件的更新:保存此文件名至存储标志处,并将新的文件名保留为需要删除的文件。全部文件比较结束,删除保存的最后更新的文件名即可。
不知道你觉得哪一部份有难度呢,整体感觉非常简单,二三十行代码完全可以搞定了。
这是我弄的一些代码,没有经过测试,你自己测试并修改一下错误,原理就是这样的:
var
DefaultDataFile: TIniFile;
LastSavedFile, OperateDirectory: string;
HasFile: Integer;
SR: TSearchRec;
FileNumberList: array of Integer;
FileCount: Integer;
begin
//建立或打开配置文件
DefaultDataFile := TIniFile.Create(ExtractFilePath(Application.ExeName) +
’Default.ini’);
try
//读取上次更新文件信息
LastSavedFile := DefaultDataFile.ReadString(’File’, ’LastSavedFile’, ’’);
//读取操作目录
OperateDirectory := DefaultDataFile.ReadString(’Dir’, ’OperateDirectory’, ’’);
if OperateDirectory = ’’ then
OperateDirectory := ExtractFilePath(Application.ExeName);
if Copy(OperateDirectory, Length(OperateDirectory) - 1, 1) 《》 ’\’ then
OperateDirectory := OperateDirectory + ’\’;
FileCount := 0;
//遍历文件夹,找出所有以A开头的文件文件
HasFile := FindFirst(OperateDirectory + ’*.*’, faAnyFile, SR);
while HasFile = 0 do
begin
if UpperCase(Copy(SR.Name, 1, 1)) = ’A’ then
begin
Inc(FileCount);
SetLength(FileNumberList, FileCount);
FileNumberList :=
StrToInt(Copy(SR.Name, 2, Length(SR.Name) - 1 ));
end;
HasFile := FindNext(SR);
end;
{在此调用排序算法对FileNumberList中的数据进行排序,确定最大文件号
不用字符串的原因在于在字符串中A15 《 A2,如果不涉及到排序问题,
可以直接用字符串来操作文件名,此处略去排序部份。如果文件很多的话,
排序会浪费很多时间,可以用几个变量来保存最大文件编号及需要保留的文件编号}
if StrToIntDef(LastSavedFile,0) 《 FileNumberList then
if FileExists(OperateDirectory + ’A’ +
IntToStr(FileNumberList)) then
begin
//删除最大编号文件
DeleteFile(OperateDirectory + ’A’ +
IntToStr(FileNumberList));
//保存最后文件编号
DefaultDataFile.WriteString(’File’, ’LastSavedFile’,
IntToStr(FileNumberList));
end
else
Application.MessageBox(’删除文件出错,请重试!’, ’出错’, MB_ICONERROR or MB_OK);
finally
DefaultDataFile.Free;
end;
end;

在delphi7中将图片保存到access数据库中的源代码

字段名称    类型    描述
  id    自动编号   主键值
img OLE对象   用来保存图片数据procedure TForm1.Button1Click(Sender: TObject);
var
F:File of Byte;
size:Longint; //文件大小
FilePath,time:string; //文件时间
begin
FilePath:=ExtractFilePath(Paramstr(0))+’demo.jpg’;//图片地址为当前目录下
AssignFile(F,FilePath);
reset(F);
size:=Filesize(F);//获取文件大小。
time:=DatetimetoStr(FileDateToDateTime(FileAge(FilePath)));//获取文件创建时间。
closefile(F);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(’select * from Image’);
adoquery1.Open;
adoquery1.Insert;
adoquery1.FieldByName(’FileName’).AsString:=ExtractFileName(FilePath); //存储文件名称
adoquery1.FieldByName(’FileKind’).AsString:=ExtractFileExt(FilePath); //存储文件扩展名。
adoquery1.FieldByName(’FileSize’).AsInteger:=size; //存储文件的大小。
adoquery1.FieldByName(’FileTime’).AsString:=time; //存储文件的创建时间。
adoquery1.FieldByName(’SaveTime’).AsDateTime:=now();//存取文件的存储时间
TBlobField(ADOquery1.FieldByName(’FileContent’)).LoadFromFile(FilePath);//图片的二进制流,存进去之后,数据库会显示(《《Binary》》)
ADOquery1.Post;
end;下面是读取还有代开的代码,添加一个Timage空间进行显示,ID为我的自增列,读取最后一条插入记录procedure TForm1.Button2Click(Sender: TObject);
Var
Ms:TStream;
jpg:Tjpegimage;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(’select top 1 * from Image order by id desc’);
adoquery1.Open;
Ms:=TStream.Create;
MS:=adoquery1.CreateBlobStream(adoquery1.FieldbyName(’FileContent’),bmRead);
Ms.Position :=0;
jpg:=Tjpegimage.Create;
Jpg.LoadFromStream(Ms);
Image1.Picture.Assign(Jpg);
jpg.Free;
MS.Free;
***隐藏网址***

在delphi7怎么让编写的源代码自动对齐

CnPack IDE 专家包(CnWizards) 里,里面有格式化功能,还有很多其他编码用得上的功能。
还有DelForExp,也有缩写作DelForEx,也是格式化的IDE工具。

怎么用delphi7 编写数据库程序

在delphi中有一批数据库专用的控件,比如ADO类的,可以直接用于数据库开发,你可以先用一个Access数据库自己进行一下测试。
首先在窗体上放一个ADOConnection1控制,用于与Access数据库进行连接,连接字符串为:
ADOConnection1.ADOC_Data.ConnectionString:=’provider=Microsoft.Jet.OLEDB.4.0;’
+’user ID=Admin;’
//+’Data Source=’+ExtractFilePath(Application.ExeName)+’MyRecord.mdb;’
+’Data Source=’+MyDataBaseName+’;’
+’Mode=Share Deny None;Extended Properties="";’
+’Jet OLEDB:System database="";’
+’Jet OLEDB:Registry Path="";’
+’Jet OLEDB:Database Password="123456;’ //数据库密码
+’Jet OLEDB:Engine Type=5;’
+’Jet OLEDB:Database Locking Mode=1;’
+’Jet OLEDB:Global Partial Bulk Ops=2;’
+’Jet OLEDB:Global Bulk Transactions=1;’
+’Jet OLEDB:New Database Password="";’
+’Jet OLEDB:Create System Database=False;’
+’Jet OLEDB:Encrypt Database=False;’
+’Jet OLEDB:Don’+’’’’+’t Copy Locale on Compact=False;’
+’Jet OLEDB:Compact Without Replica Repair=False;’
+’Jet OLEDB:SFP=False’;
DM.ADOC_Data.LoginPrompt:=False;
再放一个ADOQuery1控制,用于操作数据表,将它的Connection属性设置为ADOConnection1。或用语句实现:ADOQuery1.Connection:=ADOConnection1;
然后再分别放置一个DataSource1和一个DBGrid1控件,
将DataSource1的DataSet属性设置为ADOQuery1。
将DBGrid1的DataSource属性设置为DataSource1。
这时就可以通过ADOQuery1来执行SQL语句来查询数据表,并通过DBGrid1显示出来了。

delphi7 spcomm开发串口调试助手详细步骤

function TForm1.StartComm: boolean;
begin
comm.CommPort := 端口号;
comm.BaudRate := 波特率;
//comm.ByteSize := 数据位;
//comm.Parity := 检验位;
//comm.StopBits := 停止位;
Comm.InBufferSize:=1024;
Comm.InputLen:=1024;
Comm.ReadIntervalTimeout:=100;
Comm.ReadTotalTimeoutMultiplier:=0;
Comm.ReadTotalTimeoutConstant:=0;
Comm.ReplacedChar:=#0;
Comm.XoffChar:=#19;
Comm.XoffLimit:=500;
Comm.XonChar:=#17;
Comm.XonLimit:=500;
comm.StartComm;
comm.PortOpen:=true;
if comm.PortOpen then
begin
Result := True;
end
else
begin
Result := false;
end;
end;
procedure TForm1.StopComm;
begin
Comm.StopComm;
end;
procedure TForm1.ReceiveData(Sender: TObject; Buffer: PAnsiChar; BufferLength: Word);
var
ByteArr: TByteArrData;
// 上面定义 type TByteArrData = array of Byte;
Pstr:string;
begin
Move(Buffer^, ByteArr, BufferLength); //接收数据写入ByteArr数组

Pstr:=GetProtocolHexStr(ByteArr,BufferLength); //转为16进制字符串
Memo1.lines.add(Pstr); //显示
end;
function GetHexStr(ByteArr: TByteArrData;Len:integer):String;
var
I, J: Integer;
Str: string;
begin
for I := 1 to Len do
begin
J := ByteArr;
Str := Str + IntToHex(J, 2) + ’ ’;
end;
Result:=Str;
end;

delphi7中如何打印当前窗体的内容的源代码

form1.PrintScale:=poPrintToFit;
form1.Print;
是可以打印出来的啊,
你这样试下:
在USE里加入Clipbrd
procedure TForm1.Button1Click(Sender: TObject);
var
FormImage: TBitmap;
MyImage:TImage;
begin
FormImage := GetFormImage;
MyImage:= TImage.Create(nil);
try
Clipboard.Assign(FormImage);
MyImage.Picture.Assign(Clipboard);
MyImage.Picture.SaveToFile(’D:/xxx.bmp’);
finally
begin
MyImage.Free;
FormImage.Free;
end;
end;
end;
看看产生的xxx.bmp就知道了,如果xxx.bmp没问题建议看看是不是打印机的问题
窗体名直接 .Print只能打印能看见的部分,如果窗体有滚动条,直接看不见那部分是打不出来的

用delphi7做一个计算器和用java编一个简单程序

java我还没学,delphi会一点,这是计算器的源代码,界面你就自己做了
procedure TForm1.FormCreate(Sender: TObject);
begin
button0.Click;
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
if point_flag=false then
begin
input_number(10);
point_flag:=true;
end;
end;
procedure TForm1.Button29Click(Sender: TObject);
begin
s_source_1:=’0’;
s_source_2:=’0’;
s_result:=’0’;
result:=0;
point_flag:=false;
operation_symbol:=0;
input_2:=false;
display_refresh();
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
operation_over:=true;
source_1:=strtofloat(s_source_1);
if input_2 then
begin
source_2:=strtofloat(s_source_2);
end
else
begin
// source_2:=source_1;
// s_source_2:=floattostr(source_2);
end;
case operation_symbol of
0:
begin
result:=source_1;
display_refresh();
exit;
end;
1:
begin
result:=source_1+source_2;
display_refresh();
end;
2:
begin
result:=source_1-source_2;
display_refresh();
end;
3:
begin
result:=source_1 * source_2;
display_refresh();
end;
4:
begin
if source_2 = 0 then
begin
messagebox(form1.Handle,’0 不能做除数’,’错误!’,0);
exit;
end;
result:=source_1 / source_2;
display_refresh();
end;
end;
input_2:=false;
source_1:=result;
s_source_1:=floattostr(result);
s_source_2:=’0’;
point_flag:=false;
end;
procedure TForm1.Button19Click(Sender: TObject);
begin
if result》=0 then
begin
operation_over:=true;
result:=sqrt(result);
display_refresh();
if input_2=true then
begin
source_2:=result;
s_source_2:=’0’;
input_2:=false;
end
else
begin
s_source_1:=floattostr(result);
end;
end
else
begin
messagebox(form1.Handle,’负数不能开根号’,’错误!’,0);
end;
end;
procedure TForm1.Button30Click(Sender: TObject);
begin
if (operation_symbol 》0) and (input_2 = true) then
begin
button15.Click;
end;
operation_symbol:=1;
// source_2:=0;
// s_source_2:=’0’;
point_flag:=false;
operation_over:=false;
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
if (operation_symbol 》0) and (input_2 = true) then
begin
button15.Click;
end;
operation_symbol:=2;
// source_2:=0;
// s_source_2:=floattostr(source_2);
point_flag:=false;
operation_over:=false;
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
if (operation_symbol 》0) and (input_2 = true) then
begin
button15.Click;
end;
operation_symbol:=3;
// source_2:=0;
// s_source_2:=floattostr(source_2);
point_flag:=false;
operation_over:=false;
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
if (operation_symbol 》0) and (input_2 = true) then
begin
button15.Click;
end;
operation_symbol:=4;
// source_2:=0;
// s_source_2:=floattostr(source_2);
point_flag:=false;
operation_over:=false;
end;
procedure TForm1.Button24Click(Sender: TObject);
begin
if result 《》 0 then
begin
operation_over:=true;
result:=1 / result;
display_refresh();
if input_2=true then
begin
source_2:=result;
s_source_2:=’0’;
input_2:=false;
end
else
begin
s_source_1:=floattostr(result);
end;
end
else
begin
messagebox(form1.Handle,’0 不能求倒数’,’错误!’,0);
end;
end;
procedure TForm1.Button28Click(Sender: TObject);
begin
if input_2 = true then
begin
s_source_2:=’0’;
source_2:=0;
result:=0;
display_refresh();
end
else
begin
s_source_1:=’0’;
source_1:=0;
result:=0;
display_refresh();
end;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
result:=(-1)*result;
if input_2 then
begin
source_2:=result;
s_source_2:=floattostr(source_2);
end
else
begin
s_source_1:=floattostr(result);
end;
display_refresh();
end;
procedure TForm1.Button27Click(Sender: TObject);
begin
if input_2 = false then
begin
if length(s_source_1)》2 then
begin
delete(s_source_1,length(s_source_1),1);
result:=strtofloat(s_source_1);
display_refresh();
exit;
end;
if length(s_source_1)《=3 then
begin
result:=strtofloat(s_source_1);
if result 《= 0 then
begin
s_source_1:=’0’;
end;
if result》0 then
begin
delete(s_source_1,length(s_source_1),1);
result:=strtofloat(s_source_1);
end;
display_refresh();
end;
end
else
begin
end;
end;
end.
实在不行再问我要完整的,我的邮箱345053709@qq.com

我要做一个体育成绩系统分析与设计 用delphi7做实现软件 access做数据库

使用ACCESS做数据库的话,首先就是连接数据库使用ADOConnection控件连接数据库,可以自己手动设置连接,在ConnectionString属性中进行设置。也可以使用代码连接,代码如下:
ADOConnection1.ConnectionString :=’Provider=Microsoft.Jet.OLEDB.4.0;Data Source=’+ExtractFilePath(application.ExeName)+’你的数据库.mdb;Persist Security Info=False;Jet OLEDB:Database Password=数据库密码’;
然后使用ADOQuery控件通过SQL语句进行读写数据。
最后使用DataSource控件作为数据源、DBGrid控件做表格,可以进行显示数据。
你说的存储和调用应该就是读数据和写数据。
读数据使用代码:
ADOQuery.Close ;
Adoquery.SQL.Clear ;
Adoquery.SQL.Add(’select * from 表名 where 字段=’查询内容’’);
Adoquery.Open ;
写数据使用代码:
Adoquery.Close ;
Adoquery.SQL.Clear ;
Adoquery.SQL.Add(’insert into 表名 (字段1,字段2) values(:a,:b)’);
Adoquery.Parameters.ParamByName(’a’).Value :=存入的内容1;
Adoquery.Parameters.ParamByName(’b’).Value :=存入的内容2;
Adoquery.ExecSQL ;
你如果要做一个系统的话,不是三言两语就能说完的,要是还有不明白的可以Hi我。

文章分享结束,delphi7信息系统设计与开发实例源代码和有谁能提供delphi7多线程编程序实例看一下的答案你都知道了吗?欢迎再次光临本站哦!

delphi7信息系统设计与开发实例源代码(有谁能提供delphi7多线程编程序实例看一下)

本文编辑:admin

更多文章:


checked in(check in和check out的区别)

checked in(check in和check out的区别)

本篇文章给大家谈谈checked in,以及check in和check out的区别对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月7日 01:20

java经典上机编程题(java上机题 请问这道题应该怎么写)

java经典上机编程题(java上机题 请问这道题应该怎么写)

大家好,java经典上机编程题相信很多的网友都不是很明白,包括java上机题 请问这道题应该怎么写也是一样,不过没有关系,接下来就来为大家分享关于java经典上机编程题和java上机题 请问这道题应该怎么写的一些知识点,大家可以关注收藏,免

2026年9月7日 01:10

影视剧中有哪些剧情颠覆了你的三观?金庸的武侠小说《白马啸西风》为什么没有被拍成电影或者电视剧

影视剧中有哪些剧情颠覆了你的三观?金庸的武侠小说《白马啸西风》为什么没有被拍成电影或者电视剧

各位老铁们,大家好,今天由我来为大家分享白马影视,以及影视剧中有哪些剧情颠覆了你的三观的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年9月7日 00:30

mysql varchar和char的区别(mysql中char、varchar、nvarchar区别)

mysql varchar和char的区别(mysql中char、varchar、nvarchar区别)

各位老铁们,大家好,今天由我来为大家分享mysql varchar和char的区别,以及mysql中char、varchar、nvarchar区别的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大

2026年9月7日 00:10

linux命令的选项和参数(linux为什么要有参数和选项)

linux命令的选项和参数(linux为什么要有参数和选项)

各位老铁们好,相信很多人对linux命令的选项和参数都不是特别的了解,因此呢,今天就来为大家分享下关于linux命令的选项和参数以及linux为什么要有参数和选项的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月6日 20:20

arm汇编指令流程图(arm 汇编指令)

arm汇编指令流程图(arm 汇编指令)

大家好,如果您还对arm汇编指令流程图不太了解,没有关系,今天就由本站为大家分享arm汇编指令流程图的知识,包括arm 汇编指令的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月6日 18:40

perseverance的意思(preseverance的意思)

perseverance的意思(preseverance的意思)

大家好,如果您还对perseverance的意思不太了解,没有关系,今天就由本站为大家分享perseverance的意思的知识,包括preseverance的意思的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月6日 18:30

react native和uniapp(h5和uniapp和react性能)

react native和uniapp(h5和uniapp和react性能)

大家好,如果您还对react native和uniapp不太了解,没有关系,今天就由本站为大家分享react native和uniapp的知识,包括h5和uniapp和react性能的问题都会给大家分析到,还望可以解决大家的问题,下面我们就

2026年9月6日 18:00

mysql查看有哪些表(在mysql里面怎么查看数据库里面有多少表)

mysql查看有哪些表(在mysql里面怎么查看数据库里面有多少表)

大家好,mysql查看有哪些表相信很多的网友都不是很明白,包括在mysql里面怎么查看数据库里面有多少表也是一样,不过没有关系,接下来就来为大家分享关于mysql查看有哪些表和在mysql里面怎么查看数据库里面有多少表的一些知识点,大家可以

2026年9月6日 17:40

parsefloat()(html里的parsefloat什嘛意思)

parsefloat()(html里的parsefloat什嘛意思)

大家好,如果您还对parsefloat()不太了解,没有关系,今天就由本站为大家分享parsefloat()的知识,包括html里的parsefloat什嘛意思的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月6日 16:30

最近更新

batterymonitorwidgetpro汉化版(如何校正安卓软件 battery monitor widget 软件的充电电流)
2026-09-07 03:10:29 浏览:0
手机加速软件(加速器哪个好用)
2026-09-07 02:50:29 浏览:0
热门文章

yoga pro 14s carbon(yoga14s接口类型)
2026-07-03 17:50:01 浏览:5
domino directory(帮我翻译一下Recipient’s Domino Directory entry does not specify a valid Notes mail file)
2026-08-03 19:20:01 浏览:4
标签列表