在我的MFC(Feature Pack)应用程序中,可以动态创建停靠窗格以显示图表/表格等.
但是,我不想让用户打开相同的东西两次.
我创建一个像这样的窗格:
// Create CMyDockablePane pPane
pPane->Create(...);
pPane->EnableDocking(CBRS_ALIGN_ANY);
// Create CRect rcPane
pPane->FloatPane(rcPane);
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常.
这就是我尝试检查窗格是否已存在的方法.窗格由其类型(类)和参数标识.
BOOL CanOpenPane(const type_info & paneType, const CMyParameter & parameter) const
{
CMainFrame* pFrm = GetMainFrame();
CDockingManager* pDockMan = pFrm->GetDockingManager();
// Check if there already is a pane of the same type which also has the same parameter.
bool canOpen = true;
CObList panes;
pDockMan->GetPaneList(panes);
POSITION pos = panes.GetHeadPosition();
while (pos)
{
CMyDockablePane* pPane = dynamic_cast<CMyDockablePane*>(panes.GetNext(pos));
if (NULL == pPane) { continue; }
if …
Run Code Online (Sandbox Code Playgroud) 请看下面的SQL代码.
DECLARE @RET TABLE(OID BIGINT NOT NULL,rowid bigint identity);
DECLARE @ResultTbl TABLE(OID BIGINT,sOID BIGINT,partkey bigint);
DECLARE @PATOID as VARCHAR(4000)
SET @PATIENTOID= '95,96,192,253,110,201,201,83,87,88,208,208,208,208'
INSERT INTO @RET SELECT OID FROM dbo.FGETBIGINTLIST(@PATOID )
DECLARE @NoOfRows bigint
DECLARE @InOID bigint
select @NoOfRows = max(rowid) from @RET
while (@NoOfRows >=1)
begin
select @InOID = oid from @RET where rowid=@NoOfRows
insert into @ResultTbl
select * from fresolve_11(@InOID)
set @NoOfRows = @NoOfRows - 1
end
SELECT * FROM @RET
SELECT * FROM @ResultTbl
Run Code Online (Sandbox Code Playgroud)
函数FGETBIGINTLIST接受逗号分隔值作为参数,并以表格格式返回值..就像
OID …
Run Code Online (Sandbox Code Playgroud) 我需要使文件真正只读 - 保持原样.没有删除,没有任何东西.
(设置'ReadOnly'属性不是一个选项)
我现在看到一些方法:
使用程序保持文件打开.缺点:可以杀死进程然后文件关闭.
使用程序设置安全属性.缺点:可以删除文件.此外,可以更改属性.
有任何想法吗?此外,将会感谢示例代码(最好在Delphi中).
更新:感谢目前为止的所有答案.他们真的很棒.我意识到我不是很清楚.我们要解决的问题是:
有一些类似.txt的文件包含敏感信息.我们的客户希望确保这些文件不会在其计算机上"幕后"更改.我们应该提一下,他们的PC很容易被恶意软件感染,专门用来做这件事.我们的客户应该能够使用记事本,写字板等打开这些文件,但他们接受这些文件是只读的.如果我们的任何客户采取决定性的行动,如进入"安全模式"等,并从他们的责任篡改文件.我们应该防范任何恶意软件,包括零日攻击.(因此,经典的防病毒解决方案并不合适).
你能给出一些想法吗?
PS:我最诚挚的道歉,从一开始就不那么清楚.
我的网页上有一个textarea字段.我接受用户输入,我想解析用户输入"(通过COMMAS,SPACES或者每行一个)"这一行.
基本上我想要获取由逗号,空格或每行一个分隔的单词.对于我可以使用的RegEx可以使用如下:
preg_split('/[,; " "]+/', $_tags);
Run Code Online (Sandbox Code Playgroud)
我已经使用regEx来分隔用户输入的标签.什么是regEx从字符串中获取单词"(通过COMMAS,SPACES或者每行一个)"
谢谢
我对ASP.NET MVC中的体系结构感到好奇.我应该如何从数据库中获取数据?ASP.NET视频和教程显示所有数据都应该在模型中处理,所以我认为这是要走的路.我开始从事新工作,他们更喜欢在控制器中获取数据.
什么是最正确的方法?我知道这可能导致很长的答案,所以如果你知道任何网站,文章,博客或者什么和主题,欢迎你发帖:)
提前致谢.
两者之间有什么区别吗?
function MyFunc() {
// code...
}
Run Code Online (Sandbox Code Playgroud)
和
var MyFunc = function() {
// code...
};
Run Code Online (Sandbox Code Playgroud)
在JavaScript?
用户关闭窗口时是否可以调用一些JS?
我搜索了JS事件处理程序,发现只有onunload,每当用户离开页面时调用脚本,不一定关闭窗口.
预期用途是调用一个AJAX脚本,该脚本取消设置与弹出窗口相关的几个会话.可能有也可能没有更好的方法来实现这一目标?
我找到了这个DevShed线程,其中声明这可以通过JS实现,但它并没有解释如何调用脚本.
不幸的是,大多数谷歌搜索这个解决方案会带来window.close,这实际上与我需要的相反!
如何在Fortran中编写一个函数,它将输入和输出都作为参数?例如:
fun(integer input,integer output)
Run Code Online (Sandbox Code Playgroud)
我想利用输出值.我尝试过这样的东西,但输出变量没有保持值.
具体来说,我从Fortran调用一个C函数,它将输入和输出作为参数.我能够成功传递输入值,但输出变量没有获取值.
在努力保持正确性的同时,我经常发现自己正在编写这样的代码
class Bar;
class Foo {
public:
const Bar* bar() const { /* code that gets a Bar somewhere */ }
Bar* bar() {
return const_cast< Bar* >(
static_cast< const Foo* >(this)->bar());
}
};
Run Code Online (Sandbox Code Playgroud)
对于很多方法,比如bar()
.编写这些非const方法,手动调用常量方法是乏味的; 此外,我觉得我在重复自己 - 这让我心疼.
我该怎么做才能减轻这个任务?(不允许使用宏和代码生成器.)
编辑:除了litb的解决方案,我也喜欢我自己的解决方案.:)
c++ ×2
javascript ×2
php ×2
architecture ×1
asp.net-mvc ×1
bash ×1
delphi ×1
docking ×1
dry ×1
fortran ×1
pane ×1
regex ×1
security ×1
session ×1
shell ×1
sql ×1
sql-server ×1
winapi ×1
windows ×1