本站创建于2006年,博主为Delphi老码农,暗黑忠实粉丝,主要用于学习经验分享
该日志由 samool 发表于 2024-03-16 00:51:00
使用Delphi作为开发语言来开发杀毒软件是完全可能的。Delphi是一种强大的编程语言,它基于Object Pascal,支持快速应用开发(RAD), 并且对于创建Windows桌面应用程序特别有效。Delphi的优势在于它的高性能、稳定性以及丰富的用户界面组件,这些都是开发杀毒软件时需要考虑的因素。
该日志由 samool 发表于 2023-11-30 16:44:00
《Delphi 7: 面向对象设计和原型设计的优势分析》
作者:王飞云(飞驰未来) MAIL:marketing@featured365.cn
一、Delphi 7介绍
Delphi 7,作为Borland公司(现在的Embarcadero Technologies)开发的一种集成开发环境(IDE),在软件开发领域中具有重要的地位。自1995年首次发布以来,Delphi已经成为了一种强大、灵活、高效的编程工具,尤其在Windows平台的应用开发中有着广泛的应用。Delphi 7,作为Delphi系列的一个重要版本,继续了Delphi的优秀传统,并在许多方面进行了创新和改进。
Delphi 7的核心编程语言是Object Pascal,这是一种面向对象的语言,具有良好的可读性和可维护性。此外,Delphi 7还提供了一套丰富的视觉组件库(VCL),使得开发者能够快速地创建出功能强大、界面美观的应用程序。
二、Delphi 7面向对象设计的优势分析
面向对象设计是现代软件开发的主流方法之一,它可以帮助开发者更好地组织和管理代码,提高代码的可读性和可维护性。Delphi 7的面向对象设计具有以下几个优势:
三、Delphi 7设计软件界面可见即可得的优势分析
Delphi 7的另一个重要特性是其可见即可得的用户界面设计。开发者可以通过拖放组件和设置属性来创建用户界面,而无需编写大量的界面代码。这种设计方法具有以下几个优势:
四、用Delphi 7做原型设计的可行性分析报告
原型设计是软件开发中的一种常见方法,它可以帮助开发者更好地理解用户需求,提前发现设计问题。Delphi 7由于其强大的用户界面设计能力和丰富的类库,非常适合用于原型设计。以下是用Delphi 7做原型设计的一些考虑因素:
综上所述,Delphi 7是一种强大、灵活、高效的开发工具,非常适合用于面向对象设计和原型设计。无论是在代码的组织和管理,还是在用户界面的设计和实现,Delphi 7都展现出了其独特的优势。因此,对于希望提高开发效率、提高代码质量、提前验证设计思路的开发者来说,Delphi 7都是一个值得考虑的选择。
该日志由 samool 发表于 2023-07-03 13:11:55
大家好,好多朋友来信咨询Delphi和C++Builder的移动开发、DataSnap架构等问题,希望能有Demo代码学习。其实Delphi和C++Builder本身自带有很多示例代码,已经覆盖了大部分Delphi和C++Builder开发工具的特性和技术。对于开发各种特定的应用,还是需要去在特定方向钻研该方面的技术的,不要指望一套Demo代码就可以代替自己的学习。
为了方便各位 Delphi 和 C++Builder开发者,有针对性的查找RAD Studio自带的示例代码,从而更快更有针对性的学习对应的功能。我整理了大部分的Demo程序,还有一些因为没有设备或者没有对应的环境,没有写明注释内容。对于FireDAC支持多种数据库的特性的demo,也请有需要的朋友自行查看Demo代码。而至于有朋友问如何连接Oracle等,则自带的FireDAC的简单的Demo都有选择链接服务器的。
大家可以用Ctrl+F搜索对应的内容。
程序的默认路径为下面
C:\Users\Public\Documents\Embarcadero\Studio\17.0\Samples\Object Pascal\
该日志由 samool 发表于 2023-07-03 11:46:00
Delphi XE 错误提示: [MySQL]-314. Cannot load vendor library [libmysql.dll or libmysqlld.dll]
原因:一般发生在64位系统中缺少 libmysql.dll 文件
解决方法:
1、下载 libmysql.dll (一般是取32位的,文件包含64和32位)
链接:https://pan.baidu.com/s/1z9zWZbVctx_j1A04W-dIGg?pwd=zby7
提取码:zby7
2、放置位置:C:\Windows\SysWOW64\
该日志由 samool 发表于 2023-05-16 22:01:00
step1,修改“C:\Program Files\Borland\Delphi7\Bin”的权限(右击上面的目录-》属性-》安全-》编辑-》修改后确定退出),赋予于users组modify权限;
step2,修改“C:\Program Files\Borland\Delphi7\Projects”的权限(右击上面的目录-》属性-》安全-》编辑-》修改后确定退出),赋予于users组modify权限;
step3,运行d7,一切正常。
该日志标签: delphi
该日志由 samool 发表于 2023-05-10 01:11:00
Cef4动态设置代理IP方法
procedure TfrmMain.OnChrmBeforeBrowse(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame;
const request: ICefRequest; user_gesture, isRedirect: Boolean;
out Result: Boolean);
var
TempError : ustring;
TempProxy : ICefValue;
TempValue : ICefValue;
TempDict : ICefDictionaryValue;
str_proxyIP : string;
begin
str_proxyIP :='你的代理IP地址';//格式127.0.0.1:8888
if Pos(':', str_proxyIP)>0 then
begin
try
if (browser <> nil) and
(browser.Host <> nil) and
(browser.Host.RequestContext.CanSetPreference('proxy'))
then
begin
TempProxy := TCefValueRef.New;
TempValue := TCefValueRef.New;
TempDict := TCefDictionaryValueRef.New;
TempValue.SetString('fixed_servers');
TempDict.SetValue('mode', TempValue);
TempDict.SetString('server', str_proxyIP);
TempProxy.SetDictionary(TempDict);
browser.Host.RequestContext.SetPreference('proxy', TempProxy, TempError);
end;
finally
TempProxy := nil;
TempValue := nil;
TempDict := nil;
end;
end;
end;
该日志标签: delphi
该日志由 samool 发表于 2023-05-09 21:34:00
新版本的Delphi XE 系列窗口设计和代码窗口粘一起,非常不方便,不如D7浮动窗口设计方便
像这样多舒服,窗口设计放一边,代码浮动式窗口爽
修改办法:
打开注册表:HKEY_CURRENT_USER/Software/Embarcadero/BDS/16.0/Form Design
修改 Embedded Designer 项的值为 false
然后重启delphi即可,此方法在WIN11 + Delphi XE8 有效,其它环境也可以尝试一下。
该日志标签: delphi
该日志由 samool 发表于 2018-12-05 20:37:57
检查来,检查去,发现是出在了这行代码上:
edit1.Text := (HTTPRIO1 as WebService1Soap).HelloWorld;
解决办法:在windows2008上,右键电脑--属性-性能--数据保护,添加了这个程序例外数据执行保护后,就正常了。
该日志标签: delphi
该日志由 samool 发表于 2017-11-14 22:37:00
var
m_bSort:Boolean; //控制正反排序的变量
implementation
{$R *.dfm}
//ListView排序的回调函数,默认的是快速排序法,也可以自己在这里做算法
function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
var txt1,txt2:string;
begin
if ParamSort <> 0 then
begin
try
txt1:=Item1.SubItems.Strings[ParamSort-1];
txt2:=Item2.SubItems.Strings[ParamSort-1];
if m_bSort then begin
Result:=CompareText(txt1,txt2);
end else begin
Result:=-CompareText(txt1,txt2);
end;
except
end;
end
else
begin
if m_bSort then
begin
Result:=CompareText(Item1.Caption,Item2.Caption);
end
else
begin
Result:=-CompareText(Item1.Caption,Item2.Caption);
end;
end;
end;
procedure TFrm_CommunityModify.lv_SelectedHDTCColumnClick(Sender: TObject;
Column: TListColumn);
begin
lv_SelectedHDTC.CustomSort(@CustomSortProc,Column.Index);
m_bSort:=not m_bSort;
end;
该日志由 samool 发表于 2017-08-23 16:05:33
uses DateUtils;
DateTimeToUnix(Now)
可以转换到unix时间,但是注意的是,它得到的时间比C语言中time()得到的时间大了86060,这是因为Now是当前时区的时间,c语言中time()是按格林威治时间计算的,北京时间比格林威治时间多了8小时,DateTimeToUnix(Now)-86060 就和c语言中time()得到的一样了。
但我进一步研究DateTimeToUnix函数时发现,Delphi中的时间没有经过任何的转换,是直接读取系统时间
我试着改变当前计算机时区,发现Delphi返回值没有任何改变。
而在C++中,改变计算机时区,则time()返回值也随着改变,这就说明C++中标准时间是通过本地时间和当前时区进行计算得来的。
因此,在Delphi开发时,需要注意Delphi获取的时间戳是当前计算机所在时区时间,并非标准UTC时间。
UnixToDateTime()函数并没有对时区进行转换,仅仅是对时间进行了转换。