我有以下代码片段,它使用画布的当前转换矩阵转换一组边界.
final RectF bounds = renderer.computeBounds
activeCanvas.getMatrix().mapRect(result, bounds);
return bounds;
Run Code Online (Sandbox Code Playgroud)
但是,使用最新的API级别(16),我会收到警告
The method getMatrix() from the type Canvas is deprecated
哪个都很好,但Canvas.getMatrix()的当前文档没有提到弃用,也没有提供替代方案.作为一种解决方法,我现在只是简单地抑制了这个警告,但我真的想知道这种新的和改进的(tm)方式是什么样的.
我有这个想要做一些实验来修改Delphi运行时库(RTL)的下腹部,system.pas以及喜欢......这可能与否?
我非常喜欢"是的,但你必须为某些汇编器魔法提供自定义.obj文件,因为它们从未随官方Delphi源一起发布".我很好,我只是想知道.
我想用Delphi 7做这个实验,但是关于任何其他版本的内部信息都没问题.这是与石器时代以来与德尔福合作的公司的特权之一.
(我一直认为这是RTFM问题之一,答案是响亮的"不!",但由于某些原因谷歌不会证实它.)
cmtr.setText(finalTime);
cmtr.setBase(SystemClock.elapsedRealtime());
timetest = SystemClock.elapsedRealtime();
Log.d("SETTIME: ", ""+timetest);
cmtr.start();
eltime = SystemClock.elapsedRealtime();
Log.d("ELapsed: ", ""+eltime);
Run Code Online (Sandbox Code Playgroud)
注意:我想以相反的顺序启动我的天文台表.就像我设置天文钟10秒.现在,我想以相反的顺序从10到0秒开始.所以任何人都可以帮助获得这个解决方案.非常感谢你提前.
如果针对为SQL Server复制发布的表运行实体框架迁移(自动或显式),则会出现以下错误:
您只能在READ COMMITTED或REPEATABLE READ隔离级别中指定READPAST锁
之前(此处)存在一些问题,但它们完全无法解决根本原因:实体框架迁移在Serializable隔离级别运行(如SQL Server分析器中清楚显示).
哪个是结构更改事务的安全选择,但它与发布的sql server表不兼容.与dbContext.SaveChanges()事务中使用的默认READ COMMITED SNAPSHOT级别不同,我还没有找到一种方法来为代码中的迁移实际设置不同的隔离级别:
TransactionScope (设置事务隔离级别的经典方法)似乎在期间被忽略 Database.Initialize()
最近推出的Database.BeginTransaction(isolationLevel)实际尝试在启动新事务之前初始化数据库,因此无法使用.
已知的解决方法
生成到SQL脚本的所有迁移.这是有效的,但基于代码的迁移是一个我不想错过的强大工具.
使用显式迁移,并使用类似的东西启动每个Up()和Down()方法
Sql("set transaction isolation level read committed");
这有效,但由于开发人员通常不使用复制数据库,因此不方便且容易出错.
c# sql-server entity-framework ef-migrations entity-framework-6
从大约一个月或2个月开始,Visual Studio 2015 附加到进程对话框需要1-2分钟才能显示在我的一台计算机上.它过去只需要几秒钟,感觉好像突然花费了大量精力来检索进程列表.
毋庸置疑,这是我的临时调试会议的迅速发展.任何使其恢复到以前的工作状态的技巧,或对基本原因的见解,将非常感激.
重新启动计算机(例如,在Windows Update重新启动后)会暂时解决问题.
注意:附加本身工作正常,并且像以前一样快/慢.大多数相关问题似乎与符号加载有关,但这个问题很好用.
额外细节
以我的第一个babysteps与Entity Framework 5.0,我遇到了我创建的第一个实体的异常.
请注意,之后创建的每个表都可以正常工作.另外,请注意我已经采取了重新生成数据库和/或重新启动Visual Studio IDE的常规步骤.
使用Model-First,我创建了一个名为的简单表Contacts,定义为
<EntityType Name="Contacts">
<Key>
<PropertyRef Name="ContactID" />
</Key>
<Property Name="ContactID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="Name" Type="nvarchar(max)" Nullable="false" />
</EntityType>
Run Code Online (Sandbox Code Playgroud)
然后我尝试运行以下代码(来自ASP.NET页面的Page_Load)
var contact = new DataContext.Contact { Name = aName };
context.Contacts.Add(contact);
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
(使用aName!= null)
例外:
System.NullReferenceException was unhandled by user code
HResult=-2147467261
Message=Object reference not set to an instance of an object.
Source=System.Web
StackTrace:
at System.Web.UI.ParseChildrenAttribute.GetHashCode()
at System.Collections.Generic.ObjectEqualityComparer`1.GetHashCode(T obj)
at System.Collections.Generic.HashSet`1.InternalGetHashCode(T item)
at System.Collections.Generic.HashSet`1.AddIfNotPresent(T value)
at System.Collections.Generic.HashSet`1.UnionWith(IEnumerable`1 other)
at …Run Code Online (Sandbox Code Playgroud) 我有一些用户特定的数据,我需要存储在SharePoint中,并通过自定义webparts使用户可以访问.让我们说一个喜欢的网址列表.存储此信息最直接的方法是什么?
对我来说听起来像RTFM,但我可能会问谷歌错误的问题.
[更新]
我们最终将这些信息存储在一个固定位置的简单列表中,并使用Person字段进行过滤.也许确实是最简单的解决方案,但从技术上讲,我认为下面的明确答案更好.
我有以下记录定义
E3Vector3T = packed record
public
x: E3FloatT;
y: E3FloatT;
z: E3FloatT;
function length: E3FloatT;
function normalize: E3Vector3T;
function crossProduct( const aVector: E3Vector3T ): E3Vector3T;
class operator add( const aVector1, aVector2: E3Vector3T ): E3Vector3T;
class operator subtract( const aVector1, aVector2: E3Vector3T ): E3Vector3T;
class operator negative( const aVector: E3Vector3T ): E3Vector3T;
class operator multiply( const aVector: E3Vector3T; const aScalar: E3FloatT ): E3Vector3T;
class operator divide( const aVector: E3Vector3T; const aScalar: E3FloatT ): E3Vector3T;
end;
Run Code Online (Sandbox Code Playgroud)
我想要做的是引入一个变体记录部分,以便能够单独和作为一个数组访问这三个元素,即
E3Vector3T = packed record
public …Run Code Online (Sandbox Code Playgroud) 我们最近将长期运行的Delphi项目转换为开源项目.已经有多个人提供了补丁,这很好,但遗憾的是,使用Delphi 2006(及更高版本)保存时,表单和框架在.dfm中包含了旧版本无法处理的新属性.IDE可以非常优雅地处理表单("忽略属性?"),但是帧会在运行时加载并导致错误.就我而言,不是一种选择.
我现在手动从.dmf文件中删除了这些属性,但我真的想知道是否有更优雅的解决方案.没有办法从新的IDE中以向后兼容的格式保存,是吗?是否有现有工具从.dfm中删除不受支持的属性?我缺少任何其他优雅的解决方案?
通常,对于商业项目,我只是将项目升级到适用的最新版本......但由于这是开源的,我真的不想放弃那些仍在使用Delphi 7的开发人员.这包括我自己,实际上.
我正在Windows 32位机器上编写FireMonkey HD应用程序,并在运行Snow Leopard的MacBook上部署(远程调试)它.我正在运行Delphi XE2试用版.
一切都运行正常,除了一件事:每次运行我按下F9时出现以下错误:
启动调试内核的致命错误:"无效的调试器请求".请保存您的工作并重新启动Delphi XE2.
重新启动XE2并再次运行可以解决这个问题......对于一次运行,我再次遇到同样的错误.无论我是通过CTRL-F2停止调试运行,还是在Mac上正常关闭应用程序,都没有区别.它发生在每个项目上(包括只有一个FireMonkey表单的新的,空的).PAServer终端没有信息,它仍在"监听".
任何人都有关于如何避免这个问题的任何提示?
delphi ×4
android ×2
c# ×2
asp.net ×1
delphi-2010 ×1
delphi-xe2 ×1
forms ×1
ide ×1
record ×1
sharepoint ×1
sql-server ×1
variant ×1
wss ×1