我的Delphi程序在很大程度上依赖于Outlook自动化.2007-SP2之前的Outlook版本由于编写错误的插件和编写错误的Outlook代码而倾向于卡在内存中.
如果Outlook卡住,调用CreateOleObject('Outlook.Application')或GetActiveObject ...不会返回并保持我的应用程序挂起,直到任务管理器中的Outlook.exe关闭.
我想到了一个解决方案,但我不确定这是否是好的做法.
我在一个单独的线程中使用CreateOleObject启动Outlook,在我的主线程中等待10秒,如果Outlook挂起(CreateOleObject没有返回),则让用户从我的程序中终止Outlook.exe进程.
但是因为我不想强迫用户杀死Outlook.exe进程,作为替代方案,我还需要一种方法来杀死程序中的新线程,该线程现在一直挂起.
我最近购买了Metrologic条形码扫描仪(USB端口),因为每个人都已经知道它可以作为开箱即用的键盘模拟器.
如何配置扫描仪和我的应用程序,以便我的应用程序可以直接处理条形码数据?也就是说,我不希望用户专注于"文本字段",然后在KeyPress事件触发时处理数据.
请参阅以下代码,请清除我的疑虑.
由于ABC是一个模板,为什么当我们在test.cpp中放置ABC类成员函数的定义时它不显示错误?
如果我在test.h和remve 2中放入test.cpp代码,那么它可以正常工作.为什么?
.
// test.h
template <typename T>
class ABC {
public:
void foo( T& );
void bar( T& );
};
// test.cpp
template <typename T>
void ABC<T>::foo( T& ) {} // definition
template <typename T>
void ABC<T>::bar( T& ) {} // definition
template void ABC<char>::foo( char & ); // 1
template class ABC<char>; // 2
// main.cpp
#include "test.h"
int main() {
ABC<char> a;
a.foo(); // valid with 1 or 2
a.bar(); // link error if only …Run Code Online (Sandbox Code Playgroud) 我已经用Delphi编程了很长时间,我专注于桌面应用程序.我决定进入网页编程世界.我怎样才能拥有像Delphi这样的界面,但是有一个用于Web编程的脚本环境?有没有任何版本的Delphi我可以制作网页?
IntraWeb创建的应用程序可以作为整个站点上传吗?
我注意到TPageControl中TTabSheet的Left属性始终为4.因此,TPageControl边框与TTabSheet中的控件之间始终至少有4像素的边距.我想将此边距设置为0(至少对于左边框),但我不能将TTabSheet.Left设置为0; 它总是自动恢复为4像素.
我试图在OnResize for TTabSheet和TTabControl中设置Left属性,但它没有帮助.
如何将此边距减少到0(至少对于左边框)?我正在使用C++ Builder 6.
我被推荐使用第二个,try-except变体,但我也想知道其他人的想法:下面两个(如果有的话)哪个程序更节省时间?
procedure LoadImage(img: TImage; filename: string);
begin
if fileexists(filename) then
img.Picture.Loadfromfile(filename)
else
img.Picture.Loadfromfile('default.jpg')
end;
Run Code Online (Sandbox Code Playgroud)
要么
procedure LoadImage(img: TImage; filename: string);
begin
try
img.Picture.Loadfromfile(filename)
except
img.Picture.Loadfromfile('default.jpg')
end
end;
Run Code Online (Sandbox Code Playgroud) 是的,这也是这个问题:
如何在启用主题的应用程序上使用Delphi7-> Delphi2007更改TCheckBox(或任何已处理控件)的字体颜色?
在网上和本网站上看了很多,我找到了4种答案:
好的,但我仍然不满意.
为用户提供有关他在表单上拥有的财产/数据状态的彩色反馈,对我来说似乎是合法的.
然后我刚刚安装了MSVC#2008 Express版本,而且出乎意料的是,他们可以改变字体的颜色(复选框的属性ForeColor)那么什么?
它似乎并不是"微软那样设计的".那么现在问题又来了:
如何在启用主题的应用程序上使用Delphi 7到Delphi 2007更改TCheckBox(或任何已处理控件)的字体颜色?
#!/usr/bin/perl
use strict;
use warnings;
my %hash;
foreach ( 1 .. 10 ) {
$hash{$_} = $_;
}
foreach ( sort(keys %hash) ) {
print $_ . ": " . "$hash{$_}" . "\n" ;
}
Run Code Online (Sandbox Code Playgroud)
当我执行上面的代码时,结果如下:
1: 1 10: 10 2: 2 3: 3 4: 4 5: 5 6: 6 7: 7 8: 8 9: 9
我希望"10:10"成为最后一个印刷品.我只需要有人解释为什么Perl会在这种情况下给我一个惊喜.
我有三个功能,funt1(),funt2(),和funt3().
int funt1()
{
cout<<"funt1 called"<<endl;
return 10;
}
int funt2()
{
cout<<"funt2 called"<<endl;
return 20;
}
void funt3(int x=funt1(), int y=funt2())
{
cout << x << y << endl;
}
Run Code Online (Sandbox Code Playgroud)
我的main功能:
int main()
{
funt3();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我funt3()用我的main()方法调用时,为什么funt1()先调用,然后funt2()呢?
在其他语言(如C++)中,有些运算符可以执行plus-equals或or-equals类型的操作来添加其他样式/标志.Delphi中有相同的东西吗?
现在我有一些代码,如:
label1.Font.Style := label1.Font.Style + [fsBold];
label2.Font.Style := label2.Font.Style + [fsBold];
Run Code Online (Sandbox Code Playgroud)
但是,如果可能的话,我希望能够简化一些简化,而不会在赋值运算符的两边复制标签名称,这可能是:label1.Font.Style += [fsBold];或者label1.Font.Style := self + [fsBold];
可以这样做吗?还是没那么多?
delphi ×7
c++ ×2
automation ×1
barcode ×1
c# ×1
c++builder ×1
c++builder-6 ×1
delphi-7 ×1
if-statement ×1
java ×1
operators ×1
outlook ×1
performance ×1
perl ×1
set ×1
sorting ×1
templates ×1
themes ×1
try-except ×1
vcl ×1
windows ×1