我知道代码隐藏文件,但使用DreamWeaver或其他设计工具与Visual Studio程序员合作的设计师最好的现实方式是什么?
例如,假设您有一个基本网站,用户界面表单访问数据库......数据库工作肯定是由开发人员完成的,但如何将设计的表单与可能涉及控件上的事件的数据库编码或客户端逻辑联系起来或其他与GUI相关的搭档.图形设计师是否也控制应用程序流程?似乎存在需要解决的大型断开连接 - 特别是在实施后调整设计的时候.
鉴于希望在单元文件中使用有用的Region编译器指令,允许在以前版本的Delphi中使用这些相同单元的最佳方法是什么?似乎没有"体面"的方法.(所需的IDE版本是Delphi 7)
我喜欢在方法定义之上设置区域来隐藏/显示方法定义帮助和版本历史记录注释,但是我必须用其他编译器指令包围Region指令,这有点杀死了区域编译器指令的"清晰度".
我想如果使用不支持区域的Delphi版本,可以编写一个预处理器来注释掉所有的Region/EndRegion指令.然后添加回更新的版本?
我不是100%切换到Delphi 2009并且需要支持多个IDE版本.
我正在考虑使用动态加载BPL并将主应用程序中的对象实例传递给BPL中的方法.这造成应用程序和BPL使用的问题单元.
我写了一个小小的原型,它做了这个,并很好奇Delphi如何内部管理应用程序中定义的类与BPL之间的差异.
例如,说一个基本的Widget类,如:
TmyWidget = class
private
fId:Integer;
fDescription:String;
public
procedure DoSomething1();
end;
Run Code Online (Sandbox Code Playgroud)
现在,应用程序和BPL是使用包含TmyWidget类的单元构建的.之后,TMyWidget中的某些内容发生了变化,应用程序被重建,但是BPL不是(反之亦然.)我添加了另一个方法DoSomething2()并在应用程序中创建了一个TmyWidget实例并将其传递给BPL进行处理并在基本的例子,它的工作原理.但它显然充满了潜在的问题.
如果另一个动态加载的BPL也使用TmyWidget,那么事情变得更加有趣.它似乎工作,但它绝对不是理想的.
主要问题是 - 如何通常将对象传递给主应用程序和DLL或BPL?我以前从来没有尝试过,而且可能有充分的理由,但我有这个想法适合这种方法......
我想最好的方法是序列化对象并将这些字节传递并在DLL/BPL中反序列化,此过程注意到主机和动态加载模块之间可能存在的版本差异,但我希望新的SimpleSharedMem选项可能会带来这个新功能而没有序列化的开销,但它似乎不是很有用,除非你严格保持app和dll重建任何共享代码更改......但在这个原型中,应用程序将保持相当稳定并且动态加载的模块将经常更改,并将功能添加到TmyWidget.(服务器应用程序充当基于客户端请求构建TmyWidget的工厂,应用程序将实例传递给各个模块进行处理.)
看起来SongBeamer网站为Delphi 2009+的TurboPower OpenSource项目提供了一些不错的端口,现在已经过时了SourceForge中的一些最新更新.但是,那么,也许不是吗?哪些版本最适合Delphi XE?
我对Abbrevia,LockBox和Async Pro最感兴趣.它看起来像Abbrevia-SourceForge,AsynPro-SongBeamer,LockBox ..?
这在过去已经出现过,特别是关于Delphi XE的参考问题: 是否可以在Delphi XE和DataSnap中使用Indy 10.5.8.0? 和是否有可能重新编译的Delphi XE了DataSnap包用新的/不同的版本印的?
我记得看到这个问题取得了一些进展.我现在正在使用Delphi XE3,并希望重新审视这个问题.现在是否可以卸载随XE3提供的Indy版本并将其更新为最新的Indy版本,而不会弄乱DataSnap或Delphi附带的依赖于Indy的任何其他东西?
一个老问题提出了 PostgreSQL 在 Windows 上的性能问题。从那时起,PostgreSQL 有了一些重大改进……Windows 和 Linux 变体之间的性能差距是否有所改善?
我访问存储过程数据集(MS SQL Server,仅向前,只读)的大部分代码是多年前我的Clipper编码的后备
在今天的代码审查中,我注意到在类似的代码块中引用了IsEmpty.这仅仅是一个偏好还是在示例场景中是否有任何真正的区别?
MyStoredProc.Open;
if not MyStoredProc.IsEmpty then
begin
DoSomething;
end;
Run Code Online (Sandbox Code Playgroud)
我经常使用的地方
MyStoredProc.Open;
if not MyStoredProc.Eof then
begin
DoSomething;
end;
Run Code Online (Sandbox Code Playgroud)
主要是因为它反映了我在while循环中使用的实践,当它是多个记录时:
MyStoredProc.Open;
while not MyStoredProc.Eof then
begin
DoSomething;
MyStoredProc.Next;
end;
Run Code Online (Sandbox Code Playgroud) delphi ×5
ado ×1
bpl ×1
c# ×1
delphi-xe ×1
delphi-xe3 ×1
dreamweaver ×1
indy10 ×1
performance ×1
postgresql ×1
region ×1