小编Veg*_*gar的帖子

如何点击并透视"始终在顶部"窗口

我想显示一个带有一些信息的半透明的always-on-top窗口,但我不希望这个窗口接受输入或接收焦点.所有鼠标点击都应该转到底层窗口.

我记得几年前在一个shell替换应用程序中看到这个,但我不能记得女巫.

任何想法如何用delphi或c#实现这种效果?

更新:

我不能完全得到与delphi一起使用的建议解决方案.为NCHITTEST消息返回HTTRANSPARENT将停止所有到达表单的mousemessages,但是它希望以z顺序将其传递给下一个窗口.这种方法是否可以跨进程工作,还是仅用于处理特定窗口的childelements?

但是,如果我设置了ExStyle标志WS_EX_TRANSPARENT,所有鼠标点击都将进入下一个窗口,但我根本不会收到NCHITTEST消息,并且无法控制窗口应该点击的位置. ..

c# delphi always-on-top

3
推荐指数
1
解决办法
2978
查看次数

WPF:Listbox,valueconverter

将valueconverter与listbox一起使用的最简单方法是什么?

我在运行时将ItemSource设置为对象的List <>,它显示ToString()方法的文本字符串.但我想要的是通过值转换器传递对象以获得完全不同的字符串值.

我发现的所有示例都将大量绑定到xaml中的内容,定义样式和模板以重新设计整个框,但我只想将我的值转换为...

wpf listbox ivalueconverter

2
推荐指数
1
解决办法
2439
查看次数

JEDI WSCL中的RangeCheckError

我正在使用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

delphi exception

2
推荐指数
1
解决办法
510
查看次数

为什么我不应该发布这个字符串?

请看以下方法:

-(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.
有人可以向我解释为什么发布这些对象是错误的吗?

release exc-bad-access objective-c

2
推荐指数
2
解决办法
301
查看次数

FastMM和动态加载的DLL

我有一个主机应用程序,它在启动时加载了十几个库.我想从Delphi 7s默认内存管理器切换到FastMM4的完整版本,以获得更好的内存泄漏报告.

我应该在主机应用程序和库的使用部分中包含FastMM4吗?那么共享运行时包呢?


一些补充信息:

  • 我们有一个exe和> 20个dll.每个人都在共享一个运行时包.
  • 我们今天不使用sharemem.不是我知道的.ShareMem不包含在e斗篷或者我今天快速查看的dll中.

其他问题:

  • 我可以在所有项目中的fastmems inc文件中使用相同的选项,还是exe和dll需要不同的设置?

delphi dll fastmm

2
推荐指数
1
解决办法
4190
查看次数

Caliburn.Micro,HelloScreens-sample

我正在尝试了解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,但它用于什么?

caliburn.micro

2
推荐指数
1
解决办法
1449
查看次数

无法使用.net验证JSON Web令牌 - 密钥短

我用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)

.net c# sha256 jwt owin

2
推荐指数
1
解决办法
1万
查看次数

Observable.Using()取消

我有一个由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,但签名是如此不同,我无法使其工作......

更新: 詹姆斯指出,通过处置可观察量,我的资源也将被处理掉.在我的情况下,一个简单的处置是不够的.我需要先在资源上调用一个方法.怎么归档?

.net c# system.reactive

2
推荐指数
1
解决办法
876
查看次数

Delphi:Codecompletion覆盖basemethods

在类声明中,您可以按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.

delphi class-completion

1
推荐指数
1
解决办法
169
查看次数

应用程序冻结退出 - 如何调试?

我们有一个由主机(exe)和许多包含gui等的模块(dll)组成的应用程序.有时,应用程序会在关闭时冻结.大多数情况下,它通过TestComplete进行测试.我们无法在调试期间重现该行为.

我们怎样才能找出应用冻结的原因?

我猜它与线程有关,但我不确定.

我们应该尝试任何工具或技术吗?

delphi freeze

1
推荐指数
2
解决办法
1600
查看次数

矩阵变换,绕x轴旋转

我在“ 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)

c# matrix

1
推荐指数
1
解决办法
148
查看次数

NSString componentsSeparatedByString:返回自动释放的数组吗?

在下面的方法中,我不确定为什么释放其中一个数组会导致异常.我能看到的唯一原因是,如果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)

任何人都可以确认阵列是否已自动释放?如果是这样,我怎么知道/为什么我应该知道?
是否可以通过代码检查对象的任何一个实例是否自动释放?

objective-c autorelease nsstring

0
推荐指数
1
解决办法
3077
查看次数

在WPF MVVM中对ICommand类型的属性使用INotifyPropertyChanged是必要的吗?

这两种变体(性能,内存泄漏或指南)之间是否存在差异?

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?

c# wpf mvvm inotifypropertychanged

0
推荐指数
1
解决办法
1435
查看次数