问题列表 - 第36382页

Delphi:如何为后代添加不同的构造函数?

更新:我最初的例子有点复杂.这是一个简单的8行示例,它解释了一个代码块中的所有内容.以下不编译会发出警告:

TComputer = class(TObject)
public
    constructor Create(Cup: Integer); virtual;
end;

TCellPhone = class(TComputer)
public
    constructor Create(Cup: Integer; Teapot: string); virtual;
end;
Run Code Online (Sandbox Code Playgroud)

注意:这个问题是我正在进行的关于Delphi中构造函数的子句的系列问题的第3部分

原始问题

如何将构造函数添加到现有类?

让我们给出一个假设的例子(即我在SO编辑器中输入的一个例子,它可能编译也可能不编译):

TXHTMLStream = class(TXMLStream)
public
   ...
end;
Run Code Online (Sandbox Code Playgroud)

进一步假设正常使用TXHTMLStream涉及在可以使用之前执行大量重复代码:

var
   xs: TXHTMLStream;
begin
   xs := TXHTMLStream.Create(filename);
   xs.Encoding := UTF32;
   xs.XmlVersion := 1.1;
   xs.DocType := 'strict';
   xs.PreserveWhitespace := 'true';
   ...

   xs.Save(xhtmlDocument);
Run Code Online (Sandbox Code Playgroud)

假设我想创建一个简化所有样板设置代码的构造函数:

TXHTMLStream = class(TXMLStream)
public
    constructor Create(filename: string; Encoding: TEncoding); virtual;
end;

constructor TXHTMLStream.Create(filename: string; Encoding: TEncoding);
begin
   inherited Create(filename);
   xs.Encoding …
Run Code Online (Sandbox Code Playgroud)

delphi constructor delphi-5 constructor-chaining

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

从子进程到控制台的fork()和STDOUT/STDERR

我正在编写一个程序,它会分叉多个子进程,我希望所有这些子进程能够在输出乱码STDERRSTDOUT没有输出的情况下写入行.我没有做任何花哨的事情,只是发出以新行结束的行(至少在我的理解中,这将是Linux的原子操作).从perlfaq它说:

主进程和后台进程("子进程")共​​享相同的STDIN,STDOUT和STDERR文件句柄.如果两者都试图立即访问它们,可能会发生奇怪的事情.您可能想要为孩子关闭或重新打开这些.您可以通过打开管道来解决这个问题(请参阅打开),但在某些系统上,这意味着子进程不能超过父进程.

它说我应该为孩子"关闭或重新打开"这些文件句柄.关闭很简单,但"重新打开"是什么意思?我在我的子进程中尝试了类似这样的东西,它不起作用(输出仍然出现乱码):

open(SAVED_STDERR, '>&', \*STDERR) or die "Could not create copy of STDERR: $!";
close(STDERR);

# re-open STDERR
open(STDERR, '>&SAVED_STDERR') or die "Could not re-open STDERR: $!";
Run Code Online (Sandbox Code Playgroud)

那么,我做错了什么呢?它所暗示的管道示例是什么样的?有没有更好的方法将多个进程的输出协调到控制台?

linux console perl fork

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

使用 upnp 以编程方式将端口转发条目添加到路由器中?

有人有关于如何使用 c++ 将带有 upnp 的端口转发条目添加到路由器的简单示例吗?

c++ networking upnp portforwarding visual-c++

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

条件Linq查询

我有一个下拉列表,选中时会从数据库中提取数据.下拉列表中有许多选项,其中一个是"全部".我希望当用户选择"全部"选项时,它应该将所有内容从数据库中拉出来.实现此功能的好方法是什么?

c# linq-to-sql

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

html:基于电子邮件的价格清单

我正在为一个可能不具备计算机知识的客户建立一个网站.此人知道如何使用电子邮件.我如何建立一个网站(纯粹的HTML,javascript),他可以通过电子邮件发送他的最新价格,网站自动更新.我不认为他会识字到FTP文件的某些地方.可能吗?

如何使用javascript和html构建安全的登录页面并重定向到订购页面?

如何在仅javascript/html网站上创建安全的管理部分?

html javascript

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

WPF ObservableCollection:如何在一个表单的组合框中添加一个空行,但实际上不会影响ObservableCollection?

我在Data Repository类中有一个静态ObservableCollection.我用它来填充我的一个表单上的组合框(它需要能够包含一个表示NULL的空行).

我使用相同的ObservableCollection来填充DataGrid,所以我不想要实际的ObservableCollection中的空白项.我该怎么做呢?

哦,我想要这样做的原因是,如果我打开两个表单并从ObservableCollection中删除一个项目,它应该反映在两个列表中.

c# wpf observablecollection targetnullvalue

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

卷曲请求在SSL上失败?

我有这个代码

    if(ereg("^(https)",$url))
        curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
    // execute, and log the result to curl_put.log
    $result = curl_exec($curl);


    $error = curl_error($curl);
Run Code Online (Sandbox Code Playgroud)

指定的错误是

SSL read: error:00000000:lib(0):func(0):reason(0), errno 104
Run Code Online (Sandbox Code Playgroud)

关于事业的任何想法

php curl libcurl

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

如何使用R的XML库使用xpath查询?

xml文件包含以下代码段:

