自从我使用COM/OLE以来已经过了10年,我忘记了90%.现在我们需要创建一个COM对象来访问PHP/Python中的一些数据(这是特定的事情,php ODBC不能访问DataBase的输出参数 - 比如存储过程输出),而我的想法是我实现了最小化一个方法的对象,PHP/Python可以调用它来获取输出...
procedure ExecSQL(Config, IP, Port, DBName, SQL, IDFieldName : variant) : output
output is [IDValue, ErrorMsg, HResult]
Run Code Online (Sandbox Code Playgroud)
请帮我一个很小的例子,如何启动它?我只需要这个,但我对调色板中的许多ActiveX/COM感到困惑.我需要用什么来制作一个简单的COM DLL,以及如何用这个DLL注册我的COM对象?
谢谢:dd
我收到了一个错误,我不知道为什么会得到它...
所以:我有一个基于sAlphaButton的新组件.这有ImageList属性,我的组件用我自己的标题/图像扩展这个按钮,翻译成匈牙利语.
我使用LoadRes来获取预定义的图像.
看到这个:
procedure TScrollPNGButton.LoadAsImageListFromRes(ResNames : TStrings; IL : TsAlphaImageList);
var
s : string;
i : integer;
begin
IL.CLear;
for i := 0 to ResNames.Count - 1 do begin
s := ResNames[i];
AddImageFromRes(hInstance, IL, s, ifPNG);
end;
end;
procedure TScrollPNGButton.LoadResToImageList;
var
sl : TStringList;
begin
sl := TStringList.Create;
try
sl.Text :=
Trim(
'scrollpngbutton_ok'#13 +
'scrollpngbutton_cancel'#13 +
'scrollpngbutton_close'#13 +
'scrollpngbutton_yes'#13 +
'scrollpngbutton_no'#13 +
'scrollpngbutton_refresh'#13 +
'scrollpngbutton_print'#13 +
'scrollpngbutton_email'#13 +
'scrollpngbutton_add'#13 +
'scrollpngbutton_delete'#13 +
'scrollpngbutton_edit'#13 +
''
);
LoadAsImageListFromRes(sl, FImgs);
finally …Run Code Online (Sandbox Code Playgroud) 我创建了一个网页,我想访问一个html页面的R/W的javascript变量.
...
<script>
var _ANYINT = 0;
var _ANYOBJ = 0;
</script>
...
Run Code Online (Sandbox Code Playgroud)
我怎样才能读取变量?
function ReadInt(varName) : integer
Result := webbrowser.document.all.?????????? var Name ?????
end;
r := ReadInt('_ANYINT');
Run Code Online (Sandbox Code Playgroud)
以及如何写入?
谢谢:dd
IDE:Delphi 6 Professional.
我们有大项目.
我无法使用项目组来构建它们,因为我在执行此操作时遇到了OM错误和奇怪的文件错误.
我的想法是我将使用DCC32.exe之前我与命令行参数(dcc32.cfg)打架,但我认为我解决了它...
今天我尝试用它来编译项目,但是在第一个项目中我遇到了错误.
chdir c:\ d\anyproject dcc32 -b any.dpr
错误报告我没有找到一个单位.我试图在Delphi中编译,但它很成功.
所以我检查了问题.为什么以前的项目建筑成功,为什么这不是......?
然后我意识到这个dpr正在使用对子目录的引用,但不是所有添加到项目中的文件,其中更多是通过项目的"搜索路径"链接的.
但如果这是真的,那么这意味着DCC32没有使用项目的DOF/CFG文件!
所以问题是Delphi合并了所有内容以提供结果.它合并了全局搜索路径,项目的编译器指令,搜索路径,所有内容,以及使用项目的条件指令.
如果我理解得很好,DCC32不使用,只有dcc32.cfg,我必须合并所有的编译,这是一个不可能的工作,因为我需要编写一个解析器,解释项目的参数,并合并用全局变量.
或者我误解了一些问题,问题是由我错过的其他事情引起的?
我在等你的建议!
感谢所有想法,链接,信息等.
我有自己的带加密功能的D6 pas库.今天我尝试在XE3下使用它,并且由于unicode我在其中发现了许多错误.我试图移植到AnsiString,但是我在chr(nnn)上失败了,这在Delphi6下是8位限制.
我试图解释这个问题:
Str := chr(hchar);
AStr := Str;
Run Code Online (Sandbox Code Playgroud)
Str - string; AStr - ansistring.
当hchar为216(diamater)时,AStr变为"O",Ascii 79是什么......此时我失去了原始值.
Ansi Chr有什么功能吗?例如:"AChr(xxxx)"
或者我需要更改我的代码以不在内部部分使用字符串,只有字节,然后将这些字节转换为AnsiString?
感谢您的任何建议,帮助,信息!
DD
我想用这段代码画一个对角十字形到Canvas:
InFlateRect(r, -1, -1);
Canvas.Brush.Color := clYellow;
Canvas.Brush.Style := bsFDiagonal;
Canvas.Pen.Color := clRed;
//Pen.Style := psClear;
Canvas.Rectangle(r);
Run Code Online (Sandbox Code Playgroud)
但结果是一个黑盒子.
如果我删除了样式更改,我得到了一个正常的黄色区域.
为什么这个代码的矩形是黑色的?
谢谢你的每一个建议
很抱歉找不到相关信息,我将其扩展:此过程使用TMetaFileCanvas进行绘制.在普通表格上,我可以绘制任何画笔样式,如TShape ......
西雅图德尔斐(Delphi Seattle):
我想使用以下规则(如DateTimeToStr)在cxGridDBTableView(Devexpress,cxGrid)中格式化日期时间字段:
我记得formatdatetime HH:NN:SS显示时间部分“每次”。
您知道模拟DateTimeToStr的选项吗?我想在存储库中使用它。
谢谢!
我必须在我们的应用程序中创建一个嵌入式 HTTP 服务器。这个必须是为进程间通信创建的,因为对方只能调用WebService。
我们不需要一次处理更多请求,但我必须使用来自主线程的库和数据库连接。
Delphi版本是Seattle,Indy版本是10(内部)。
据我所知,IdHTTPServer 使用线程进行连接 - 和以前一样。但是新的事件处理程序不直接传递 Thread - 所以我不能像 N 年前那样调用 TThread.Synchronize。而且我没有找到任何获取线程的方法。
我在某处读到 TIdSync 或 TIdNotify 类可以帮助我。我找不到任何完整的例子来了解如何。
看到这个简单的代码。在主线程中完成我的工作就足够了吗?
procedure TForm5.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo);
begin
FURI := ARequestInfo.URI; // Store the URI for main thread access
FResult := '';
TIdSync.SynchronizeMethod(Self.ProcessIt); // Call sync to process in VCL thread
AResponseInfo.ContentText := FResult; // This variable contains the result
end;
Run Code Online (Sandbox Code Playgroud)
还是我做错了什么?
感谢您的帮助!
日
我尝试了许多版本的 MAPISend,但每次都在一处出错。MAPILogon 返回错误代码 1。
dwRet := MapiLogon(Handle,
nil,
nil,
MAPI_DIALOG or MAPI_NEW_SESSION,
0, @MAPI_Session);
Run Code Online (Sandbox Code Playgroud)
我尝试使用“MAPISend 组件”,这段代码:
http://prog.hu/tudastar/60044-6/Delphi-Email+csatolt+file+thunderbird.html
和另外 2 个。
有趣的是,Acrobat Reader 可以使用具有附加到电子邮件功能的 MAPI,并且“发送”“邮件中”上下文菜单也可以工作。
我不明白为什么它不起作用,在我的机器(Win7)中它工作正常。
然后我失败的机器有WinXP操作系统,他们使用Thunderbird。
我可以做什么才能成功登录 MAPI?
谢谢:dd
我们有Win7/x64和Delphi6.许多事情都像WinXP一样,但我发现了一个非常令人不安的现象.
我在构建中多次放入源代码,并尝试使用此功能.然后Delphi开始将所有表单放到前台.当它完成构建时,我看到很多形式,我需要将它们关闭以返回源代码.
更令人不安的是,有时在构建或加载项目,或???? Delphi也开始将表单推送到前台,但它在这个操作上被绞死了.每个表格都被触摸并镶嵌到顶部窗口,它们也可以在任务托盘中看到.当全部可见时,Delphi将它们全部隐藏起来.并从头开始.
我需要关闭流程.
我尝试在Delphi上设置兼容性WinXp,但是当我尝试用ShellExec或DblClick打开一个dpr时,我得到系统警告"进程要修改系统",当我点击允许(是)时, dpr没有加载...... :-(
你有同样的问题吗?
怎么解决?
谢谢:dd