我有一个 NSTableView,它只显示一行数字。我只想使用(cmd+copy)或右键单击复制来复制这些数字。如何在 NSTableViews 中实现此功能。
对32位JVM(至少在Hotspot上)上的对象的引用占用4个字节.
64位Hotspot JVM需要8个字节吗?或者是一些巧妙的压缩?如果没有,每个Object[]都需要两倍的堆内存,我不知怎的想(希望,期望)不是这样.
更新/额外问题:这是否真的重要,或者这是一个可以忽略不计的增加,因为大多数引用指向远大于几个字节的对象(而有人可能会争辩说这些对象主要包含对其他对象的引用) ?
我有一个我需要在多个项目中继承的自定义框架.这个框架包含一些代码和一些组件,它位于磁盘上的某个位置,位于它自己的项目目录中.我不想将它复制到Object Repository文件夹,这对我来说似乎不对:我最终有两个表单副本,一个在我的Mercurial支持的存储库中,一个在Delphi的Object Repository中.绝对不是个好主意.
我想要的是让我的框架在一个包中,并让包执行使IDE知道框架所需的所有内容,并允许IDE创建给定框架的新兄弟,而无需实际将框架添加到每个项目.
到目前为止我做了什么,我遇到的问题,我试过的解决方案:
RegisterClass和RegisterNoIcon. 问题:当我进入一些其他的项目,并尝试打开得出的帧编辑它说,它无法找到我原来的框架.RegisterCustomModule(TMyFrameName, TCustomModule).问题:在"其他"项目中,我打开派生框架,IDE不会在原始框架上创建组件,并且IDE抱怨其中一个"继承"组件缺失.InitInheritedComponent(Self, TFrame).这有助于,当我尝试在"其他"项目中打开框架时,所有内容都重新创建,我能够按照我的预期看到框架.问题:当我保存框架时,它会忘记所有有关继承组件的内容,将每个组件视为添加到此特定框架的新组件.如果我查看保存的DFM,一切都以"对象"开头,没有任何东西以"继承"开头,正如我所料.不幸的是我遇到了问题"3".我尝试深入研究Classes.pas,ToolsAPI,DesignIntf和DesignEditors,但没有找到任何有用的东西.显然我希望在DFM中看到的"继承"属性是由TWriter在流式传输TComponent之前分配"TWriter.Ancestor"属性时生成的,但是我无法设置它,IDE需要设置它起来.我不能说服IDE为我做这件事.
以下是累积的相关代码部分:
TTestFrame = class(TFrame)
public
constructor Create(Owner:TComponent);override;
end;
constructor TTestFrame.Create(Owner: TComponent);
begin
inherited;
if csDesignInstance in ComponentState then InitInheritedComponent(Self, TFrame);
end;
procedure Register;
begin
RegisterClass(TTestFrame);
RegisterNoIcon([TTestFrame]);
RegisterCustomModule(TTestFrame, TCustomModule);
end;
Run Code Online (Sandbox Code Playgroud)
任何想法,除了"放弃并将你的东西放入对象存储库"?谢谢!
编辑
为什么我需要这样做以及为什么依赖于实际路径名称的解决方案被写入我的项目文件中的原因不起作用:我想支持分支:当一个分支时,合理地期望同一个项目的多个版本"活着"同一台机器上的不同目录.推论,我不能在同一个地方同时拥有同一个项目的多个版本.
为了确保这项工作,我决定让我的项目不依赖于生活的地方,为了实施这一点,我的团队克隆(Mercurial术语)或Check Out(SVN术语)的每个人都在不同的目录中.我系统上的硬编码路径在我的同事系统中不会很好:如果我们中的任何一个人犯了将任何路径硬编码到应用程序中的错误,那么它不久就会对我们中的一个进行制动,所以错误得到修复.
这当然是我们需要继承的某些库(因此它们不在我们项目的目录中)的一部分的表单和框架的问题!为了在处理这些文件时获得IDE支持,我们需要暂时将它们添加到项目中,我们不必忘记在完成后删除它们.如果我们忘记并推送/检查更改,更改将为我们的同事制造构建(因为他们在不同位置检查了库).
为了解决这个问题,我尝试将这些框架和表单添加到设计时包中(使用完整路径将包加载到IDE中,但路径不是项目文件的一部分,所以没关系).不幸的是,这失败了,我发布了这个问题.
我有一个文本文件,其中包含几行,每行都是逗号分隔的字符串.每行的格式是:
<Name, Value, Bitness, OSType>
Bitness并且OSType是可选的.
例如,文件可以是这样的:
Name1, Value1, X64, Windows7
Name2, Value2, X86, XP
Name3, Value3, X64, XP
Name4, Value3, , Windows7
Name4, Value3, X64 /*Note that no comma follows X64 */
....
....
Run Code Online (Sandbox Code Playgroud)
我想将每一行解析成4个变量并对其执行一些操作.这是我使用的PowerShell脚本..
Get-Content $inputFile | ForEach-Object {
$Line = $_;
$_var = "";
$_val = "";
$_bitness = "";
$_ostype = "";
$envVarArr = $Line.Split(",");
For($i=0; $i -lt $envVarArr.Length; $i++) {
Switch ($i) {
0 {$_var = $envVarArr[$i].Trim();}
1 {$_val = $envVarArr[$i].Trim();}
2 …Run Code Online (Sandbox Code Playgroud) 这是一个常见的问题,但我不确定如何解决它.下面的代码工作正常.
var mind = time % (60 * 60);
var minutes = Math.floor(mind / 60);
var secd = mind % 60;
var seconds = Math.ceil(secd);
Run Code Online (Sandbox Code Playgroud)
但是,当我达到1小时或3600秒时,它返回0分0秒.如何避免这种情况,以便返回所有分钟?
谢谢
我有一个xml列,我想在相邻的列中保留一个节点计数.
例如,在下面给出的xml中,我有3个节点a,所以我想输出它.
但是,我遇到的问题是我无法创建一个通用的模式绑定函数,该函数将使用@xml和@nodeName以返回指定节点的计数.
create function dbo.fnXmlCount_a (@xml xml)
returns int with schemabinding
as begin
return (@xml.value('count(//a)', 'int'))
end
declare @xml xml;
set @xml = '
<r>
<a></a>
<b></b>
<a></a>
<c>
<a></a>
</c>
</r>'
select dbo.fnXmlCount_a(@xml) aCount
Run Code Online (Sandbox Code Playgroud)
最后一次操作的结果是:
aCount
3
Run Code Online (Sandbox Code Playgroud)
然后我在该表上创建一个具有此xml字段的列,如下所示:
alter table [XmlTable] add column [aCount] as (dbo.fnXmlCount_a([xml])) persisted
Run Code Online (Sandbox Code Playgroud)
但我真正想做的是:
alter table [XmlTable] add column [aCount] as (dbo.fnXmlNodeCount([xml], 'a')) persisted
Run Code Online (Sandbox Code Playgroud)
谢谢!
更新:
我们都知道这//很慢,所以如果你能弄清楚如何通过这条路径来搜索另一个变量,那就太好了.默认情况下,此搜索路径将是//.
我最近采访了一家公司,他们让我写一个算法,找到数组中元素总和最大的子序列.数组中的元素可以是负数.是否有O(n)解决方案?非常感谢任何好的解决方案.
我需要加载一些在顶部有这个的xhtml文件:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Run Code Online (Sandbox Code Playgroud)
每个文件都将加载到单独的System.Xml.XmlDocument中.由于DOCTYPE声明,它们需要很长时间才能加载.我尝试设置XmlResolver = null,但后来我抛出了XmlException,因为我有无效的实体(例如,").所以我认为我可以为第一个XmlDocument下载DTD,并以某种方式将其重用于后续的XmlDocuments(从而避免性能损失),但我不知道如何做到这一点.
我正在使用.Net 3.5.
谢谢.
.net ×2
c# ×2
sql ×2
sql-server ×2
t-sql ×2
64-bit ×1
algorithm ×1
c ×1
c++ ×1
copy ×1
csv ×1
delphi ×1
delphi-2010 ×1
forms ×1
java ×1
javascript ×1
jvm ×1
nstableview ×1
powershell ×1
regex ×1
repository ×1
rows ×1
this ×1
xml ×1