小编mh *_*qia的帖子

如何在Firemonkey中创建"No Activate"表单

在XCode中,通过将这些方法添加到NSView子类可以防止窗口在单击时变为活动状态:

- (BOOL)shouldDelayWindowOrderingForEvent:(NSEvent )theEvent {
    return YES;
}
- (BOOL)acceptsFirstMouse:(NSEvent )theEvent {
    return YES; 
}
- (void)mouseDown:(NSEvent )theEvent {
    [[[NSApp]] preventWindowOrdering]; 
}
Run Code Online (Sandbox Code Playgroud)

在Windows平台中,这是通过以下简单代码完成的:

HWND hWnd = FindWindowW((String("FM") + fmxForm->ClassName()).c_str(), 
    fmxForm->Caption.c_str());

SetWindowLong(hWnd, GWL_EXSTYLE,
    GetWindowLong(hWnd, GWL_EXSTYLE) | WS_EX_NOACTIVATE);
Run Code Online (Sandbox Code Playgroud)

我怎样才能将NSView子类化以防止我的FMX TForm在点击时变为活动状态?

如何在firemonkey中创建" No Activate "表单?

delphi macos c++builder delphi-xe2 firemonkey

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

Android和java字节码操作

我是java的新手,我需要为某些目的操纵java字节码(见这个).Java字节码操作需要以下导入:

  1. org.objectweb.asm
  2. java.lang.instrument中

我通过从asm网站下载ASM包解决了org.objectweb.asm 并解决了相关的导入问题.
我不知道如何解决java.lang.instrument,我的默认ADT包没有它:

在此输入图像描述

如何解决此导入问题?我应该下载任何图书馆吗?来自哪里?
任何帮助,将不胜感激.
谢谢.

java android bytecode java-bytecode-asm

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

在RAD Studio中使用正则表达式替换文本

我想替换例如F(G(X,Y)); H(X,Y); 在RAD Studio IDE中.

我使用的正则表达式是:

查找表达式:F\(G\((.+)\)\); 替换表达式:H($1)

结果并不如我所料:

结果: H($1)

似乎RAD Studio无法识别$ 1作为两个括号之间的内容.
有人有想法吗?
谢谢

regex delphi

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

如何在Mac中将事件或消息发送到外部进程?

在Windows中,我可以将自定义消息发布到另一个进程,并通知它执行以下操作:

PostMessage(WindowOfAnyProcess, WM_CUSTOM_MESSAGE, param1, param2)
Run Code Online (Sandbox Code Playgroud)

在Mac OS上有什么替代方案?碳活动对我有帮助吗?怎么样?谢谢。

macos cocoa macos-carbon postmessage

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

AlarmManager或服务

我是一名C++开发人员,正在开发我的第一个Android应用程序.我的申请是一种特殊的提醒.我正在寻找最好的方法.我试过这种方法:

  1. 使用服务
  2. 使用AlarmManager

我的问题是我可以单独使用AlarmManager吗?考虑到我的AlarmManager应该每1秒触发一次,这是一个CPU耗时的任务吗?(似乎每次执行AlarmManager时,都会创建一个除主进程之外的新进程并立即被终止).

如果我使用服务,那么我的应用程序应始终保留在内存中,如果被用户杀死会发生什么!

Android Alarms(默认安装的应用程序)如何工作?

任何帮助,将不胜感激.

service android alarmmanager

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

支持简历的Indy Http Server

我写了一个indy http服务器,我想用简历支持服务文件下载.当我使用IDM下载文件时,下载是单线程的:

在此输入图像描述

请注意," 恢复"功能"",但是当我暂停并恢复下载时,它将从表单开始.

我的Indy Http服务器如下:

