小编Mar*_*rks的帖子

在for循环中分配委托的问题

我有一个能够插件(MEF)的应用程序.插件是导入服务的WPF UserControls.

用户可以从应用程序的主菜单中选择所需的插件.

为此,我使用以下循环:

foreach(IToolPlugin Plugin in ToolPlugins)
{
    Plugin.Init();
    MenuItem PluginMenuItem = Plugin.MenuItem; //New MenuItem but with Header set.
    PluginMenuItem.Click += new RoutedEventHandler(delegate(object o, RoutedEventArgs e) { DoSomething(Plugin.Control);});
    PluginsMenu.Items.add(PluginMenuItem);
}
Run Code Online (Sandbox Code Playgroud)

这对于单个项目非常好.但是,只要我有一个以上的插件,所有菜单项都会执行最后一个循环的委托.或者至少使用最后一个循环的Plugin.Control.

我怎样才能解决这个问题?
谢谢你的帮助.

c# delegates closures event-handling

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

iPhone/iPad webapp的禁用格式检测不起作用

我有一个webapp,在iPhone/iPad上显示许多被识别为电话号码的长号码.我使用apple参考中提到的元标记来禁用它:

<meta name="format-detection" content="telephone=no"/>
Run Code Online (Sandbox Code Playgroud)

但是如果我正常加载或重新加载页面,这不起作用.当我用ajax重新加载页面的一部分时,它突然起作用,数字是普通文本.但是当我重新加载页面时,数字又是链接.如果加载ajax的内容与ajax请求之前的内容完全相同,也会发生这种情况.

如果我在浏览器中查看页面(而不是webapp),它从一开始就可以正常工作.

你知道为什么会这样,我怎么能解决它?有没有其他方法可以强制数字不是链接.

谢谢你的帮助.

iphone web-applications ipad

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

dll调用奇怪的字符串行为

我有一个Delphi 2007程序,它调用Delphi 2010 DLL.该计划很大,尚未移植到2010年,所以我现在无法改变这一点.

我使用SimpleShareMem Unit传递字符串,但也尝试使用borlndmm.dll ShareMem.

对于一个函数,我现在将一个字符串从Delphi 2007程序传递给dll(因此AnsiString).调试dll时,此AnsiString看起来很正常,可以在监视列表中查看.但如果我做一个简单的想法

AnAnsiString := PassedAnsiString;
Run Code Online (Sandbox Code Playgroud)

变量AnAnsistring获取值'???????'#0#0#0'???A',但PassedAnsiString在监视列表中仍然可读.还有一个字符串追加

AnAnsiString := PassedAnsiString + NotPassedAnsiString;
Run Code Online (Sandbox Code Playgroud)

使用'???????'#0#0#0'???A'的价值.

问题出在哪儿?这是2007年< - > 2010年的问题吗?怎么解决?感谢帮助.

delphi string dll

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

TSQLQuery - 未从查询返回游标

现在,我试图在delphi程序中删除一些旧的搜索代码,我想将搜索推送到程序正在使用的sql-server.为此,我创建了这个查询,这与我在不同的C#程序中使用的查询非常相似.

使用SQL Management Studio或C#程序查询工作得很好,但是使用Delphi我得到一个"Cursor not from query from"错误.

这是查询

DECLARE @SearchString NVARCHAR(MAX);
SET @SearchString = ':Param1';
IF @SearchString = '' SET @SearchString = '%';

--Table for splitted values
DECLARE @SearchItms TABLE
(
Item NVARCHAR(MAX)
)

--Split Operator
DECLARE @SplitOn NVARCHAR(MAX)
SET @SplitOn = ' '; --Split Keywords on space

--Splitting
While (Charindex(@SplitOn,@SearchString)>0)
Begin
    Insert Into @SearchItms (Item)
    Select ('%' + Substring(@SearchString,1,Charindex(@SplitOn,@SearchString)-1) + '%')

    Set @SearchString = Substring(@SearchString,Charindex(@SplitOn,@SearchString)+1,len(@SearchString))
End

--Add last Item
Insert Into @SearchItms (Item) 
Select ('%' + @SearchString + …
Run Code Online (Sandbox Code Playgroud)

t-sql delphi dbexpress

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

为什么在某些风格的外观工作中没有有限的重复?

我想从dd/mm/yy格式的日期解析中间的2位数字,但也允许日期和月份的单个数字.

这就是我想出的:

(?<=^[\d]{1,2}\/)[\d]{1,2}
Run Code Online (Sandbox Code Playgroud)

我想要一个带有1或2位数字[\d]{1,2}的1位或2位数字,并^[\d]{1,2}\/在它前面斜线.

这并不对许多组合工作,我已经测试10/10/10,11/12/13等...

但令我惊讶的是(?<=^\d\d\/)[\d]{1,2}工作.

[\d]{1,2}如果\d\d这样做也应该匹配,或者我错了?

c# python java regex lookbehind

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

SQL Server - 如何在两个可能的SELECT语句之间切换

我想在我的mssql存储过程中使用一个参数来在小的和详细的结果之间切换(出于可维护性,性能和网络负载的原因).

如果参数设置为1,我将获得所有列,否则只有一个或两个最重要的列.它的工作方式非常有限:

ALTER PROCEDURE [dbo].[GetAllUsers]
 @detail BIT
AS
 IF @detail = 1 SELECT UserName, Title, UserID FROM Users
 ELSE SELECT Username FROM Users
Run Code Online (Sandbox Code Playgroud)

但我想使用合并的WHEN子句.以下是我尝试过的,但这不起作用.

ALTER PROCEDURE [dbo].[GetAllUsers]
 @detail BIT
AS
 CASE @detail
    WHEN 1 THEN SELECT UserName, Title, UserID
    ELSE SELECT UserName END
    FROM Users
    WHERE UserID < 5
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这样的事情?

sql select stored-procedures case-statement

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