我希望用户能够指定类似"星期二,从上午10点到上午11点"的内容.
我可以用一个复杂的控件来做这个,或者我会更好地使用3个单独的简单控件,比如组合框,一天一个,一个用于开始/停止时间?
我想扩展DbGrid功能,在奇数行和偶数行上添加颜色.所以我写了这个
procedure TGridx.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
var
row : Integer;
begin
inherited;
row := Self.DataSource.DataSet.RecNo;
if (row mod 2 = 0) then
Self.Canvas.Brush.Color := FColor1 //some color
else
Self.Canvas.Brush.Color := FColor2; //some color
end;
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
如何编写一个从不允许它在表单上多次删除的简单组件?
比方说,我已经在表单上删除了我的TMyComponent,如果我将删除另一个TMyComponent,它会通知'组件已经存在!' 并将取消在表单上删除组件.
当我使用XCode 4.5创建一个全新的Cocoa(Mac OS X)应用程序,关闭"基于文档"选项,并启用"自动引用计数"时,构建,而不更改任何内容,并使用"泄漏"使用Profiler运行模板,我看到19.76兆的暂时内存使用量和2.23兆字节的"活字节",包括3132个CFStrings,1371个CFBasicHash和几百个mallocs(),包括仍然由CoreGraphics分配的192 kb,即使程序已经终止.我在"Allocations"时间轴中看到了所有这些,但在"Leaks"时间轴中没有输出.我发现这种差异令人困惑.
我想知道,例如,如果可能的话,使用一个简单的Cocoa基础参考应用程序,如果没有,那么我想知道参考技术是什么,以了解哪些泄漏是我的,哪些是预期的.
请注意,使用Foundation-framework链接命令行工具,"开箱即用漏洞"的数量要简单得多,只有大约18个mallocs(),总计1.06 kb,因此似乎AppKit(Cocoa)是大多数的起源默认情况下"活动对象仍然在程序结束时堆上,不知何故,不泄漏".
有没有办法制作一个简单的非泄漏的Cocoa基础参考应用程序,或者框架本身是否泄漏了太多(可能是有意的),事实上,这是不可能的?
是的,我知道静态分析.是的,我知道垃圾收集.如果有人不想使用垃圾收集,但只想使用ARC,并希望在运行时真正看到泄漏的内容,那么这个人可以这样做,而不必忽略14799左右的基础和框架漏洞吗?
更新:我自己混淆的源#1正如建议的那样,我正在查看错误的时间线......但是,在我自己的辩护中(或解释我的困惑),我一直在考虑任何仍然分配的对象在程序执行结束时的堆上作为泄漏,这是一种常见于Pascal(Delphi)和C++世界的规则,实际上是在Linux和Windows上的大多数非垃圾收集语言中.也许这在Objective-C世界中根本不是"泄漏"?内存时间轴中的"生活项目"仍然"在堆上活动",这与泄漏有什么不同?事实上,我的AppController从未被告知"dealloc",这对我来说也是令人惊讶的,但我被告知是"可以预期的".

我需要将辅助应用程序的用户界面(UI)嵌入到主应用程序中.我可以使用SetParent轻松地将辅助应用程序主窗体托管到主应用程序中.我正在使用命名管道在两个应用程序之间进行通信.我甚至可以借助主应用程序中的虚拟TEdit在辅助应用程序中使用AttachThreadInput API来解决跳转问题.到现在为止还挺好.
我无法解决以下问题:辅助应用程序中的任何模态形式都不会被视为主应用程序的模态,这会造成重大麻烦.
顺便说一句:不要告诉我使用DLL,OCX或ActiveX.我有两个普通的exe文件.
任何帮助/暗示赞赏.
我一直在设置计算机时出现同样的错误,因此它将运行Delphi,我已经在PLATFORM环境变量上设置了用户覆盖,将其转换为win32,但它仍然给出了相同的错误;
[错误错误] PLATFORM变量"HPD"无效.PLATFORM必须是以下之一:"Win32","Win64","Android","iOSSimulator","iOSDevice"或"OSX32".如果PLATFORM由您的系统环境定义,则必须在RAD Studio IDE中覆盖它,或者在命令行上显式传递给MSBuild; 例如,/ p:Platform = Win32.
任何人都可以解释为什么它这样做以及如何修复错误?事实上,我在大学里使用Delphi XE2并且我现在正在使用Delphi XE3,这可能会影响到这一点
基于maven原型方法的答案有效.如果Vaadin的IntelliJ向导/模板被修复,我将基于使用内置向导更新并接受答案.*
我设法使用终端窗口中的maven原型创建一个新项目,然后将其导入IntelliJ IDEA,配置GWT方面,但是现在当我运行它时说:
"Error running unnamed: No GWT Modules found in 'projectname'"
Run Code Online (Sandbox Code Playgroud)
我承认自己是Java,IntellIJ和Vaadin的初学者,更不用说GWT了.
我还尝试使用IntelliJ IDEA(Ultimate)附带的原生Vaadin插件创建一个新的Vaadin项目.我正在使用Ultimate,但这是一个试验.

