很简单,但我找不到答案.
我正在使用Delphi 5 Enterprise构建应用程序,并希望我的应用程序在密码字段中使用新的粗体黑点而不是星号.
我怎样才能做到这一点?
我在一个单独的单元中有一个Player类,如下所示:
TPlayer = class
private
...
FWorld: TWorld;
...
public
...
end;
Run Code Online (Sandbox Code Playgroud)
我还在一个单独的单元中有一个世界级如下:
TWorld = class
private
...
FPlayer: TPlayer;
...
public
...
end;
Run Code Online (Sandbox Code Playgroud)
我这样做是为了让玩家可以通过FWorld从世界获取数据,这样世界上的其他对象就可以以类似的方式获取玩家数据.
正如您所看到的,这会导致循环引用(因此不起作用).我已经读到这意味着糟糕的代码设计,但我想不出更好的其他方式.什么是更好的方法呢?
干杯!
我的团队正在维护一个巨大的Client Server win32 Delphi应用程序.它是一个客户端/服务器应用程序(胖客户端),它使用DevArt(SDAC)组件连接到SQL Server.
业务逻辑经常"被困"在Component的事件处理程序中,无论如何,通过一定程度的重构,可以将业务逻辑移动到公共单元中(这项工作的很大一部分已经在重构期间完成了......维护遗留应用程序的人别写的非常令人沮丧,但这是一项非常普遍的工作).
现在有一个Web界面的请求,当然我有几个选项,在这个问题中我想关注VCL for web(intraweb)选项.
我们的想法是为客户端/服务器应用程序和Web应用程序使用公共代码(相同的pas文件).我听说很多人将遗留应用程序从delphi迁移到intraweb,但在这里我也试图保留Thick客户端.
这个想法是使用通用代码,可能会用一些编译器指令来编写特定的代码:
{$IFDEF CLIENTSERVER}
{here goes the thick client specific code}
{$ELSE}
{here goes the Intraweb specific code}
{$ENDIF}
Run Code Online (Sandbox Code Playgroud)
然后另一个问题是"迁移计划",假设我有300个功能,在第一个版本中,我将只在Web应用程序中提供50个.如何跟踪它?我在想(ab)使用Delphi接口来处理这个问题.例如,对于用户身份验证,我可以在过程中移动所有相关代码并声明如下界面:
type
IUserAuthentication= interface['{0D57624C-CDDE-458B-A36C-436AE465B477}']
procedure UserAuthentication;
end;
Run Code Online (Sandbox Code Playgroud)
通过这种方式,当我在两个应用程序(胖客户端和Intraweb)中实现IUserAuthentication接口时,我知道该功能已被"移植"到Web上.无论如何,我不知道这种方法是否有意义.我制作了一个原型来模拟整个过程.它适用于"Hello world"应用程序,但我想知道它是否对大型应用程序有意义,或者这种接口的想法只会适得其反并且会适得其反.
我的问题是:这种方法有意义吗?(接口的想法只是一个额外的想法,它不像上面描述的通用代码部分那么重要)它是一个可行的选择吗?
据我所知,这取决于很多类型的应用程序,无论如何我是CRM/Accounting域中的通用,并且单个安装上的并发用户数通常小于20,峰值为50.
额外评论(更新):我问这个问题是因为我没有n层应用程序,所以我认为Intraweb是拥有一个与胖客户端有共同代码的Web应用程序的唯一选择.在我的特定情况下,从Delphi代码开发Web服务是没有意义的,所以我可以选择使用ASP.NET编写Web界面(复制业务逻辑),但在这种情况下我无法利用公共代码.简单的方法.是的我可以使用dll,但我的代码不适合.
我最近开始在IDE中使用Ctrl-LeftArrow和Ctrl-RightArrow来移动一行源代码(或者,就此而言,在任何Windows输入屏幕中).(当然,Ctrl-Shift-LeftArrow会突出显示文字.也非常有帮助.)
我很高兴看到它节省了我的时间,因为我不需要伸手去抓鼠标.
这需要一些练习(以及学习你的CTRL和箭头键所在的位置,所以可以点击它们而不向下看),但是如果你不使用这种方法来移动Windows文档,我建议你尝试一下!
现在,作为进一步的加速,我想跳到单个特定角色的下一个实例.
很多年前,我简单地使用了"vi"编辑器,我记得,在这个编辑器中键入一个小写字母g然后单个字符跳转到该字符.并且大写字母G在搜索的前一个单个字符上进行了"再次搜索"(如^ L).当然vi是模式化的,所以这个命令是可用的.在IDE中,它必须是一个控制字符.
我认为这将真正加快我周围的IDE我的源代码运动.
我从来没有做过很多可用于增强IDE的工具(这里是Delphi 10).我可以使用哪些工具以及将其添加到IDE有多难?
是否有任何第三方IDE加载项提供此类功能?
TIA
我认为pbear的组件HTML Components,v 9.45,正是我所需要的.他的免费下载只包含Delphi 2006及更早版本的软件包.我有Delphi XE.我如何将他的组件安装到我的Delphi中?
如何在运行时更改 Delphi 中 TChart 中线条的颜色?例如,我将如何更改以下颜色:
图1.系列[a]。
我需要我的应用程序连接到我的Web服务器的MySQL数据库,这是什么最好的选择.提供数据感知组件.
我尝试了zeos 7,但我一直收到错误:SQL错误:客户端不支持服务器请求的身份验证协议; 考虑升级MySQL客户端,但无法修复它.
谢谢
-Brad
我正在Delphi中编写win32服务(应该能够翻译任何其他代码,如果你不懂delphi),需要获取网站的状态.我知道如何在.NET中执行此操作,但我不确定正常的基于Windows的编程.因此,我需要查询网站并返回状态代码200,301等.我的计划是解析返回的数据,如果我的某个网站发生故障,请发送电子邮件.
有人能伸出援助之手吗?
编辑:这是我最后使用的代码 - 使用TIDHttp Indy组件.
IdHTTP.Get('http://www.example.com');
if IdHTTP.Connected then begin
ResponseCode := IntToStr(IdHTTP.ResponseCode);
ShowMessage(ResponseCode);
end;
Run Code Online (Sandbox Code Playgroud) delphi service windows-services http-status-codes http-headers
我需要在Delphi中排序接近1,00,000个浮点项.我是Delphi的新手,想知道是否有现成的解决方案.我尝试了一些语言提供的构造,并且他们花费了大量的时间来完成运行.(应用程序的执行时间为5-10秒)
delphi ×10
2-tier ×1
delphi-2009 ×1
delphi-2010 ×1
delphi-5 ×1
delphi-7 ×1
delphi-xe ×1
devart ×1
graphics ×1
http-headers ×1
intraweb ×1
mysql ×1
pascal ×1
scalability ×1
service ×1
sorting ×1
sql-server ×1
teechart ×1
windows ×1