有没有办法暂停表单上的所有锚定控件暂时移动或调整大小?即:
procedure ScaleFormBy(AForm: TForm; n, d: Integer);
begin
AForm.SuspendAnchors();
try
AForm.ScaleBy(n, d);
finally
AForm.ResumeAnchors();
end;
end;
Run Code Online (Sandbox Code Playgroud)
我需要这样做,因为我正在打电话
AForm.ScaleBy(m, d);
Run Code Online (Sandbox Code Playgroud)
哪个不能正确处理锚定控件.(它将左侧+右侧或顶部+底部锚定控件推离窗体边缘.
注意:我想禁用Anchors,而不是Alignment.
我有一个基于母版页的简单ASPX页面.在ASPX页面上,我有两个下拉菜单和一个按钮.按下按钮时,我想执行一些javascript.为此,我使用了Button的属性集合(Add("onclick",script)).
我的脚本看起来像这样:
string script = "return confirm ('You have selected' + document.getelementbyid(DropDownList1).value + document.getelementbyid(DropDownList2).value)");
Button1.Attributes.Add("onclick", script);
Run Code Online (Sandbox Code Playgroud)
下拉框元素名称是现货,但为什么javascript不会触发?单击该事件时,按钮的单击事件(显然)会被触发,但没有任何反应.
这是在C#中完成的.如果我使用ASPX并在ASPX标记中编写基本的javascript函数,intellisense甚至没有为documentgetelementbyid提供value属性.为什么?我的浏览器是完全js启用(Firefox),因为我之前有这个工作,但当我添加主页并基于我的ASPX页面时,一切都变成梨形.
为什么上面的脚本不起作用?
谢谢
在SQL的上下文中,失控查询意味着什么?
这是否意味着任何查询在需要太长时间时会运行?或者它是否意味着由于触发器而产生一些副作用?
我正在开发一个IDE注册组件包,其中大部分源自基础TFrame类.还有各种自定义对话框表单,这些表单由这些组件调用,包含在包中.我在Delphi 2007工作.
我注意到有时框架和表单单元(通常具有关联的DFM文件)并不总是在它们下面显示"下面"(可通过小[+]树视图节点扩展器访问)的DFM文件.例如,如果我添加一个现有的基于表单的PAS文件,通过右键单击BPL项目(在项目管理器中) - >添加,它不会在列表中显示DFM文件.
但是,如果我添加新项,并在项目中创建新的表单或框架单元,它将显示为项目管理器中的典型嵌套双文件项.如果我将现有表单从项目组中的另一个项目拖到相关的BPL项目中,它也会显示这种方式.
看起来这应该是一致的,我更喜欢这两个文件显示单位是框架还是表格.
这是否表示项目文件中存在错误?我是否错误地将现有表格/框架添加到此包裹中?如果是这样,我应该如何添加现有的表单/框架单元,以便两个文件显示在项目管理器列表中?
*更新*
从Alen的建议如下:
我尝试将{$ R*.dfm}指令添加到表单的单元中,并且在将其添加到我的BPL包/项目时它没有强制显示DFM文件.将{$ R*.dfm}添加到项目文件本身(我认为这不是你的意思,但我想我会尝试它)也不起作用.这种技术只适用于EXE项目吗?
可能(可能)相关,试图在地方建立该指令给我这样:
[DCC错误] E2161警告:重复资源:类型10(RCDATA),ID TTESTTREEVIEW; 文件E:\ Projects\MyApp\Components\TTestTreeViewFrame.dfm资源保存; 文件E:\ Projects\MyApp\Components\TTestTreeViewFrame.dfm资源被丢弃.
"Keping"和"丢弃"同一个文件??
后来:看起来这个"重复资源"问题可能与此有关 .不确定,但至少在一个例子中两者同时发生.
所以假设我有一个站点,我没有crossdomain.xml或clientaccesspolicy.xml.
这意味着人们无法通过Silverlight或Flash应用程序访问我的网站.
但他们可以使用PHP中的cURL(或其他语言中的等价物)来从我的站点获取信息,并通过REST或WebService等将其提供给他们的Silverlight和Flash应用程序.
有人可以确切地解释这些限制如何保护我的网站,例如跨域脚本吗?
他们在保护什么针对无法PHP /卷曲和等价物来完成做必须通过脚本访问我的网站?
我最近正在观看关于如何创建流畅的DSL的网络直播,我不得不承认,我不明白为什么会使用这种方法(至少对于给定的例子).
网络广播提供了一个图像大小调整类,它允许您指定输入图像,调整大小并使用以下语法将其保存到输出文件(使用C#):
Sizer sizer = new Sizer();
sizer.FromImage(inputImage)
.ToLocation(outputImage)
.ReduceByPercent(50)
.OutputImageFormat(ImageFormat.Jpeg)
.Save();
Run Code Online (Sandbox Code Playgroud)
我不明白这是如何比采用一些参数的"传统"方法更好:
sizer.ResizeImage(inputImage, outputImage, 0.5, ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)
从可用性的角度来看,这似乎更容易使用,因为它清楚地告诉您该方法期望作为输入.相比之下,使用流畅的界面,没有什么可以阻止你省略/忘记参数/方法调用,例如:
sizer.ToLocation(outputImage).Save();
Run Code Online (Sandbox Code Playgroud)
关于我的问题:
1 -是否有某种方法可以提高流畅界面的可用性(即告诉用户他应该做什么)?
2 -这种流畅的界面方法是否只是C#中现有的命名方法参数的替代?命名参数会使流畅的接口过时,例如类似Objective-C提供的东西:
sizer.Resize(from:input, to:output, resizeBy:0.5, ..)
Run Code Online (Sandbox Code Playgroud)
3 -流畅的界面是否过度使用仅仅是因为它们目前很受欢迎?
4 -或者它只是一个被选为网络广播的坏榜样?在这种情况下,请告诉我这种方法的优点是什么,使用它的意义何在.
顺便说一句:我知道jquery,看看它有多容易,所以我不是在寻找关于那个或其他现有例子的评论.
我正在寻找一些(一般)评论来帮助我理解(例如)何时实现流畅的界面(而不是经典的类库),以及实现它时需要注意的事项.
好吧,我希望我不会在这里打破一些垃圾邮件规则.我刚问了一个关于erlang编译器如何实现模式匹配的问题,我得到了一些很好的响应,其中一个是编译后的字节码(通过传递给c()指令的参数获得):
{function, match, 1, 2}.
{label,1}.
{func_info,{atom,match},{atom,match},1}.
{label,2}.
{test,is_tuple,{f,3},[{x,0}]}.
{test,test_arity,{f,3},[{x,0},2]}.
{get_tuple_element,{x,0},0,{x,1}}.
{test,is_eq_exact,{f,3},[{x,1},{atom,a}]}.
return.
{label,3}.
{badmatch,{x,0}}
Run Code Online (Sandbox Code Playgroud)
它只是简单的二郎元组.我期待一些神秘的二元东西,猜不是.所以我在这里冲动地问这个问题(我可以看一下编译器的来源但是问题总是会因为额外的洞察力而变得更好),这个输出如何在二进制级别翻译?
说{test,is_tuple,{f,3},[{x,0}]}的例子.我假设这是一条指令,称为'test'...无论如何,所以这个输出本质上是字节码级语言的AST,二进制编码只是1-1的翻译?这一切都是如此令人兴奋,我不知道我能否轻松地看到erlang编译器破坏了什么.
非常感谢
我知道,应该不惜一切代价避免使用Erlang字符串......
但如果我不这样做,我如何从5产生"5"?
特别是,有什么像io:format("〜p",[5])会返回格式化的字符串而不是打印到流?
请考虑以下代码:
0.1 + 0.2 == 0.3 -> false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2 -> 0.30000000000000004
Run Code Online (Sandbox Code Playgroud)
为什么会出现这些不准确之处?
我正在使用带有cvs的emacs并启用了cvs模式.我想逐行突出显示CVS中最新版本的变化.我已经在intellij中看到了这一点,其中添加了行的绿色指示和修改行的另一个指示以及删除行的第三个符号.
是否有一个cvs突出显示模式,以便emacs显示最新版本的cvs的变化?我不是在寻找一个cvs diff可以在新缓冲区中打开的类型功能,但是会在我当前的缓冲区中指示哪些行已被修改.
在下图中,左侧有一个蓝色矩形,Intellij称之为"gutter",表示代码与源代码控制中的代码不同.
intellij示例http://www.jetbrains.com/idea/features/screenshots/60/actions.gif
我正在寻找emacs中的类似功能.
delphi ×2
erlang ×2
api-design ×1
asp.net ×1
beam ×1
bytecode ×1
c# ×1
cvs ×1
definition ×1
dsl ×1
emacs ×1
flash ×1
fonts ×1
highlight ×1
ide ×1
javascript ×1
layout ×1
math ×1
packages ×1
silverlight ×1
sql ×1
string ×1
terminology ×1