因为用户登陆的时候,在主程序里取得当前用户的ID值,然后传到DLL子窗子中,DLL子窗中根据ID值判断权限,没分了,请见谅!(6分)

  • 主题发起人 主题发起人 WenSoft
  • 开始时间 开始时间
W

WenSoft

Unregistered / Unconfirmed
GUEST, unregistred user!
因为用户登陆的时候,在主程序里取得当前用户的ID值,然后传到DLL子窗子中,DLL子窗中根据ID值判断权限的 !

希望能有个给我做一个小例子,

1、在主程序里自己定义一个变量:
private
USERID:string;//////////要传递的参数
{ Private declarations }
public
.
.
.
procedure TForm1.FormShow(Sender: TObject);
begin
// 在此调和DLL窗体,并将 USERID 传递给DLL中
end;


2、在DLL窗体中,(在这个地方我就不会了,请各位帮我解决)

在窗体Form_Zi中,上面有一个Label控件,当显示时,
procedure TForm_Zi.FormShow(Sender: TObject);
begin
Label1.Caption:=从主程序里面传过来的USERID的值
end;

3、DLL子窗体如何响应主程序里的点击事件?
如主程序里面有一个按钮,点一下就弹出“关于”窗体,在DLL窗体上也有这么一个按钮,点一下就弹出“关于”窗体!
 
不知所云!不是传ID过DLL,在DLL返回一个Boolean,还要响应什么点击?
 
用参数传!这么简单的问题也要问?难道你的DLL不输出函数?输出的函数难道你不愿意多加一个参数来传递主程序希望dll了解的值?楼主还是先学好基础再实际动手把。
 
那么你们是如何动态调用DLL窗体的呢?我看到网上有好多,但是就是不知道应该在什么地方加参数呀
 
设一个返回值,根据返回值再处理响应哪个事件
 
mainprg:

procedure TForm1.FormShow(Sender: TObject);
var h:Thandle;
fun:(app:Thandle;pUid:pchar):integer;stdcall;
rt:integer;
begin
// 在此调和DLL窗体,并将 USERID 传递给DLL中
h := loadlibrary('youdllName.dll');
if h>0 then
begin
fun := getprocaddress(h, 'DLL_ziform');
rt := fun(application.handle,USERID);
if rt=0 then
//right
else
//error
;
end;
freelibrary(h)
end;

dllprg:

function DLL_ziform(app:Thandle,pUid:pchar):integer;stdcall;
begin
with TForm1.create(app) do
begin
//创建显示与处理 返回相应值
free;
end;
end;
 
要是有会的请贴一下代码参考一下!谢谢了!
 
函数名打错了,不过你应该看得明白
 
谢谢了,我试一下
 
我的QQ:372199229
 
http://www.delphibbs.com/keylife/images/u166846/boy2002cn.DLL做登录窗体.zip
 
多人接受答案了。
 
在DLL中定义编写相关函数,在主程序中引用DLL中的函数,将值赋此函数调用
 
后退
顶部