TBase = class(TObject)
...
TDerived = class(Tbase)
...
if myObject is TBase then ...
Run Code Online (Sandbox Code Playgroud)
如果myObject属于TDerived类,我可以以某种方式对此进行编码并返回false吗?
一番搜索之后,它看起来像我不得不分配RegisterComponentsProc和RegisterPropertyEditorProc,这是我做的事.
但是,我认为我可以调用我的设计时间寄存器功能,即<myComponentUnit>.Register();.
当我这样做时,我得到堆栈溢出,因为,好吧......
procedure myComponentUnit.Regiter;
begin
RegisterPropertyEditor(TypeInfo(Integer),
TMyComponent, 'myProperty', TMyProperty);
Run Code Online (Sandbox Code Playgroud)
结束;
procedure RegisterPropertyEditor(PropertyType: PTypeInfo;
ComponentClass: TClass; const PropertyName: string;
EditorClass: TPropertyEditorClass);
begin
if Assigned(RegisterPropertyEditorProc) then
RegisterPropertyEditorProc(PropertyType, ComponentClass, PropertyName,
EditorClass);
end;
Run Code Online (Sandbox Code Playgroud)
所以,我打电话给.Register();
调用RegisterPropertyEditorProc()
调用RegisterPropertyEditorProc()
调用RegisterPropertyEditor()<=== aaargh !!
那么,我应该在RegisterPropertyEditorProc的主体中拥有什么?
进一步搜索后,看起来我想DesignEditors.RegisterPropertyEditor()直接调用,但它不在界面部分......
它不一定是不可破解的,只是足以劝阻随意的黑客行为.
FOSS - 可用于商业项目.
限制连续会话数.
我有自己的想法,如何简单地编码.但为什么重新发明轮子?
编辑:为了限制连续会话的数量,我想到了数据库中的一个简单的计数器(以某种方式混淆),它在登录时递增,在登出时递减.棘手的部分是有人关闭浏览器(和他们的会话)而没有登出.
因此,我的代码使用相对路径,但遇到了一些常见文件的问题,这些文件可能包含/要求来自不同的目录级别.
无论如何绝对路径更有效率,对吧?因此,我将所有include/require更改为绝对路径,使用require_once('http://' . $_SERVER['HTTP_HOST'] . 'file_name.php');
$_SERVER['HTTP_HOST']是对的,不是吗?当我用Google搜索时似乎如此.
这要求我在php.ini中设置'allow_url_include = on`并重启Apache.
所以,现在我的情况看起来像这样(简化示例):
File2.php包含
<?php
function hello()
{
echo 'hello<br>';
}
?>
Run Code Online (Sandbox Code Playgroud)
如果file1.php包含
<?php
require_once('file2.php');
hello();
?>
Run Code Online (Sandbox Code Playgroud)
然后我看到预期的输出"你好",但如果我改变那行
require_once('http://' . $_SERVER['HTTP_HOST'] . '/file2.php');
Run Code Online (Sandbox Code Playgroud)
然后我得到"致命错误:在C:\ xampp\htdocs\file1.php中调用未定义的函数hello()"
(我想对c:\ xammp\httdos的引用来自Xdebug,因为PhpInfo显示了HTTP_HOST localhost)
无论如何,这是一个很长的帖子,说我错过了一些简单的观点并询问它是什么.
寻找代码示例,最好使用TADOConnection.
我想将TImage的TPicture保存到MySql(最好是ODBC,而不仅仅是MySql)数据库,之后我想创建一个TImage并将图片检索到其TPicture属性.
任何代码片段,或链接到同一个?
我使用的是第三方控件,它是TComponent的后代,我希望它有滚动条,最好是autoscrollbars.
我可以从TComponent获得它们吗?
如果不这样做,我可以将TPanel放在我的主窗体及其上的组件上并获取滚动条吗?我打算让组件(和Panel,或其他)成为alClient,以便在我的组件调整大小时自动调整,但我也喜欢它们有(自动)滚动条.
是否有任何方法可以采用旧的Borland C++(v6)项目并将其转换为Delphi(v7,如果有帮助,可能是XE,但最好是D7)?
我似乎记得BCB可以编译Pascal,但不是相反.在任何情况下,我都希望将项目交给那些不懂C++而且知道Delphi以扩展它的人.
我不想保留任何旧的C++代码,只需将所有内容转换为Delphi - 如果必须的话,手动将其转换为Delphi.
希望你能节省我一些时间......
请解释包裹使用(短句用小词(傻瓜)).
我刚刚从D7搬到了XE2,包装看起来更加出色,我似乎需要更多的东西才能获得资格.
在D7我会说uses windows,现在我必须说uses winapi.windows.
我发现当我打电话时MessageDlg()我无法通过时mtError,我需要对其进行限定.
在我走错路之前 - 简单的解决方案是什么?
我可以以某种方式继续使用我的旧代码与我怀疑是终端的包名称(即,对于包ABC我有一个uses C子句).
我可以在某处添加一个语句来执行此操作吗?或者配置项目.
抱歉听起来很笨:-(
除了我之前的问题,尝试致电时发生错误MessageDlg()
[DCC Error] MainForm.pas(54): E2003 Undeclared identifier: 'mtError'
所以我拉起帮助,发现它mtError在中声明Dialogs。
我打开了Project / Options / Unit范围名称并添加了Dialogs。
而且我仍然遇到相同的错误。
我可以吃halpz吗?