不知道是不是和Win32的内存管理有关?因为在Win32下每个进程都有自己的内存映象,
而TDatasource实际是一个指向地址的指针变量,是不是要用共享内存?
而TDatasource实际是一个指向地址的指针变量,是不是要用共享内存?
解决方案 »
- 如何模拟点击WebBrowser 中的图片链接?
- 请问如何将我下述的treeview的记录显示到edit文本筐里?
- 如何判断stringGrid的cell中内容被用户更改了
- 紧急求助(DEPHI数据库问题)
- 关于计算的问题
- 我在几个PANEL里面有好多图片可以共有?我想使用IMAGELIST,可是IMAGE控件没有IMAGELIST属性,怎么办?
- OnDragDrop事件或是OnDragOver事件,到底是什么意思?50分奉上
- 如何把一个触发器的内容显示在Memo里?
- 求救——将字符串中的指定字符替换为其他字符的函数是什么?
- 试看VB7如何抄袭Delphi(2)
- 如何只在报表中显示一个记录?
- 想问大家一个数据显示的小问题!
只能用BPL来解决。
用Variant打包数据发送.
能具体点吗?
对于数据库程序来说,这一点点内存是用不到考虑的, 其实你用DLL的实现方式,那么在这一个进程空间里,Application对象有至少有两份,
Session对象也是,对于BDE来说,所有的资源消耗基本上也增加一倍,其他的所有Delphi
程序的全局变量都是如此,而且,在不同的代码段,这些代码访问到的都还是处于不同模组
里的全局变量,你自己去同步这些? 不信可以做个测试:
在DLL里,设定Application.Title = 'Application variable in DLL';
在到你的程序里去读Application.Title,看看是什么, 用BPL来完成这些,Delphi会为你保证所有的这些全局变量都只有一份,用到的时候也
自然不用担心访问的到底是哪一个,就算程序大了些,内存用的多了些(这还不一定呢),
对于现在的计算机,在乎这一点点吗,再说,数据库程序,本身就要很多资源(包括内存),
省下这一点是微不足道的。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TMyForm = class(TForm)
Memo1: TMemo;
private
{ Private declarations }
public
{ Public declarations }
end;var
MyForm: TMyForm;
implementation{$R *.DFM}initialization
RegisterClass(TMyForm);
end.
************** 主程序中 ******************
var
h: HModule;
c: TPersistentClass;
f: TCustomForm;
begin
h := Loadpackage('package1.bpl'); c := GetClass(Edit1.Text);
if c <> nil then
begin
f := TCustomForm(TComponentClass(c).create(application));
f.ShowModal;
end
else
Beep;
end;
Project --> Options --> Packages --> Build with run-time packages 要打勾。