我想显示一个带有一些信息的半透明的always-on-top窗口,但我不希望这个窗口接受输入或接收焦点.所有鼠标点击都应该转到底层窗口.
我记得几年前在一个shell替换应用程序中看到这个,但我不能记得女巫.
任何想法如何用delphi或c#实现这种效果?
更新:
我不能完全得到与delphi一起使用的建议解决方案.为NCHITTEST消息返回HTTRANSPARENT将停止所有到达表单的mousemessages,但是它希望以z顺序将其传递给下一个窗口.这种方法是否可以跨进程工作,还是仅用于处理特定窗口的childelements?
但是,如果我设置了ExStyle标志WS_EX_TRANSPARENT,所有鼠标点击都将进入下一个窗口,但我根本不会收到NCHITTEST消息,并且无法控制窗口应该点击的位置. ..
将valueconverter与listbox一起使用的最简单方法是什么?
我在运行时将ItemSource设置为对象的List <>,它显示ToString()方法的文本字符串.但我想要的是通过值转换器传递对象以获得完全不同的字符串值.
我发现的所有示例都将大量绑定到xaml中的内容,定义样式和模板以重新设计整个框,但我只想将我的值转换为...
我正在使用JEDI WSCL在安装期间更改文件夹的权限.在没有优化的情况下进行编译,并且使用范围检查时,我在设置新的访问控制列表时会进行范围检查.
procedure SetFilePermissions(const folder: string);
var
FileObject: TJwSecureFileObject;
DACL: TJwDAccessControlList;
begin
FileObject := TJwSecureFileObject.Create(folder);
try
DACL := FileObject.DACL;
JwInitWellknownSIDs;
DACL.Add(TJwDiscretionaryAccessControlEntryAllow.Create(nil, [afObjectInheritAce], GENERIC_ALL, JwWorldSID, false));
FileObject.SetDACL(DACL);
finally
FileObject.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
看起来它来自JwsclSid.pas中的函数TJwSecurityId.CreateCopyOfSID(),但我找不到原因.
有人有任何线索吗?
我正在使用Delphi 2007,顺便说一下,wscl代码是sourceforge的最新代码.
问候,
-Vegar
请看以下方法:
-(void)updateProfile:(Profile *)profile WithJSON:(NSString *)JSON;
{
SBJSON *parser = [[SBJSON alloc] init];
NSDictionary *object = [parser objectWithString:JSON error:nil];
NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
[nf setPositiveFormat:@"#,##0"];
profile.displayName = [object valueForKey:@"displayName"];
profile.profileURL = [object valueForKey:@"profileURL"];
NSString *rep = [object valueForKey:@"reputation"];
profile.reputation = [[nf numberFromString:rep] intValue];
//[rep release]; <-Why not release?
[nf release];
//[object release]; <-Why not release?
[parser release];
}
Run Code Online (Sandbox Code Playgroud)
我已经注释掉了两行,如果没有,它会给我EXC_BAD_ACCESS.
有人可以向我解释为什么发布这些对象是错误的吗?
我有一个主机应用程序,它在启动时加载了十几个库.我想从Delphi 7s默认内存管理器切换到FastMM4的完整版本,以获得更好的内存泄漏报告.
我应该在主机应用程序和库的使用部分中包含FastMM4吗?那么共享运行时包呢?
一些补充信息:
其他问题:
我正在尝试了解HelloScreens随附的样本Caliburn.Micro.的ShellView.xaml包括一个ContentControl在底部.有人可以解释这个元素的重要性吗?我试图评论它没有看到任何区别.
<UserControl x:Class="Caliburn.Micro.HelloScreens.Shell.ShellView"
xmlns:...>
<Grid>
<local:TiledBackground SourceUri="/Resources/Images/backgroundtexture.png" />
<Image Source="/Resources/Images/backgroundshadow.png"
Stretch="Fill" />
<ct:DockPanel>
<.../>
</ct:DockPanel>
<!-- Whats this one for? --/>
<ContentControl x:Name="Dialogs"
VerticalContentAlignment="Stretch"
HorizontalContentAlignment="Stretch"/>
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
它绑定到viewmodels Dialogs-property,这是一个自定义实现IConductActiveItem,但它用于什么?
我用JSONWebTokennpm模块生成了一个jot:
var jwt = require('jsonwebtoken');
var payload = {
"iss": "https://secure.example.com/",
"exp": 1410819380,
"http://example.com/orgnum": "987987987",
"http://example.com/user": "me@example.com"
};
var token = jwt.sign(payload, 'secret');
console.log(token);
Run Code Online (Sandbox Code Playgroud)
这给了我以下输出:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3NlY3VyZS5leGFtcGxlLmNvbS8iLCJleHAiOjE0MTA4MTkzODAsImh0dHA6Ly9leGFtcGxlLmNvbS9vcmdudW0iOiI5ODc5ODc5ODciLCJodHRwOi8vZXhhbXBsZS5jb20vdXNlciI6Im1lQGV4YW1wbGUuY29tIiwiaWF0IjoxNDA4Mzk0Mjk2fQ.5X5LTg4wxDF2p49xtsRcG4S9Yk4qSfW1tMEU0AquBhc
由于我没有指定我想要的算法,因此它使用SHA256.
现在,我尝试在c#中验证这一点.这并不容易......
我得到一个关于密钥大小的例外:
IDX10603:'System.IdentityModel.Tokens.InMemorySymmetricSecurityKey'不能小于:'128'位.Parameternavn:key.KeySize实际大小为48.
II尝试扩展密钥,在创建对称密钥时出现新错误:
Base-64 char数组或字符串的长度无效
我认为这与我告诉.net代码关于我的密钥的方式有关.由于SymmetricKeyIssuerSecurityTokenProvider构造函数参数已命名base64Key,我尝试对我的密钥进行Base64Url编码:
var secret = Base64UrlEncoder.Encode("secret");
TokenValidationParameters validationParameters = new TokenValidationParameters
{
ValidateIssuer = false,
ValidateAudience = false,
IssuerSigningTokens = new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret).SecurityTokens
};
Run Code Online (Sandbox Code Playgroud)
那么,我在这里缺少什么?
为什么jsonwebtoken.net不能用短键生成和验证jots?
为什么.net不能接受我给它的钥匙?
这是完整的.net代码,带有用长键签名的jot:
var jwtToken =
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3NlY3VyZS5leGFtcGxlLmNvbS8iLCJleHAiOjE0MTA4MTkzODAsImh0dHA6Ly9leGFtcGxlLmNvbS9vcmdudW0iOiI5ODc5ODc5ODciLCJodHRwOi8vZXhhbXBsZS5jb20vdXNlciI6Im1lQGV4YW1wbGUuY29tIiwiaWF0IjoxNDA4Mzk1NjY4fQ.ZceiiEO_Mn5_GZp5D_r68VTT33fbocn1BTTznD6u3cs";
var secret = Base64UrlEncoder.Encode("super duper secret with some …Run Code Online (Sandbox Code Playgroud) 我有一个由Using帮助者制作的观察结果:
var o = Observable.Using(
() => {
return new MyResource
},
res => {
return new Observable.Create<string>(observer => ....);
});
Run Code Online (Sandbox Code Playgroud)
如何取消观察?并确保MyResource被处理掉?
我看到有一个Observable.Using( )包括a cancellationToken,但签名是如此不同,我无法使其工作......
更新: 詹姆斯指出,通过处置可观察量,我的资源也将被处理掉.在我的情况下,一个简单的处置是不够的.我需要先在资源上调用一个方法.怎么归档?
在类声明中,您可以按Ctrl + Space来获取可以覆盖的基类中的虚拟方法列表.
不过,这份清单似乎非常有限.防爆.
TMyBaseClass = class(TInterfacedObject)
protected
procedure mymethod; virtual;
end;
TMyClass = class(TMyBaseClass)
protected
{Ctrl+Space here...}
end;
Run Code Online (Sandbox Code Playgroud)
在TMyClass中,我从TInterfacedObject和TObject获取方法,但不从TMyBaseClass获取方法.这是为什么?
-Vegar
编辑:忘了我的delphi版本......我正在使用2007.
我们有一个由主机(exe)和许多包含gui等的模块(dll)组成的应用程序.有时,应用程序会在关闭时冻结.大多数情况下,它通过TestComplete进行测试.我们无法在调试期间重现该行为.
我们怎样才能找出应用冻结的原因?
我猜它与线程有关,但我不确定.
我们应该尝试任何工具或技术吗?
我在“ Ray Tracer挑战”中苦苦挣扎,在第4章中遇到了一个我无法超越的测试案例。
Scenario: Rotating a point around the x axis
Given p ? point(0, 1, 0)
And half_quarter ? rotation_x(? / 4)
And full_quarter ? rotation_x(? / 2)
Then half_quarter * p = point(0, ?2/2, ?2/2)
And full_quarter * p = point(0, 0, 1)
Run Code Online (Sandbox Code Playgroud)
第一个断言(half_quarter)可以正常工作,但是第二个断言(full_quarter)失败。
期望Matrix.Multiply(full_quarter,p)等于(0,0,1,1),但找到(0,6.12323399573677E-17,1,1)。'
我的实现rotation_x如下:
public static double[,] rotation_x(double radians)
{
var cos = Math.Cos(radians);
var sin = Math.Sin(radians);
return new[,]
{
{ 1, 0, 0, 0 },
{ 0, cos, -sin, 0 },
{ …Run Code Online (Sandbox Code Playgroud) 在下面的方法中,我不确定为什么释放其中一个数组会导致异常.我能看到的唯一原因是,如果componentsSeparatedByString返回一个自动释放的数组,但我看不出文档中提到它确实存在.
-(void)addRow:(NSString *)stringWithNumbers;
{
NSArray *numbers = [stringWithNumbers componentsSeparatedByString:@" "];
NSMutableArray *row = [[NSMutableArray alloc] initWithCapacity:[numbers count]];
for (NSString *number in numbers) {
Number *n = [[Number alloc] initWithNumber:number];
[row addObject:n];
[n release];
}
[rows addObject:row];
[row release];
// [numbers release]; <-- leads to exception
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以确认阵列是否已自动释放?如果是这样,我怎么知道/为什么我应该知道?
是否可以通过代码检查对象的任何一个实例是否自动释放?
这两种变体(性能,内存泄漏或指南)之间是否存在差异?
NPC:
private ICommand mGoBackCommand;
public ICommand GoBackCommand
{
get { return mGoBackCommand; }
set
{
if (mGoBackCommand != value)
{
mGoBackCommand = value;
RaisePropertyChanged("GoBackCommand");
}
}
}
Run Code Online (Sandbox Code Playgroud)
汽车财产:
public ICommand GoBackCommand {get; set;}
Run Code Online (Sandbox Code Playgroud)
UPD:最后一个问题是:我是否可以在VievModel中使用自动属性,如果它们是在构造函数中分配一次的简单命令,或者由于性能,内存泄漏或其他原因我需要在VM的每个属性上实现NPC?