我是从TFS映射的大型项目的一部分,在该项目中有一个我已完成工作的文件夹.我不再需要该文件夹了,所以我想删除我的本地副本.问题是TFS想要镜像更改并从源代码控制中删除文件夹,我不想从TFS中删除它.
我能找到的唯一方法是取消映射工作区,然后浏览并获取我需要处理的所有其他文件夹.
无论如何我可以在本地删除该文件夹吗?
我确信这一定是一个常见的问题,但我似乎无法找到一个简单的解决方案......
我想使用名称值对的组合框控件作为项目.ComboBox将TStrings作为其项目,因此应该没问题.
不幸的是,组合框上的绘图方法绘制了Items [i],因此您可以在框中获得Name = Value.
我希望隐藏的值,所以我可以使用代码中的值,但用户会看到名称.
有任何想法吗?
我在Delphi中使用查询获取数据,并希望在运行之前向查询添加计算字段.计算字段使用代码中的值以及查询,因此我无法在SQL中计算它.
我知道我可以附加一个OnCalcFields
事件来实际进行计算,但问题是在添加计算字段后查询中没有其他字段...
我做了一些挖掘,发现所有的场定义都是创建的,但实际的字段只是创建了
if DefaultFields then
CreateFields
Run Code Online (Sandbox Code Playgroud)
指定了默认字段
procedure TDataSet.DoInternalOpen;
begin
FDefaultFields := FieldCount = 0;
...
end;
Run Code Online (Sandbox Code Playgroud)
这表示如果添加字段,则只会获得您添加的字段.
我希望查询中的所有字段与我添加的字段一样好.
这是可能的还是我必须添加我正在使用的所有字段?
我需要将数据库中的blob字段读入ac#app.
但是,blob字段是由Delphi App使用以下方法写入数据库的:
procedure WriteABlob(Blob : TBlobField; var Buffer; size : integer);
var
s : String;
begin
setlength(s,size);
move(buffer,s[1],Size);
Blob.Value := S;
end;
Run Code Online (Sandbox Code Playgroud)
写入数据库的结构不是一个简单的结构,包含类似的东西
MyVariable : Array[0..3] of String[80];
Run Code Online (Sandbox Code Playgroud)
或者更糟糕的是其中一些包含
MyRecord = Packed Record
case byte of
1: (
iValue:Integer;
)
2: (
cValue:Char;
)
end;
Run Code Online (Sandbox Code Playgroud)
我一直在尝试从数据库读取字节然后使用
Marshal.PtrToStructure()
Run Code Online (Sandbox Code Playgroud)
为了将它移动到结构中
我的结构定义如下:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1, Size = 10710)]
public struct MyBlobField
{
...
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.AnsiBStr,SizeConst = SpecificArraySize)]
public String[] ArrayofFixedLengthStrings;
...
}
Run Code Online (Sandbox Code Playgroud)
但是在调用Marshal.PtrToStructure()时出现错误:
无法封送"MyBlobField"类型的字段"ArrayofFixedLengthStrings":无效的托管/非托管类型组合(String []必须与LPStr,LPWStr,BStr或LPTStr的ArraySubType配对).
我想知道是否有一个我可以在CustomMarshaler上定义的属性,它接受与String …
我通过代码覆盖运行我的代码,下面的行显示1块未覆盖.
谁能告诉我该行的哪一部分没有执行?
一个例子:
public abstract class Base
{
public abstract IExample CreateEntity<TExample>() where TExample : IExample, new();
}
public class Class1 : Base
{
public override IExample CreateEntity<TExample>()
{
IExample temp = new TExample();
return temp;
}
}
public interface IExample
{
}
public class TEx : IExample
{
}
Run Code Online (Sandbox Code Playgroud)
和测试方法
[TestMethod]
public void TestMethod1()
{
Class1 ex = new Class1();
ex.CreateEntity<TEx>();
}
Run Code Online (Sandbox Code Playgroud) CA1023:索引器不应该是多维的
索引器(即索引属性)应使用单个索引.多维索引器可以显着降低库的可用性.如果设计需要多个索引,请重新考虑该类型是否表示逻辑数据存储.如果没有,请使用方法.
要修复违反此规则的行为,请将设计更改为使用单个整数或字符串索引,或使用方法而不是索引器.
这对我来说似乎很奇怪,为什么这会对任何事情产生重大影响?除了使多维索引更不直观之外?
Change the design to use a string
?用它做什么?在另一端解析数字并失去强打字?
有人可以告诉我为什么多维索引器有问题吗?
我工作的大部分单元都依赖于数据模块.我遇到的最令人讨厌的事情之一是告诉我的错误消息
模块X引用另一个模块,在加载模块Y之前无法保存.
现在,我确信有一个很好的理由为什么CheckNoFixups
在尝试时会引发此错误WriteRootStream
,并且无法保存实际上是一个Text文件(并且希望这不会出现Catastrophic Failure
在我必须重新启动IDE但仍然无法执行的情况下保存我的工作.)但是有什么好理由?
为什么我不能单击保存而不打开包含各种功能和对象的任何文本文件,就像任何其他单元一样?关于DataModule有什么特别之处,这意味着我无法保存我正在处理的源,直到它打开为止,为什么use子句中的其他45个单元不是那么重要它们必须是开放的?
编辑: 这是Delphi 2007
DataModule的声明是:
unit DataMD;
TRepDataMod = class(TDataModule)
...
var
RepDataMod: TRepDataMod;
Run Code Online (Sandbox Code Playgroud) 我正在创建一个 Windows 窗体应用程序,它有几个可点击的面板,这些面板需要与鼠标按下和松开事件等效的触摸屏。
当我用我的键盘和鼠标进行测试时,事件被正确触发,应用程序按预期做出反应。但是,在触摸屏上进行测试时并非如此。唯一能正常工作的事件是单击事件,但我的应用程序需要鼠标按下事件来持续更新值。
有没有人遇到过这样的问题并找到了解决方案?
在转换类型时使用的Chr和Char之间的区别在于一个是函数而另一个是强制转换
所以: Char(66) = Chr(66)
我不认为有任何性能差异(至少我从来没有注意到任何,可能会调用另一个)....我很确定有人会纠正我这个!
编辑感谢Ulrich的测试证明它们实际上是相同的.
编辑2任何人都可以想到它们可能不相同的情况,例如,由于上下文,你被推向使用一个而不是另一个?
你在代码中使用了哪些?为什么?
是否可以编写一个以任何序数类型作为参数的方法?Inc()或High()的作用方式相同吗?
我正在使用Delphi 2007
delphi ×6
c# ×4
arrays ×1
char ×1
combobox ×1
datamodule ×1
delphi-2007 ×1
marshalling ×1
ordinal ×1
parameters ×1
struct ×1
tfs ×1
touch ×1
types ×1
winforms ×1