问题列表 - 第5275页

什么时候TGraphicControl.Paint叫?

我正在尝试编写一个自定义TGraphicControl后代,允许用户在VCL表单上嵌入SDL渲染表面.这将提供一种在表单中显示SDL动画的简单方法.

显然,使用Paint方法重绘了TGraphicControl.这种情况多久被召唤一次?只有当某些事情发生在使控件无效时,或者还有其他事情可以调用它吗?它如何与自己绘图的东西相互作用?

delphi vcl sdl image

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

C#:将对象渲染为XML

我正在寻找一种将对象树转换为XML的方法.写作会很有趣,但我相信有人已经写过了.这是我的愿望清单:

  • 它不应该关心构造函数
  • 它理想情况下应该处理循环引用(不太f)
  • 它不应该要求更改对象 - 例如,没有自定义属性
  • 它不应该关心或需要已知的类型(例如,XmlInclude)
  • XML应该简单易懂 - 操作团队成员需要人类可读
  • 如果属性无法序列化,则应该只是抑制错误并继续
  • 可以处理列表和词典

我不需要重建对象模型,因此只写解决方案很好(可能是预期的).

我认为折扣:

  • XmlSerializer - 需要无参数构造函数,没有循环引用支持
  • DataContractSerializer - 需要属性(选择加入)

c# xml serialization

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

为什么空引用异常不能命名具有空引用的对象?

在我看来,我的很多调试时间花在追踪复杂语句中的空引用异常上.例如:

For Each game As IHomeGame in _GamesToOpen.GetIterator()
Run Code Online (Sandbox Code Playgroud)

为什么,当我得到NullReferenceException时,我可以获取堆栈跟踪中的行号,但不能获取等于null的对象的名称.换句话说,为什么:

Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)

代替

_GamesToOpen is not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)

要么

Anonymous object returned by _GamesToOpen.GetIterator() is null.
Run Code Online (Sandbox Code Playgroud)

要么

game was set to null.
Run Code Online (Sandbox Code Playgroud)

这是一个严格的设计选择,是为了保护代码的匿名性,还是编译器设计中有一个令人信服的理由不在调试时异常中包含这些信息?

.net theory compiler-construction exception

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

为什么Assembly.GetManifestResourceStream()中的文本以三个垃圾字符开头?

我有一个SQL文件作为嵌入式资源添加到我的VS.NET 2008项目中.每当我使用以下代码读取文件的内容时,返回的字符串总是以三个垃圾字符开头,然后是我期望的文本.我认为这与我正在使用的Encoding.Default有关,但这只是猜测.为什么这个文字会一直显示出来?我应该只删除前三个字符还是有更明智的方法?

public string GetUpdateRestoreSchemaScript()
{
    var type = GetType();
    var a = Assembly.GetAssembly(type);
    var script = "UpdateRestoreSchema.sql";
    var resourceName = String.Concat(type.Namespace, ".", script);
    using(Stream stream = a.GetManifestResourceStream(resourceName))
    {
        byte[] buffer = new byte[stream.Length];
        stream.Read(buffer, 0, buffer.Length);
        // UPDATE: Should be Encoding.UTF8
        return Encoding.Default.GetString(buffer);
    }
}
Run Code Online (Sandbox Code Playgroud)

更新: 我现在知道,如果我只是更改最后一行以返回UTF-8编码的字符串,我的代码将按预期工作.这个嵌入式文件总是如此,但它总是如此吗?有没有办法测试任何缓冲区来确定其编码?

c# resources encoding visual-studio-2008

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

有没有办法一步到位?

$ clients = $ CLIENT-> find($ options); $ client = $ clients [0];

编辑:我意识到我应该更清楚.$ CLIENT-> find总是返回一个对象数组,但是我想要一行代码将数组(只有一个对象)转换成一个对象.

php arrays

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

计算可以添加三个数字的方式,使它们等于1000

我需要创建一个程序来计算你可以添加三个数字的方式,使它们等于1000.

我认为这段代码应该可行,但它不会写出任何东西.我究竟做错了什么?任何提示或解决方案?

using System;

