pm05bse

所属分类:Email客户端
开发工具:Delphi
文件大小:1159KB
下载次数:11
上传日期:2010-05-13 16:41:23
上 传 者kkkmmmalan
说明:  邮件收发的实现以及 邮件的管理的实现。。。
(Implementation of e-mail sending and receiving)

文件列表:
pm05bse\源码\UseSet.pas (7809, 2002-05-19)
pm05bse\源码\Send.pas (4385, 2002-05-19)
pm05bse\源码\UseSet.dfm (3210, 2002-05-10)
pm05bse\源码\Send.dfm (5050, 2002-05-07)
pm05bse\源码\NewUser.pas (3523, 2002-05-19)
pm05bse\源码\main.pas (30899, 2002-05-19)
pm05bse\源码\NewUser.dfm (3553, 2002-05-08)
pm05bse\源码\main.dfm (167199, 2002-05-19)
pm05bse\源码\getmail.dfm (1417, 2002-05-07)
pm05bse\源码\asSet.pas (4303, 2002-05-19)
pm05bse\源码\chUser.dfm (2418, 2002-05-08)
pm05bse\源码\chUser.pas (5210, 2002-05-19)
pm05bse\源码\asSet.dfm (1668, 2002-05-09)
pm05bse\源码\addNewAs.pas (2617, 2002-05-19)
pm05bse\源码\about.pas (1003, 2002-05-19)
pm05bse\源码\addNewAs.dfm (2025, 2002-05-05)
pm05bse\源码\about.dfm (9269, 2002-05-19)
pm05bse\源码\AsNote.dfm (43440, 2002-05-09)
pm05bse\源码\AsNote.pas (8124, 2002-05-19)
pm05bse\源码\getmail.pas (784, 2002-05-19)
pm05bse\源码\pm05b.dpr (629, 2002-05-09)
pm05bse\源码\Help.txt (1820, 2002-05-19)
pm05bse\源码\pm.mdb (458752, 2010-05-13)
pm05bse\源码\开发文档.txt (3542, 2002-05-08)
pm05bse\源码\BeBox - Icon Library_Ico_76.ico (2238, 1999-10-22)
pm05bse\源码\NewUser.dcu (6511, 2010-05-13)
pm05bse\源码\UseSet.dcu (9067, 2010-05-13)
pm05bse\源码\addNewAs.dcu (5508, 2010-05-13)
pm05bse\源码\asSet.dcu (6900, 2010-05-13)
pm05bse\源码\Send.dcu (8047, 2010-05-13)
pm05bse\源码\chUser.dcu (7820, 2010-05-13)
pm05bse\源码\AsNote.dcu (10090, 2010-05-13)
pm05bse\源码\getmail.dcu (3741, 2010-05-13)
pm05bse\源码\about.dcu (4016, 2010-05-13)
pm05bse\源码\main.dcu (30587, 2010-05-13)
pm05bse\源码\pm05b.exe (1304064, 2010-05-13)
pm05bse\所需控件\XPMenu.pas (51443, 2001-07-29)
pm05bse\所需控件\Mail2000.pas (136760, 2001-07-16)
pm05bse\所需控件\CoolTrayIcon.pas (29103, 2001-07-17)
pm05bse\所需控件\XPMenu.dcu (32164, 2010-05-13)
... ...