更新::最初我在"新建项目"窗口的可用项目模板列表中看不到任何Vaadin项目.那是因为我对IntelliJ的新项目向导中的两个级别的新项目想法感到困惑.现在排序了.
Update2 ::我可以按照下面两个答案的EITHER中的步骤获得一个构建但不运行的项目.我假设我是正确的添加GWT运行目标,因为在我这样做之前,运行菜单完全变灰.我认为它是灰色的,因为GWT方面的模块列表中没有列出模块.

我假设我必须创建一个新的运行/调试配置,它必须是以下之一,并且由于vaadin基于GWT,因此GWT有一定意义:

在我添加GWT之后,我仍然得到与我从maven原型开始时最初的错误:没有GWT模块.我不知道人们在谈论从下拉模块中挑选什么...

Update3 仍然无法让下面的任何一个解决方案工作.卡在此屏幕上,无法显示"要加载的GWT模块"组合框中的任何模块,该组合框仍然显示为灰色.我相信这是我应该选择的下拉模块,但下面没有任何内容告诉我如何让它变为灰色(启用):

我最终设法(a)手动添加GWT方面,(b)配置它,(c)现在它将运行.这会导致运行时错误(应用程序无法在Web浏览器中打开,但很明显它非常接近工作.)
这个问题使用早于Rust 1.0的语法,但概念是通用的,并且许多答案已经更新以反映稳定的Rust 1.0.
这个问题是程序员在学习Rust时可能尝试的一个非常基本的问题.
你不能问一个关于Rust语言的简单问题,我不认为,但我是一名有30年经验的程序员,我无法理解.
我认为它int::range与闭包有关.
这是我在Rust的早期版本(1.0之前版)中所写的内容.
fn main() {
int::range(0, 100, {|i|
io::println(i);
});
}
Run Code Online (Sandbox Code Playgroud)
这会创建可爱的错误消息,我不知道如何修复:
hello.rs:3:19: 5:2 error: mismatched types: expected `&fn(int) -> bool` but found `()` (expected fn but found ())
hello.rs:3 int::range(0, 100, {|i|
hello.rs:4 io::println(i);
hello.rs:5 });
Run Code Online (Sandbox Code Playgroud)
它如何打印出我的整个功能体,这很有趣,但我仍然不知道那是&fn(int) ->b ool什么意思.我隐约怀疑有一个迭代器的闭包体没有声明任何返回类型在Rust中明确禁止,这让我感到困惑.
考虑Unicode图表中C1控件和Latin-1补充的unicode图表.如果一个字符有一个字形,则显示它,如果它没有字形,则给出一个特殊的虚线和符号标记或标识符.在这种情况下,0080和0081似乎都有一些"无效标记",我认为这是"XXX"的意思.这是什么意思?

其次,具有存储到值0x80(十六进制)或128(十进制)字符串中的值的Unicode感知字符串类型的行为应该是什么?它应该转换为其他点,例如这样的映射:
我在其MBCS和Unicode类型的特定语言或操作系统API实现中遇到的神奇的"非正交性",以及Java的有趣处理,让我想知道,U + 0080字符的真正用途是什么?这个引用链接让我感到困惑,因为它表明Java将此字符视为欧元符号(ANSI代码页与Unicode单向友好性),但它的名称<control>不是我知道如何处理的.维基百科说它就在PAD 这里
谁能帮我?我是否在Unicode学校跳过基础概念日?我错过了什么?
更新 0080到0098之间的块是不可打印的控制字符.我知道这个.我想知道XXX是什么意思,当我用这个值处理unicode数据时,我怎么想到这个字符呢?
为了一个最小的完整问题,我有一个WMF文件加载到TImage窗体上的控件.此控件包含属性Picture,这是一种TPicture类型.我试图"栅格化"我加载到TImage中的WMF文件,并将其存储到TSpeedButton.Glyph.
这个过程有趣的是我能够使用这种技术创建一个独立于分辨率的自定义控件(在我的情况下是一个按钮),它将重绘其字形以获得您喜欢的任何分辨率.
在实际使用中,我不会有TImage或TSpeedButton,但这个问题基本上是关于将内容从TPicturea 移动到a的过程TBitmap.
以下是相关的半工作代码:
procedure CopyBitmap( Source:TImage; DestSpeedButton:TSpeedButton );
var
bmp: TBitmap;
begin
bmp:=TBitmap.Create;
try
// note: with WMF loaded, Source.Picture.Bitmap.Width and Height are 0.
bmp.Width := Source.Width; // originally I had Source.Picture.Bitmap.Width, which didn't work.
bmp.Height := Source.Height; //because Source.Picture.Bitmap.Height, doesn't work.
bmp.Canvas.Draw(0,0, Source.Picture.Graphic );
DestSpeedButton.Glyph:=bmp;
finally
bmp.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?为什么在复制过程中图像会反转?

delphi ×6
components ×2
delphi-xe2 ×2
canvas ×1
delphi-7 ×1
delphi-xe3 ×1
instruments ×1
java ×1
memory-leaks ×1
rust ×1
unicode ×1
vaadin ×1
vcl ×1
xcode ×1