在Silverlight 2中,我有一个控件的类声明:
public partial class ClassX : UserControl
Run Code Online (Sandbox Code Playgroud)
我希望将UserControl替换为派生自UserControl的ClassXBase,但我得到了合理的错误"'ClassX'的部分声明不能指定不同的基类"
但是,我无法找到替换其基类的其他分部类.知道这个其他的部分课程在哪里或者我是怎么做的?
在过去的两年里,我一直在我的项目中广泛使用智能指针(boost :: shared_ptr).我理解并欣赏他们的好处,我一般都喜欢他们.但是我越是使用它们,我就越想念C++的确定性行为,关于内存管理和RAII,我似乎更喜欢编程语言.智能指针简化了内存管理的过程并提供了自动垃圾收集等功能,但问题是一般使用自动垃圾收集和智能指针特别引入了(de)初始化顺序的某种程度的不确定性.这种不确定性使控制权远离程序员,并且正如我最近意识到的那样,它完成了设计和开发API的工作,
为了详细说明,我目前正在开发一个API.此API的某些部分要求在其他对象之前初始化或销毁某些对象.换句话说,(de)初始化的顺序有时很重要.举个简单的例子,假设我们有一个名为System的类.系统提供一些基本功能(在我们的示例中记录)并通过智能指针保存许多子系统.
class System {
public:
boost::shared_ptr< Subsystem > GetSubsystem( unsigned int index ) {
assert( index < mSubsystems.size() );
return mSubsystems[ index ];
}
void LogMessage( const std::string& message ) {
std::cout << message << std::endl;
}
private:
typedef std::vector< boost::shared_ptr< Subsystem > > SubsystemList;
SubsystemList mSubsystems;
};
class Subsystem {
public:
Subsystem( System* pParentSystem )
: mpParentSystem( pParentSystem ) {
}
~Subsystem() {
pParentSubsystem->LogMessage( "Destroying..." );
// Destroy this subsystem: deallocate memory, release resource, etc.
} …Run Code Online (Sandbox Code Playgroud) 在一个注册后面的KeyListener(即JButton)之间分隔F1和ie CTRL+的F1相应SHIFT- CTRL+ 的正确方法是什么F1?
public void keyPressed(KeyEvent event) {
int key = event.getKeyCode();
logger.debug("KeyBoard pressed char(" + event.getKeyChar() + ") code (" + key + ")");
}
Run Code Online (Sandbox Code Playgroud)
..总是给我112 F1,113 F2等.我知道我可以通过自己处理keyReleased for CTRL/ SHIFT/ ALT/ etc 的keyPressed()来处理它,但我希望有更好的方法.
非常感谢!!!
我在过去的几个月里一直在做一些WPF开发,最近我开始开发Silverlight.
大部分时间情况都没问题,特别是对于简单的东西,但我经常被看似简单的事情所困扰 - 特别是在XAML中.例如,昨天我试图使用Grid来布置ListBox中的项目.这工作,但我无法拉伸网格来填充ListBox的宽度.只有经过几个小时的搜索,论坛帖子和实验才能让它发挥作用,但我不能说我已经弄明白了.
所以,我的问题是你如何学习 WPF或Silverlight? - 特别是XAML,真的.您使用什么技术来理解控件如何实现他们在屏幕上的操作,结构如何等等.有什么我缺少的东西吗?
实际上,这是一个主要的关键点,微软需要解决这个问题,以便有效地开发和运行WPF/Silverlight.
我一直在编写一个VBA宏,它在Excel中打开一个HTML文档(为了对它执行各种计算).Excel将在当前文件夹中搜索HTML文档.如果它找不到它,它将生成一个文件打开框,用户可以手动浏览到HTML文档的位置.到目前为止都很好.但是,如果用户选择取消(而不是选择文件),我希望Excel显示一条消息并退出.
生成消息但代码因以下错误而停止:
运行时错误'424':需要对象.
这听起来不是太麻烦,但我一直在碰到一块又一块砖墙,试图找出造成问题的原因.
似乎不起作用的子是:
Sub ExitWithoutPrompt()
MsgBox "You failed to select a file, therefore Excel will now close. Please refer to the readme file."
Excel.Application.DisplayAlerts = False
Excel.Application.Quit
End Sub
Run Code Online (Sandbox Code Playgroud)
我正在使用MS Excel 2002,但我渴望解决方案能够处理尽可能多的Excel变体.
感谢我在哪里出错了.顺便说一句,我是一个完全新手,所以如果可能的话,请为我提供任何指导,啰嗦......
因为它可能是下面使用的(有使这篇文章变得笨拙的风险)是我在宏中使用的另外两个子:
第一个子:
Sub Endurance()
Call OpenHTML
Range("G27").Value = "Category"
Range("G28").Value = "Meat"
Range("G29").Value = "Veg"
Range("G30").Value = "PRP"
Range("F27").Value = "Fleet"
Range("E27").Value = "Consumption"
Range("E32").Value = "Endurance"
Range("E33").Value = "Lowest Category"
Range("E34").Value = "Fleet"
Range("E35").Value = "Consumption"
Range("E27, F27, G27, E32").Font.Bold = True
Range("F28").Value = …Run Code Online (Sandbox Code Playgroud) 假设我有一个表格
class SampleClass(forms.Form):
name = forms.CharField(max_length=30)
age = forms.IntegerField()
django_hacker = forms.BooleanField(required=False)
Run Code Online (Sandbox Code Playgroud)
有没有办法让我在每个字段上定义css类,以便我可以在渲染页面中使用基于类的jQuery?
我希望不必手动构建表单.
我在图层支持的视图上有一个子图层.子图层的内容设置为图像参考,并且是25x25矩形.
当调用touchesBegan和touchesMoved方法时,我在超级层上执行命中测试.实际上,命中测试方法确实在触摸时返回子层,但仅在触摸图像的下半部分时才返回子层.如果触摸图像的上半部分,则返回超级图层.
我知道iPhone OS可以补偿用户触摸的趋势低于预期.即使我将子图层调整为更大的尺寸(50x50),它也表现出相同的行为.
有什么想法吗?
我正在考虑在两个同时处于活动状态的线程中对QueryPerformanceCounter进行重复调用(旋转).我不确定这是否真的是一个问题,因为我没有看到任何关于它的文章,但是QueryPerformanceCounter线程安全吗?
谢谢
我想出了获得用户UI字体偏好的调用(而不是Borland的硬编码选择"MS Sans Serif").
让我们假装用户的字体偏好是:
Segoe Print, 15pt
Run Code Online (Sandbox Code Playgroud)
我将所有表单中所有项目的字体设置为:
Segoe Print, 15pt
Run Code Online (Sandbox Code Playgroud)
问题是事情现在被切断了.按钮太小 - 太窄,太短.标签中的文字被切断等.
表单具有Scaled属性,但不会因字体大小而改变.缩放属性在基于数字"0"的高度序列化时缩放形式.
我找不到Borland打算如何支持用户的Windows应用程序首选项的帮助.
如何处理用户字体首选项?
注意:我从Embargadero的新闻组服务器上发布了这个,因为Embargadero的新闻服务器似乎正在死亡,或审查,破坏或需要登录.
我在谈论用户的字体偏好,而不是DPI设置.即:想象下面的语言中立伪代码:
procedure TForm1.FormCreate(Sender: TObject);
var
FontFace: string;
FontHeight: Integer;
begin
GetUserFontPreference(out FontFace, out FontHeight);
Self.Font.Name := FontFace;
Self.Font.Height := FontHeight;
end;
Run Code Online (Sandbox Code Playgroud)
注意:这不是我的实际代码(毕竟它是语言中立的伪代码).但另外,您需要递归地遍历表单上的每个控件,在需要更改时更改字体.如果字体应用的样式与其父样式不同(例如粗体),并且不再从其父级继承,则需要手动设置.
根据lkessler的请求,这是从Windows检索用户的UI字体首选项的代码:
procedure GetUserFontPreference(out FaceName: string; out PixelHeight: Integer);
var
lf: LOGFONT;
begin
ZeroMemory(@lf, SizeOf(lf));
//Yes IconTitleFont (not SPI_GETNONCLIENTMETRICS MessageFont)
if SystemParametersInfo(SPI_GETICONTITLELOGFONT, SizeOf(lf), @lf, 0) then
begin
FaceName := PChar(Addr(lf.lfFaceName[0]));
PixelHeight := lf.lfHeight;
end …Run Code Online (Sandbox Code Playgroud) 除非我确定不会有任何错误,否则我总是会因为从不采取行动来防止异常情况.我学会了用C编程,这是真正做事的唯一方法.
使用C#我经常看到更多的被动编程 - 尝试做某事并处理异常.对我来说,这似乎是使用异常作为控制语句.我最初看到这几次,我认为这是不好的做法.但是在过去的几个月里,我已经看到了这一切,只是不得不怀疑 - 这是接受/有效还是只是流行病?
更新:为了澄清一点,我看到的大多数异常处理都是这样的
try
{
//open file
}
catch
{
//message box for file not found
}
Run Code Online (Sandbox Code Playgroud)
甚至更糟
try
{
//open xml
//modify xml (100+ lines of code)
}
catch
{
//message for 'unspecified error'
}
Run Code Online (Sandbox Code Playgroud)
我知道有时候异常处理非常好用(例如数据库连接),但我指的是使用异常来代替更"传统"的控制.我之所以问这个是因为我觉得这种编程风格使用异常作为拐杖而不是恢复方法,并且想知道这是否是我在C#世界中必须学会期待的东西.
silverlight ×2
c# ×1
c++ ×1
cocoa-touch ×1
coding-style ×1
delphi ×1
django ×1
django-forms ×1
dpi ×1
excel ×1
excel-vba ×1
iphone ×1
java ×1
keyboard ×1
preferences ×1
python ×1
raii ×1
shared-ptr ×1
vba ×1
windows ×1
wpf ×1
xaml ×1