<?xml version="1.0"?>
<PC-AssayContainer
    xmlns="http://www.ncbi.nlm.nih.gov"
    xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
    xs:schemaLocation="http://www.ncbi.nlm.nih.gov ftp://ftp.ncbi.nlm.nih.gov/pubchem/specifications/pubchem.xsd"
>
....
    <PC-AnnotatedXRef>
      <PC-AnnotatedXRef_xref>
        <PC-XRefData>
          <PC-XRefData_pmid>17959251</PC-XRefData_pmid>
        </PC-XRefData>
      </PC-AnnotatedXRef_xref>
    </PC-AnnotatedXRef>
Run Code Online (Sandbox Code Playgroud)

我尝试使用xpath的全局搜索解析它,并尝试使用一些命名空间:

library('XML')
doc = xmlInternalTreeParse('http://s3.amazonaws.com/tommy_chheng/pubmed/485270.descr.xml')
>xpathApply(doc, "//PC-XRefData_pmid")
list()
attr(,"class")
[1] "XMLNodeSet"
> getNodeSet(doc, "//PC-XRefData_pmid")
list()
attr(,"class")
[1] "XMLNodeSet"
> xpathApply(doc, "//xs:PC-XRefData_pmid", ns="xs")
list()
> xpathApply(doc, "//xs:PC-XRefData_pmid", ns= c(xs = "http://www.w3.org/2001/XMLSchema-instance"))
list()
Run Code Online (Sandbox Code Playgroud)

xpath不应该匹配:

<PC-XRefData_pmid>17959251</PC-XRefData_pmid>
Run Code Online (Sandbox Code Playgroud)

xml xpath xquery r

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

理解ReportServer.dbo.Schedule表

嗨,我正在尝试制作一份报告,列出我们的报表服务器上的所有订阅,它们所在的报表,它们运行的​​时间和日期以及重新记录.到目前为止,我已经能够获得报告的报告和时间表列表.我似乎无法理解Schedule表中的值和列的含义.

如果有人能够阐明如何理解这些专栏和他们的价值观,我会非常感激.这是我到目前为止的查询.

使用ReportServer;

SELECT Users.UserName
,c.Name AS Report
,Subscriptions.Description
,Schedule.*
/*,Schedule.RecurrenceType
,Schedule.MinutesInterval
,Schedule.DaysInterval
,Schedule.WeeksInterval
,Schedule.DaysOfWeek
,Schedule.DaysOfMonth
,Schedule.[Month]
,Schedule.MonthlyWeek*/
FROM [目录] AS c
INNER JOIN订阅
ON c.ItemId = Subscriptions.Report_OId
INNER JOIN用户
ON Subscriptions.OwnerId = Users.UserId
INNER JOIN ReportSchedule
ON Subscriptions.SubScriptionId = ReportSchedule.SubScriptionId
INNER JOIN Schedule
on ReportSchedule.ScheduleId = Schedule.ScheduleId

谢谢,
克里斯

reportingservices-2005 reportserver

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

ASP.NET自定义控件 - 仅包含一次嵌入式CSS引用的最佳方法是什么?

问题:我将CSS文件嵌入到具有多个控件的自定义控件库中.我想为所有控件共享相同的CSS文件,无论它们在给定表单上有多少个实例.当表单上有多个控件时,我想在ASP.NET页面的HTML标题中引用一个CSS文件.

这是我提出的(到目前为止):

Public Sub IncludeStyles(ByVal Page As System.Web.UI.Page)
    'Don't include the reference if it already exists...
    If Page.Header.FindControl("MyID") Is Nothing Then
        Dim cssUrl As String = Page.ClientScript.GetWebResourceUrl(GetType(Common), StylePath)

        Dim css As New System.Web.UI.HtmlControls.HtmlGenericControl("link")
        With css
            .Attributes.Add("rel", "stylesheet")
            .Attributes.Add("type", "text/css")
            .Attributes.Add("href", cssUrl)
            .ID = "MyID"
        End With

        Page.Header.Controls.Add(css)
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

好吧,它的工作原理......但是这里明显的缺陷是FindControl()用来查看窗体上是否存在控件.虽然我使用的是命名容器,但它似乎仍在工作,但我确信有一些方法可以解决这个问题.在具有相同ID的表单上添加另一个控件肯定是一个......

问题:什么是确保标题控件只添加到HTML标题一次的更好方法?

注意:该ClientScript.RegisterClientScriptResource()方法有一个接受.NET类型的参数,此类型可用于确保代码每页只输出一次.不幸的是,此方法仅适用于JavaScript文件引用.如果有CSS引用的内置等价物,那将是我的偏好.

更新:

我发现了一个稍微更优雅的方式来做到这一点在这里通过Page.ClientScript.RegisterClientScriptBlock并告诉它要包括自己的脚本标签,但是瑞克指出,这并不脚本添加到HTML头标记,也不符合xhtml.

更新2:

我在这个线程上看到了另一个有趣的想法,但循环遍历控件集合并不是一个非常好的解决方案,如果在页面上有多个引用和几个控件,则会增加很多开销.

Chris Lively想出了一个更好的解决方案,需要更少的代码.这是我用新解决方案改变的功能:

Public Sub IncludeStyles(ByVal Page As System.Web.UI.Page)
    If Not Page.ClientScript.IsClientScriptBlockRegistered(StyleName) Then
        Dim cssUrl …
Run Code Online (Sandbox Code Playgroud)

css asp.net dependencies custom-server-controls

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