void __fastcall TfrmMain::httpServerCommandGet(TIdContext *AContext,
    TIdHTTPRequestInfo *ARequestInfo, TIdHTTPResponseInfo *AResponseInfo)
{
    Beep(1000, 100);
    string fileName = ExtractFileDir(Application->ExeName) + ARequestInfo->Document;
    fileName = fileName.replace("/", "\\");

    TFileStream *stream = new TFileStream(fileName, fmOpenRead | fmShareDenyNone);

    int start = 0, end = 0;
    string range = ARequestInfo->Range;
    if(!range.empty())
    {
        int dash_pos = range.find("-");
        start = range.substr(0, dash_pos).intValue();
        end = range.substr(dash_pos + 1).intValue();
        if(end == 0) // Endless Range: start-
            end = stream->Size;
    }
    else
    {
        start …
Run Code Online (Sandbox Code Playgroud)

delphi tcp indy c++builder httpserver

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

AppleScript到Javascript

Javascript中的以下等效代码是什么?该Apple脚本可以转换为Java脚本吗?

tell application "Finder"
    activate
    set position of Finder window 1 to {607, 276}
    close Finder window 1
end tell
Run Code Online (Sandbox Code Playgroud)

谢谢。

javascript macos applescript finder

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

为什么TrueType字体在Mac上只使用"Quadratic Curves"?

我使用下面的代码提取了TrueType字体的路径元素.

问题是所描述的曲线element->type只是类型kCGPathElementAddQuadCurveToPoint,它有2个点(低质量).为什么没有任何元素使用更高质量的kCGPathElementAddCurveToPoint类型(3分)?

有人有想法吗?

int count = 0;
void applierFunction(void *info, const CGPathElement *element)
{
    int point_count;
    switch (element->type)
    {
        case kCGPathElementMoveToPoint:
            point_count = 1;
            break;
        case kCGPathElementAddLineToPoint:
            point_count = 1;
            break;
        case kCGPathElementAddQuadCurveToPoint:
            point_count = 2;
            break;
        case kCGPathElementAddCurveToPoint:
            point_count = 3;
            break;
        case kCGPathElementCloseSubpath:
            point_count = 0;
            break;
    }
    count+=point_count;
    printf("%u.:\n", count);
    for (int i = 0; i<point_count; i++) {
        switch (element->type) {
            case kCGPathElementMoveToPoint:
                printf("kCGPathElementMoveToPoint\n");
                break;
            case kCGPathElementAddLineToPoint:
                printf("kCGPathElementAddLineToPoint\n");
                break;
            case kCGPathElementAddQuadCurveToPoint: …
Run Code Online (Sandbox Code Playgroud)

macos cocoa core-graphics truetype core-text

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

如何以编程方式检索OS X中的根磁盘分区的UUID?

我可以通过以下代码检索OS X磁盘分区UUID:

void PrintUUID() 
{
    DADiskRef disk;
    CFDictionaryRef descDict;
    DASessionRef session = DASessionCreate(NULL);
    if (session) {
        disk = DADiskCreateFromBSDName(NULL, session, "/dev/disk0s2");
        if (disk) {
            descDict = DADiskCopyDescription(disk);
            if (descDict) {
                CFTypeRef value = (CFTypeRef)CFDictionaryGetValue(descDict,
                    CFSTR("DAVolumeUUID"));
                CFStringRef strValue = CFStringCreateWithFormat(NULL, NULL,
                    CFSTR("%@"), value);
                print(strVal); <------------- here is the output
                CFRelease(strValue);
                CFRelease(descDict);
            }
            CFRelease(disk);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码检索disk0的UUID,我想检索根磁盘的UUID(挂载点= /),如果我使用"/"代替"/ dev/disk0s2",那么DADiskCopyDescription返回NULL.此外,我知道我可以通过此命令在终端中执行此操作:

diskutil info /
Run Code Online (Sandbox Code Playgroud)

简单地说,如何检索根磁盘的BSD名称?(在DADiskCreateFromBSDName中使用它)

有人有想法吗?谢谢.

macos xcode cocoa objective-c core-foundation

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