namespace ConsoleApp02
{
    class Program
    {
        public static void Main(string[] args)
        {
            for(int a = 0; a < 1000; a++)
            {
                for(int b = 0; b < 1000; b++)
                {
                    for(int c = 0; c < 1000; c++)
                    {
                        for(int puls = a + b + c; puls < 1000; puls++)
                        {
                            if(puls == 1000)
                            {
                                Console.WriteLine("{0} + {1} + {2} = 1000", a, b, c);
                            }
                        }
                    }
                }
            }
            Console.ReadKey(true);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c#

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

boost.asio如何发现我的服务器应用正在侦听哪个端口?

当我连接到服务器的客户端应用程序 - 使用IP地址和端口时,boost.asio不使用基本概念,这有点奇怪.可能是我在Boost中有点诺贝 - 我接受了 - 但无论如何我不明白.
所以,我有这样的代码让客户端连接到localhost上的服务器:


        boost::asio::io_service io_service;
        tcp::resolver resolver(io_service);
        tcp::resolver::query query("localhost", "daytime"); 
        tcp::resolver::iterator endpoint_iterator = resolver.resolve(query); 
        tcp::resolver::iterator end;

        tcp::socket socket(io_service);
        boost::system::error_code error = boost::asio::error::host_not_found;
        while(error && endpoint_iterator != end) {
            socket.close();
            socket.connect(*endpoint_iterator++, error);
        }
Run Code Online (Sandbox Code Playgroud)

WinSock 2.0中的Windows使用两个参数 - IP和端口 - 来标识服务器.
因此,问题是 - Asio究竟如何找出服务器正在监听连接的端口?它扫描所有端口吗?而且,如果是这样,如果两个服务器同时在不同的端口上侦听会发生什么?

c++ boost boost-asio

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

如何在X11(linux桌面)下设置鼠标位置?

我想知道如何在X11下设置鼠标光标位置?它是否可能,如果,我在哪里寻找合适的功能?X窗口系统,KDE/Gnome/......?

x11 mouse

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

需要帮助理解Python中的函数传递

我试图通过解决我提出的一些问题来教自己Python,我需要一些帮助来理解如何传递函数.

假设我试图根据今天和昨天的温度预测明天的温度,我写了以下函数:

def predict_temp(temp_today, temp_yest, k1, k2):
    return k1*temp_today + k2*temp_yest
Run Code Online (Sandbox Code Playgroud)

我还写了一个错误函数来比较预测温度列表和实际温度,并返回平均绝对误差:

def mean_abs_error(predictions, expected):
    return sum([abs(x - y) for (x,y) in zip(predictions,expected)]) / float(len(predictions))
Run Code Online (Sandbox Code Playgroud)

现在,如果我有一个过去某个时间间隔的每日温度列表,我可以看到我的预测函数如何使用特定的k1和k2参数完成,如下所示:

>>> past_temps = [41, 35, 37, 42, 48, 30, 39, 42, 33]
>>> pred_temps = [predict_temp(past_temps[i-1],past_temps[i-2],0.5,0.5) for i in xrange(2,len(past_temps))]
>>> print pred_temps
[38.0, 36.0, 39.5, 45.0, 39.0, 34.5, 40.5]
>>> print mean_abs_error(pred_temps, past_temps[2:])
6.5
Run Code Online (Sandbox Code Playgroud)

但是如何设计一个函数来最小化我的predict_temp函数的参数k1和k2给定一个错误函数和我的past_temps数据?

具体来说,我想写一个函数最小化(args*),它采用预测函数,误差函数,一些训练数据,并使用一些搜索/优化方法(例如梯度下降)来估计和返回k1的值和k2在给定数据的情况下最小化我的错误?

我不是问如何实现优化方法.假设我能做到这一点.相反,我只想知道如何将我的预测和错误函数(以及我的数据)传递给我的最小化函数,以及如何告诉我的最小化函数它应该优化参数k1和k2,以便我的最小化函数可以自动搜索k1和k2的一堆不同设置,每次将我的预测函数与这些参数应用于数据和计算错误(就像我手动为k1 = 0.5和k2 = 0.5以上)然后返回最佳结果.

我希望能够通过这些功能,以便我可以轻松交换不同的预测和错误功能(不仅仅是参数设置不同).每个预测函数可能具有不同数量的自由参数.

我的最小化函数应该看起来像这样,但我不知道如何继续:

def minimize(prediction_function, …
Run Code Online (Sandbox Code Playgroud)

python

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

RichTextBox颜色选中的行

我是Windows Forms的新手.我正在使用VS 2008,C#编写RichTextBox.我想在写入RichTextBox时能够用不同的颜色为每一行着色.有人可以指点我的样品.谢谢

foreach (string file in myfiles)
{
  // As I process my files
  // richTextBox1.Text += "My processing results";
  if(file == "somefileName")
  {
    // Color above entered line or enter new colored line
  }

}
Run Code Online (Sandbox Code Playgroud)

.net c# richtextbox winforms

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