{------------------------P-Mail 0.5 beta版----------------- 编程工具:Delphi 6 + D6_upd2 制作:广西百色 PLQ工作室 声明:本代码纯属免费,仅供学习使用,希望您在使用她时保留这段话 如果您对本程序作了改进,也希望您能与我联系 My E-Mail:plq163001@163.com plq163003@163.com -----------------------------------------------------2002.5.19} 这是我程序设计比赛的作品,由于当时接到通知的时间很晚,只剩一个月 的时间,本来想用VC++,但一看到参考书就头痛,因此转向了Delphi,我原 来可是学C++的,于是硬着头皮往前闯,发现其实学了一门语言后转向另一种 语言是很容易的,这也是我的第一个Windows应用程序,在查资料的的时候发现 大部分的Demo都是单帐户,没有多帐户,而且没有地址簿功能,于是我自己干 刚开始的时候程序很简单,是用对ini文件的读写来实现多帐户的,后来在老师 的鼓励下,转用数据库处理,由于数据库编程我也是第一次接触,刚开始感觉特 难,但在csdn各位大虾的帮助下,奋战了整个五一长假,终于初具成型(当然也 得了第一),当然这个程序仍有很多问题,这也是我为什么将其放在原代码区的 原因,也正因为如此,我才公开原代码,希望各位同好给予指点! 说明:我既提供原代码,也提供控件,还有编译好的程序,另附一份开发文档说明,不 过已与程序有了一定的出入,敬请注意! 本程序所需的第三方控件 Mail2000 XPMenu CoolTrayIcon Delphi6自带的Id系列控件 -----------本程序的一个严重bug,敬请注意!!!------------------ 急切希望各位帮助! {地址簿的姓名字段可以重名,但e-mail地址不能重; 在修改地址时,首先显示的是该记录的相应字段,然后根据下列情况 进行操作: 1。姓名,e-mail地址不变,保持原样; 2。姓名变,且可与表中已有姓名一样,e-mail地址不变; 3。姓名不变,e-mail地址变,但必须与表中已有e-mail地址 (当然除这个记录的原有的那个e-mail地址)不重复; 4.姓名变,且可与表中已有姓名一样,e-mail地址也变,但必须 与表中已有e-mail地址(当然除这个记录的原有的那个e-mail地址) 不重复。 代码如下: procedure TfmAsSet.btnSetClick(Sender: TObject); begin with fmAsN.adoqAsN do begin close; sql.Clear; sql.Add('select * from AddressNote where FromAddress=:FromAddress'); //查找是否有地址重复 Parameters.ParamByName('FromAddress').Value:=edtFromAddress.Text; open; end; if fmAsN.adoqAsN.RecordCount=1 then //记录条数等于1,有两种情况 begin if edtFromAddress.Text<>fmAsN.lvAddress.Selected.SubItems.Text then //如果输入的原有地址不相同,则肯定是地址重复了 begin showmessage('地址重名!'); fmAsN.adoqAsN.Close; exit; end else //如果相同,则说明是地址不变的那种情况 begin with fmAsN.adoqAsN do begin close; sql.Clear; SQL.Text:='select * from AddressNote where FromAddress='''+trim(fmAsN.lvAddress.Selected.SubItems.Text)+''''; Open; Edit; FieldByName('FromName').AsString:=edtFromName.Text; FieldByName('FromAddress').AsString:=edtFromAddress.Text; Post; Close; end; {fmAsN.lvAddress.Selected.Caption:=edtFromName.Text; fmAsN.lvAddress.Selected.SubItems.Text:=edtFromAddress.Text; fmAsN.lvAddress.Update;} fmAsN.lvAddress.Clear; fmAsN.UpdatelvAddress(Sender); fmAsN.labFromName.Caption:=fmAsN.lvAddress.Selected.Caption; fmAsN.labFormAddress.Caption:=fmAsN.lvAddress.Selected.SubItems.Strings[0]; fmAsSet.Close; end; end; with fmAsN.adoqAsN do begin close; sql.Clear; SQL.Text:='select * from AddressNote where FromAddress='''+fmAsN.lvAddress.Selected.SubItems.Text+''''; Open; Edit; FieldByName('FromName').AsString:=edtFromName.Text; FieldByName('FromAddress').AsString:=edtFromAddress.Text; Post; Close; end; {fmAsN.lvAddress.Selected.Caption:=edtFromName.Text; fmAsN.lvAddress.Selected.SubItems.Text:=edtFromAddress.Text; fmAsN.lvAddress.Update;} fmAsN.lvAddress.Clear; fmAsN.UpdatelvAddress(Sender); //实际上是从地址簿表中重新读入数据 fmAsN.labFromName.Caption:=fmAsN.lvAddress.Selected.Caption; fmAsN.labFormAddress.Caption:=fmAsN.lvAddress.Selected.SubItems.Strings[0]; fmAsSet.Close; end; 现在的问题是这样的:我故意将e-mail地址修改得与表中原有e-mail地址相同时, 程序能正常 出现提示重新输入 ,然后我关闭修改地址窗口,再次选择刚才那个记录,打开修改地址窗口 又故意将e-mail地址修改得与表中原有e-mail地址相同时,程序竟然没提示,连ODBC的字段 索引重复的警告也没有,可我已经将e-mail地址字段设为有索引且不可重复了啊!开始我以为 只是在lvAddress中出现相同记录,但当我打开表时发现也有两个相同的记录,更糟的是,发生 这样的操作以后,对表的操作全乱了,添加新记录时,地址可任意重复,删除记录删不了,除非 手动打开表,将所有记录全部删除,程序才恢复正常。}

近期下载者

相关文件


收藏者