如果不重新发明轮子,我可以用什么来管理Web应用程序中的用户会话,并能够使用JSON响应ajax请求?
是否有一些框架(例如使用Indy组件或类似的东西)?
赏金注意事项:
在实践中,对我来说,回复一个明确的服务器应用程序示例就足够了.不知何故,这个PHP示例的Delphi示例提到了HERE.(没有数据库部分,我想看看发送JSON意味着什么的基础知识.我对TIdHTTPServer有基本的了解.)
我创建了一个派生自TThread后台执行查询的类.
我希望这个类与客户端分离.
这种线程的目的是执行简单的检查(比如当前有多少用户连接到应用程序,而不阻止UI),因此一个简单的想法是使用Synchronize方法.
无论如何,因为我希望它被解耦,我在构造函数中传递一个类型的参数
TSyncMethod: procedure of object;
Run Code Online (Sandbox Code Playgroud)
TSyncMethod客户端上的方法在哪里(在我的情况下是一个表单).
无论如何我如何将值传递给TSyncMethod?我应该把结果写在一些"全球的地方",然后在我的TSyncMethod中检查它?
我也试过想
TSyncMethod: procedure(ReturnValue: integer) of object;
Run Code Online (Sandbox Code Playgroud)
但当然,当我打电话时,Synchronize(MySyncMethod)我无法将参数传递给它.
我需要遍历组件并分配一个事件处理程序(例如,为所有TButton动态分配OnClick事件
ShowMessage('You clicked on ' + (Sender as TButton).Name);
Run Code Online (Sandbox Code Playgroud)
问题是在某些情况下我已经分配了TButton OnClick事件.
有办法解决问题吗?
让我们想象一下,我有一个Button1,其中的harcoded onclick事件处理程序是:
ShowMessage('This is Button1');
Run Code Online (Sandbox Code Playgroud)
在我的"解析"后,我希望Button1的完整事件处理程序变为:
ShowMessage('This is Button1'); // design time event handler code
ShowMessage('You clicked on ' + (Sender as TButton).Name); // runtime added
Run Code Online (Sandbox Code Playgroud)
注意:我正在寻找一种允许我使用TButton而不继承它的解决方案.
在第二个问题中,有一条评论说要使用
ResHacker.exe -addoverwrite "Project.exe", "Project.exe", "ProgramIcon.ico", ICONGROUP, MAINICON, 0
Run Code Online (Sandbox Code Playgroud)
我也试过用-modify而不是-addoverwrite
ResHacker.exe -modify "Project.exe", "Project.exe", "ProgramIcon.ico", ICONGROUP, MAINICON, 0
Run Code Online (Sandbox Code Playgroud)
但结果是一样的.
图标已更改:如果我右键单击exe文件并检查属性,我看到图标已更改,但在Windows资源管理器中,我仍然看到旧图标.
如果我用Resource Hacker打开它(所以不使用它作为命令行工具,而是作为普通的GUI工具),我在"打开文件"对话框中看到了正确的图标.
有人可以提出解决方案吗?我试图在Delphi post build事件中使用它.
是否可以在SQL Server 2008 R2中检索(如果用户具有sa权限)用户的密码?
场景是这样的:我需要在文档中自动存储所有用户名和密码的列表,但不更改密码,只需读取实际密码即可.
这可能吗?
经过一些实验后,我最终得到了以下代码,以便在MSWord中执行搜索和替换.此代码在页眉和页脚中也能很好地工作,包括第一页或奇数/偶数页面的页眉和/或页脚不同的情况.
问题是我需要调用MSWordSearchAndReplaceInAllDocumentParts我替换的每个字符串,并且我得到一个不可接受的性能(在4页doc字中大约50个字符串2分钟).理想情况下,它当然应该是"瞬时的".
在处理页眉和页脚之前,我只是在主文档中进行搜索和替换(使用wdSeekMainDocument).在这种情况下,perofmrance是可以接受的(即使很慢).我只是想知道它为什么这么慢:切换视图需要时间吗?通常页眉或页脚包含的单词很少,所以我预计页眉和页脚中的所有搜索和替换都不会使整体性能变得更糟.但这不是我观察到的.
这是代码,在底部我放置了探查器结果:
// global variable (just for convenience of posting to Stack Overflow)
var
aWordApp: OLEVariant; // global
// This is the function that is executed once per every string I replace
function MSWordSearchAndReplaceInAllDocumentParts;
begin
try
iseekValue := aWordApp.ActiveWindow.ActivePane.View.SeekView;
iViewType := aWordApp.ActiveWindow.ActivePane.View.Type;
if iViewType <> wdPrintView then
aWordApp.ActiveWindow.ActivePane.View.Type := wdPrintView;
if aWordApp.ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter then
begin
Try
aWordApp.ActiveWindow.ActivePane.View.SeekView := wdSeekEvenPagesFooter;
SearchAndReplaceInADocumentPart;
Except
// do nothing ..it was not able to set above view
end;
Try
aWordApp.ActiveWindow.ActivePane.View.SeekView := wdSeekEvenPagesHeader; …Run Code Online (Sandbox Code Playgroud) 我需要从字符串中删除重音符号,这是否有Delphi(2009+)函数?
我希望我的字符串只包含AZ az 0-9字符,所以我想自动删除重音
喜欢:
RemoveAccents(àèÃÜÿñ)
Run Code Online (Sandbox Code Playgroud)
这给了
aeAUyn
Run Code Online (Sandbox Code Playgroud)
等等....
我需要创建一个简单的Delphi应用程序,kiosk风格.
这是一个非常简单的事情,一个表单,用户写一些个人信息来注册一个事件.4 TEdit和TButton.
我想要实现的是避免用户执行任何不同的操作,然后键入TEdit或单击TButton.例如,我不希望他做ALT TAB(切换应用程序),按键盘上的Windows键,执行ctrl-alt-canc等...
我可以添加一个passowrd保护按钮来启用/禁用这个"Kiosk模式",这样我需要退出kiosk模式我只需按下该按钮然后退出.
如何在Delphi中实现这种"自助服务终端模式"而不会手动拦截所有按键?或者是否有人已经开发了这个以便它可以共享?
是否有完整的Delphi调试资源,指导如何使用所有IDE调试工具?曾经有过MarcoCantù的指南,但如果我没有错,它会更新到Delphi 5.
请你重定向到一个完整的资源,至少更新到D2009(如果XE更好).
我使用cnPack使用清洁剂,但一般来说这是无用单位的缺点?
我知道其中一些:
1)当然,如果整个项目中没有使用该单元,那么将会有无用的资源消耗
2)代码洞察力会产生无用的结果
3)代码洞察力会变慢
但想象一个简单的案例:
delphi ×9
activex ×1
ajax ×1
debugging ×1
delphi-2009 ×1
explorer ×1
icons ×1
json ×1
kiosk-mode ×1
session ×1
sql-server ×1
string ×1
uses-clause ×1