我正在寻找一种方法来控制我在用Delphi编写的应用程序中创建的所有业务对象.
正如关于Embarcadero的EDN(http://edn.embarcadero.com/article/28217)的文章所述,基本上有三种方法可以做到这一点.我最感兴趣的是使用接口的最后一个.这样,当业务对象不再被应用程序中的任何地方引用时,它将被处理内存(稍后我将回到这一部分).
在创建新的业务对象时,最好先询问新的对象管理器是否已在程序中先前获取它,从而避免需要从数据库中重新获取它.我已经将内存中的业务对象,所以为什么不使用那个呢?因此,我需要内存中可用对象的列表可以搜索(快速).
提供的代码使用"TObject数组"来存储收集的对象,一旦达到一定数量,这对于搜索对象列表不会非常有效.我必须将其更改为TObjectList或某种二进制可搜索树.这里最好的选择是什么?我已经在http://www.ibrtses.com/delphi/binarytree.html找到了一些有用的代码(我认为).JCL在二叉树上没有东西吗?
我该如何处理该树中的"业务对象"和"业务对象列表"?作为列表一部分的业务对象是否会在树中引用两次?
关于处理对象:我还想为该业务对象设置某种TTL(生存时间),在一定时间后强制重新获取.如果引用计数器降到0,我仍然希望将对象保留一段时间,如果程序仍然需要它在TTL内.这意味着我需要排序一些线程监视器来循环对象列表(或树)以监视要删除的对象.
我还遇到了Boehm垃圾收集器DLL(http://codecentral.embarcadero.com/Download.aspx?id=21646).
简而言之,将我的"对象管理器"作为EDN文章中提供的源代码的基础是明智的吗?我想要将对象存储在哪种列表中?我该如何处理列表中的对象列表?我是否应该将我的对象保留在内存中一段时间并通过线程监视器进行处理?
我的推理是否正确?在开始编码之前有任何建议,想法或评论吗?也许一些新想法融入我的代码?
顺便说一下,一旦有些聪明的头脑想出来,我会很乐意分享结果,让别人受益.
日Thnx.
我有一个UIView做一个简单的动画.它将y位置从100调整到130然后反转.我希望它继续重复,所以我将重复计数器设置为999.在用户输入时,我想采用相同的UIView并调整x位置.这是通过另一个UIView动画完成的.问题是,当第二个动画开始时,第一个动画(在y方向从100到130)刚刚突然结束(因为我读到它应该).有没有办法在UIView结束之前获得该UIView的y坐标的最终位置?理想情况下,我希望UIView保持在我翻译x坐标时所处的y位置.
摘要:UIView在y方向上从100-130移动,反转并重复直到收到用户输入.收到后,动画缩短,UIView跳到y = 130.我想找到一种方法来找出动画被缩短之前的最终y值是什么,所以当使用带有x平移的新动画时,UIView不会跳到130,但保持与第1个时相同的位置动画结束了.
我似乎无法看到任何可以让你这样做的东西.在我看来,一旦你使用UIView设置动画,那么它(以及所有当前的状态变化)都不在您的手中,只有在完成动画并且在指定时才会"返回"您的控件和可用性终点.它是否正确?任何见解将不胜感激.感谢您的时间.
var a = function () {
return 'test';
}();
console.log(a);
Run Code Online (Sandbox Code Playgroud)
第一种情况的答案:测试
var a = (function () {
return 'test';
})();
console.log(a);
Run Code Online (Sandbox Code Playgroud)
第二种情况的答案:测试
我正在使用第一种方法来创建自动执行功能.但是,我也看到了第二种方法.这两种方法有什么不同吗?结果显然是一样的.
如何在一个select语句sql server 2005中concat两列?
这是我的发言Select FirstName,secondName from Table......
现在,我也尝试concating secondName与FirstName使用
Select FirstName + ' ' + secondName from Table
Run Code Online (Sandbox Code Playgroud)
但是有些值NULL在某些记录的secondName列中.我的select语句返回NULL而不是FirstName..我希望FirstName如果secondName是NULL..
在Ruby中,我们可以使用supersingleton方法来调用相应的超类的单例方法,如下面的代码所示.
class Base
def self.class_method
puts "Base class method"
end
end
class Derived < Base
def self.class_method
puts "Derived class method"
super
end
end
Derived.class_method
# Derived class method
# Base class method
Run Code Online (Sandbox Code Playgroud)
但是,我似乎并不完全了解super内部的呼吁Derived.class_method可以达到的程度Base.class_method.我假设它class_method是在他们的元类上定义的,这是否意味着他们的元类有父/子关系?(我无法通过实验确认)
更新:我问的是这个问题,因为我记得在某个地方看到基地和派生类'元类之间存在某种关系(但我再也找不到了).除了知道实际如何super工作之外,我还想确认这两个元类是否完全分开.
我们应该在网站上使用所有H1到H6吗?
我通常使用h1到h2.现在如何判断和决定H3到h6的使用位置.
我们应该这样使用吗?
h3 {display:inline}
<div id="content">
<h3> some text in bold:</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
<h3> some text in bold:</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
或这个
span {font-weight:bold}
<div id="content">
<p><span> some text in bold:</span>
Lorem ipsum dolor sit amet,
consectetur adipisicing elit, sed do eiusmod tempor …Run Code Online (Sandbox Code Playgroud) 下面是二进制搜索功能.
int search(int a[], int v, int left, int right)
{
while (right >= left)
{
int m = (left + right)/2;
if (v == a[m])
return m;
if (v < a[m])
right = m - 1;
else left = m + 1;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
如何确定此函数的Big-O表示法?
这个搜索函数是否为O(n),因为while循环依赖于left的值?
我正在设置此示例Perl片段以验证日期中的几个月:
我想接受的一些场景是:
MM M
#!/usr/bin/perl
use strict;
use warnings;
my $pattern;
my $month = "(0[1-9]|1[012])";
my $day = "(0[1-9]|[12]\d|3[01])";
system("cls");
do {
print "Enter in a month: ";
chomp($pattern = <STDIN>);
# We only want to print if the pattern matches
print "Pattern matches\n" if ($pattern =~ /$month/);
} while ($pattern ne "Q");
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它正确地从01-12过滤但是当我将正则表达式更改为:
$month = "(0?[1-9]|1[012])";
Run Code Online (Sandbox Code Playgroud)
然后正则表达式允许13,14等...给出了什么?
我有一个xml文件:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<root>
<level>
<node1 />
<node2 />
<node3 />
</level>
</root>
Run Code Online (Sandbox Code Playgroud)
在node1,node2,node3中插入值的最简单方法是什么?
C#,Visual Studio 2005
animation ×1
big-o ×1
c# ×1
cocoa-touch ×1
concat ×1
css ×1
delphi ×1
delphi-2009 ×1
delphi-2010 ×1
git ×1
iphone ×1
javascript ×1
merge ×1
metaclass ×1
objective-c ×1
perl ×1
redmine ×1
regex ×1
ruby ×1
select ×1
subtree ×1
uiview ×1
xhtml ×1
xml ×1