《用delphi开发共享软件》-15.2桌面提示器

打开一个配置文件:

打开一个配置文件

操作TStringGrid

 1 Procedure EmptyGrid(Var sg:TStringGrid);
 2 Var i:Integer;
 3 begin
 4 for i:=1 to sg.RowCount -1 do
 5 sg.Rows[i].clear;
 6 sg.RowCount :=2;
 7 end;
 8
 9 Procedure SetGridTitle(Var SG:TStringGrid; sTil:array of String);
10 Var i,l,h:integer;
11 begin
12 l:=Low(sTil);
13 h:=High(sTil);
14 if sg.ColCount<h-l+1 then sg.ColCount:=h-l+1;
15 for i:=0 to sg.ColCount -1 do
16 begin
17 sg.Cells[i,0]:=sTil[l+i];
18 if i>h then Exit;
19 end;
20 end;
21
22 Procedure SetGridNumber(Var SG:TStringGrid;
23 Col,bn,len:Integer;ch:Char);
24 Var i:integer;
25 begin
26 for i:=1 to sg.RowCount -1 do
27 begin
28 sg.Cells[Col,i]:=Format(‘%d‘,[bn+i-1]);
29 sg.Cells[Col,i]:=Padl(sg.Cells[Col,i],ch,len);
30 end;
31 end;

操作TStringGrid

 1 procedure TFrmPara.WriteParameters;
 2 Var s:String;
 3 begin
 4 DelOneDevice(MYINI,‘关机时间‘);
 5 WriteGridToINI(MYINI,‘关机时间‘,sgTime);
 6 DelOneDevice(MYINI,‘桌面图片‘);
 7 WriteGridToINI(MYINI,‘桌面图片‘,sgPic);
 8 DelOneDevice(MYINI,‘背景音乐‘);
 9 WriteGridToINI(MYINI,‘背景音乐‘,sgSong);
10 DelOneDevice(MYINI,‘桌面提示‘);
11 WriteGridToINI(MYINI,‘桌面提示‘,sgHint);
12 DelOneDevice(MYINI,‘定时提示‘);
13 WriteGridToINI(MYINI,‘定时提示‘,sgNote);
14
15 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkSrvShutDown‘,BoolStr(chkSrvShutDown.checked));
16 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkShutAfterATime‘,BoolStr(chkShutAfterATime.checked));
17 WriteOnePara(MYINI,‘SHUTDOWN‘,‘Interval‘,inttostr(spInterval.value));
18
19 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkClose‘,BoolStr(chkClose.checked));
20 WriteOnePara(MYINI,‘SHUTDOWN‘,‘spClose‘,inttostr(spClose.value));
21
22 WriteOnePara(MYINI,‘SHUTDOWN‘,‘AutoShutDown‘,BoolStr(chkAutoShutDown.checked));
23 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkShowDate‘,BoolStr(chkShowDate.checked));
24 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkPlayMusic‘,BoolStr(chkPlayMusic.checked));
25 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkStopMusic‘,BoolStr(chkStopMusic.checked));
26
27 WriteOnePara(MYINI,‘SHUTDOWN‘,‘tbVol1‘,inttostr(tbVol1.Position));
28 WriteOnePara(MYINI,‘SHUTDOWN‘,‘tbVol2‘,inttostr(tbVol2.Position));
29
30 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkShowLine‘,BoolStr(chkShowLine.checked));
31 WriteOnepara(MYINI,‘SHUTDOWN‘,‘Font‘,fonttostring(plHintFont.Font,True));
32 MyWriteColor(MYINI,‘SHUTDOWN‘,‘FrameColor‘,plLineColor.font.Color);
33
34 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkClockOne‘,BoolStr(chkClockOne.checked));
35 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkClockHalf‘,BoolStr(chkClockHalf.checked));
36 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkHintWindow‘,BoolStr(chkHintWindow.checked));
37 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkWallPaper‘,BoolStr(chkWallPaper.checked));
38 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkHintMusic‘,BoolStr(chkHintMusic.checked));
39 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkHintMusicFade‘,BoolStr(chkHintMusicFade.checked));
40 WriteOnePara(MYINI,‘SHUTDOWN‘,‘spHintMusicFade‘,inttostr(spHintMusicFade.value));
41
42 MyWriteColor(MYINI,‘SHUTDOWN‘,‘BKCOLOR‘,MyBackColor);
43 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkMusicDown‘,BoolStr(chkMusicDown.checked));
44 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkMusicStopRun‘,BoolStr(chkMusicStopRun.checked));
45 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkMusicStopPlay‘,BoolStr(chkMusicStopPlay.checked));
46 WriteOnePara(MYINI,‘SHUTDOWN‘,‘chkMusicFade‘,BoolStr(chkMusicFade.checked));
47 WriteOnePara(MYINI,‘SHUTDOWN‘,‘spMusicDown‘,inttostr(spMusicDown.value));
48 WriteOnePara(MYINI,‘SHUTDOWN‘,‘spMusicStopRun‘,inttostr(spMusicStopRun.value));
49 WriteOnePara(MYINI,‘SHUTDOWN‘,‘spMusicStopPlay‘,inttostr(spMusicStopPlay.value));
50 WriteOnePara(MYINI,‘SHUTDOWN‘,‘spMusicFade‘,inttostr(spMusicFade.value));
51
52 end;
53
54 procedure DelOneDevice(devFile:String;sType:String);
55 Var aIniFile:TIniFile;
56 begin
57 aIniFile:=TIniFile.Create(devFile);
58 try
59 aIniFile.EraseSection(sType);
60 finally
61 aIniFile.Free;
62 end;
63 end;
64
65 procedure WriteGridToINI(sFile,Sect:String;sg:TStringGrid);
66 Var i:integer;
67 s:String;
68 begin
69 {$I-}
70 DelOneDevice(sFile,Sect);
71 for i:=0 to SG.RowCount-1 do
72 begin
73 StrgridToStr(S,SG,i);
74 WriteOnePara(sFile,Sect,‘Row‘+IntToStr(i),s);
75 end;
76 end;
77
78 procedure StrGridToStr(Var S:String; Var SG:TStringGrid; Row:longint);
79 Var i:integer;
80 begin
81 S:=‘‘;
82 for i:=0 to SG.ColCount -1 do
83 S:=S+SG.Cells[i,Row]+‘^^‘;
84 end;
85
86 procedure WriteOnePara(sIniFile,Sct,Idt,Value:String);
87 Var aIniFile:TIniFile;
88 begin
89 aIniFile:=TIniFile.Create(sIniFile);
90 try
91 aIniFile.WriteString(Sct,Idt,Value);
92 finally
93 aIniFile.Free;
94 end;
95 end;

