小编Tho*_*ger的帖子

如何搜索通用TList <T>集合?

可能重复:
如何在通用TList中搜索具有特定字段值的记录?

我有一个集合

TList<TActivityCategory>
Run Code Online (Sandbox Code Playgroud)

TActivityCategory有一个String类型的Name属性,我想使用Name属性搜索TList.

我在TList <>中看到了BinarySearch,但这需要一个TActivityCategory实例.我只想传递一个名字的字符串.

我该怎么做呢?

delphi generics tlist

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

如何在AWS SQS队列上添加权限?

使用以下代码,我可以使用我的AWS账号添加权限,但队列不会收到来自SNS的任何消息.

AddPermissionRequest addPermissionRequest = new AddPermissionRequest();
addPermissionRequest.ActionName.Add("SendMessage");
addPermissionRequest.ActionName.Add("ReceiveMessage");
addPermissionRequest.QueueUrl = queueUrl;
addPermissionRequest.Label = General.IpAddressAWSFriendly;
addPermissionRequest.AWSAccountId.Add(AWS_ACCOUNT_ID);
sqs.AddPermission(addPermissionRequest);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试通过通配符(*)为每个人设置权限时:

addPermissionRequest.AWSAccountId.Add("*");
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误.如果我在AWS SQS控制台中手动添加权限并指定

SendMessage
ReceiveMessage
Run Code Online (Sandbox Code Playgroud)

对于允许的操作和原则,我将其设置为"所有人",队列确实从我的SNS主题接收消息.所以,显然,我做错了什么,但我再也看不到了.

任何帮助都会很棒!我希望亚马逊有示例,SDK附带的示例并未显示有关设置策略或权限的任何信息.在线文档中也没有显示任何内容.令人沮丧.

c# permissions clojure amazon-sqs amazon-web-services

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

如何使用Spring Framework在RabbitMQ Java配置类中设置多个主题?

我正在尝试使用Spring Framework创建RabbitMQ配置类.该文档没有说明如何在TopicExchange中设置多个主题.我怎么做?到目前为止,我有这个Java代码,但我不清楚如何在下面的绑定方法中设置多个主题,因为它只返回一个绑定.如果我需要多个主题,我不需要多个绑定吗?

@Configuration
@EnableRabbit
public class MessageReceiverConfiguration {

    final static String queueName = "identity";
    final static String topic1 = "NewUserSignedUp";
    final static String topic2 = "AccountCreated";

    @Autowired
    RabbitTemplate rabbitTemplate;

    @Bean
    Queue queue() {
        return new Queue(queueName, false);
    }

    @Bean
    TopicExchange exchange() {
        return new TopicExchange("DomainEvents");
    }   

    @Bean
    Binding binding(Queue queue, TopicExchange exchange) {
        // How to setup multiple topics?
        return BindingBuilder.bind(queue).to(exchange).with(topic1);
    }

    @Bean
    SimpleMessageListenerContainer container(ConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter) {

        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();

        container.setConnectionFactory(connectionFactory);
        container.setQueueNames(queueName);
        container.setMessageListener(listenerAdapter);
        container.setAcknowledgeMode(AcknowledgeMode.AUTO);

        return container; …
Run Code Online (Sandbox Code Playgroud)

java spring rabbitmq

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

如何将delphi表单的宽度和高度像素转换为对话框单元?

我正在尝试将Delphi表单的宽度和高度像素计算为精确的对话框单元,以创建使用DIALOGEX语句的.rc(资源脚本)文件.到目前为止,我还无法使用此处描述的Microsoft公式计算正确的对话框单元:https://support.microsoft.com/en-us/help/145994/how-to-calculate-dialog-box-units-基于-上的电流的字体功能于视觉

上面的链接使用GetDialogBaseUnitsWin32 API调用但这不起作用,因为该API函数使用系统字体.所以这没用.甚至微软也说我们应该使用MapDialogRect.因此,使用此处提供的关于如何使用非基于系统的字体计算对话框基本单位的公式https://support.microsoft.com/en-us/help/125681/how-to-calculate-dialog-base-units -with-非系统为基础的字体

1个horz对话框基本单位==(2*平均字符宽度对话框字体/平均字符宽度系统字体)像素

1个vert对话框基本单位==(2*平均字符高度对话框字体/平均字符高度系统字体)像素

我尝试过这样的事情:

  xPixels := 200
  yPixels := 50;

  dc := GetDC(0);

  SelectObject(dc,handle);  // handle := f.Font.Handle  (f := TForm created)
  if not GetTextMetrics(dc, tm) then
    ShowMessage('Error');
  avgHeight := tm.tmHeight / 8.0;

  GetTextExtentPoint32(dc,
       PChar('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'), 52,
       size);
  avgWidth := size.cx / 52.0;

  avgSysWidth := 5;   // Made up value, how to calculate?
  avgSysHeight := 1;  // Made up value, how to calculate?

  horzPixels := Round(2 * 1 * (avgWidth …
Run Code Online (Sandbox Code Playgroud)

delphi winapi

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