时间: 2024-08-03 06:41:15

《用delphi开发共享软件》-15.2桌面提示器的相关文章

实现窗体随着鼠标移动(控件)--《用delphi开发共享软件》-15.1任务管理器

private //窗体移动: OldPos,NewPos:TPoint; bMove:Boolean; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin bMove:=True; OldPos:=ClientToScreen(Point(X,Y)); end; procedure TForm1.FormMouseMove(

设置随机启动--《用delphi开发共享软件》-15.1任务管理器

在设置窗体中 chkAutoStart: TCheckBox; procedure TFrmSetup.FormCreate(Sender: TObject);Var s:String; _RootKey: HKEY; _Localkey: String;begin{$ifdef Proxy} btnAbout.Enabled :=False;{$endif} _RootKey:=HKEY_LOCAL_MACHINE; _LocalKey:='software\microsoft\windows

Qt Quick应用开发介绍 1-5

Qt Quick应用开发介绍 Introduction to Application Development with Qt Quick Release 1.0 Chapter1 Introduction 介绍 1.1 谁应该阅读这份教程 本教程解释了Qt Quick应用开发的基础以及使用示例代码帮助全面了解; 教程包含标准Qt Quick文档和基础概念, API以及详细的源码信息; 本教程是为了新接触Qt Quick的你准备的, 虽然从基础开始, 但你还是要熟悉编程的概念, 有JavaScri

?Delphi开发WebService给ASP.NET调用

Delphi开发WebService给ASP.NET调用 说明: 1.本文档分3个部分,分别为: 用Delphi编写WebService 在IIS下部署WebService 在ASP.NET中调用webservice 2.开发环境为Windows XP SP2.Delphi 7.0.IIS 5.1.VS 2008(C#) 一.用Delphi编写WebService 第1步:File → New → Other → WebServices → SOAP Server Application 第2步

阿庆SQL智能查询分析器,使用delphi开发的一个数据库查询分析管理工具.分享给大家

为方便自己工作,使用delphi开发的一个数据库查询分析管理工具.分享给大家,具体以下特点: 1.由于使用ADO连接,理论支持SQL Server.Access.MySQL.Oracle等所有数据库 2.支持SQL关键词自动提示 3.支持表名自动提示 4.支持表字段自动提示 5.支持SQ关键词.表名.表字段不同颜色显示 6.支持SQL语句注释(包括ACCESS) 7.支持选择部分文字执行SQL语句 8.查询结果支持增加.修改.编辑 9.绿色程序无附加文件,只有一个文件即可运行,文件大小只有400

Android开发中15条小经验

Android开发中15条小经验 1. TextView中的getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的. 所以如果直接用返回的值来设置会出错,解决办法是用setTextSize()的另外一种形式,可以指定单位: setTextSize(intunit,intsize) TypedValue.COMPLEX_UNIT_PX:Pixels TypedValue.COMPLEX_UNIT_SP:ScaledPixels TypedValue.CO

使用delphi 开发多层应用(二十四)KbmMW 的消息方式和创建WIB节点

KbmMW 中支持基于UDP的消息广播,也支持TCP/IP hub/spoke 方式,还有 基于UDP或者TCP/IP 的点对点的消息传输. 1.基于UDP的消息广播 根据UDP  的工作原理,在同一个网段里面,可以发布广播包.这样发布者只需要发布一次, 消息就可以被同一网段上的所有订阅者收到.这样大大的降低了网络带宽.这个方式的最大缺点是 无法直接跨越网段,如果要跨越网段,就需要建立一个Gateway. Gateway 就是一个程序,连接两个网段. 它接受第一个网段的广播消息,然后再广播到第二

使用delphi 开发多层应用(二十三)KbmMW 的WIB

解释WIB 是什么之前,先回顾以下我们前面的各种服务工作方式.前面的各种服务的工作方式都是请求/应答方式. 客户端发送请求,服务器端根据客户端的请求,返回相应的结果.这种方式是一种顺序式访问,是一种紧耦合的方式. 服务器被动接受访问,服务器无法直接给客户端发消息.针对这种情况出现了发布/订阅方式.现在这种方式很热呀! 发布/订阅方式类似出版社发行杂志,出版社每年要求大家订阅杂志,当你订阅后,每月到时,不管你有没有问, 杂志都会准时送到你家门口.对于计算机系统类似,当你订阅了服务器上的某种消息后,

Delphi开发DLL的方法

1.1)FILE—>NEW—>OTHER,选择DLL. 2)FILE-->NEW-->UNIT.然后写代码.在interface 后面加入 function countnum(i:integer):integer;export; 在implementation后面写函数的代码. 3)在DLL的project文件里面的{$R *.res}后面加上exports countnum; 调试成功以后 会生成一个 project1.dll 文件 2.调用DLL的方法:在unit 部分编写代码