dxTabbedMDIManager + DLL窗体 出错问题 [问题点数:40分,结帖人li_sj]

Bbs2
本版专家分:497
结帖率 98.92%
Bbs3
本版专家分:531
Bbs3
本版专家分:531
Bbs1
本版专家分:0
Bbs4
本版专家分:1491
Bbs1
本版专家分:0
Bbs1
本版专家分:10
Dll窗体继承的问题
请教下DLL能否实现:一个DLL中的<em>窗体</em>继承另一个DLL中的<em>窗体</em>?rn应该怎么实现呢?rn像BPL那样做个BaseForm的基类包,然后其它包引用这个包,从而调用里面继承<em>窗体</em>?
dll窗体显示的问题
主<em>窗体</em>上有一个PANEL,DLL<em>窗体</em>上也有一个PANEL,想把DLL<em>窗体</em>PANEL的内容显示在主<em>窗体</em>的PANEL上,试了很久都有<em>问题</em>,谁能给个例子。rn
关于dll窗体问题
我作了一个包含<em>窗体</em>的<em>dll</em>。一切都正常但是再任务栏出现两个应用程序,不知道如何解决rn procedure ShowMDIChild(app:TApplication);stdcall;rnvarrn p:^LongInt;rnbeginrn p:=@(Application.MainForm);rn p^:=LongInt(app.MainForm);rn with TForm1.Create(application) do beginrn rn Show;rn end;rnend;rn这是显示部分的代码
DLL中的窗体问题
我用CB做一个程序,主程序打开一个线程(用API,就是CreateThread),rn然后线程里加载<em>dll</em>。一开始的写法如此:rnrn[code=C/C++]BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)rnrn FrmMain=new TFrmMain(NULL);rn FrmMain->ShowModal();rn[/code]rnrn但是发现<em>窗体</em>可以创建,但是不稳定。有时报错,有时新建的<em>窗体</em>忽然变到全屏,有时新建<em>窗体</em>大小不对等等。rnrn据说在Delphi中需要修改Application对象等等,比如这段代码:rn[code=Delphi(Pascal)]rn DllApplication:=Application;rn DLLProc := @DLLUnloadProc;rn[/code]rnrn但是在CB中,却深深地迷糊了。最后没办法,先放在一边。rn由于程序较为特殊,需要在主程序的某个菜单中插入位于Dll中的某个菜单。rn<em>dll</em>菜单中恰好需要一个“<em>窗体</em>隐藏/显示”功能,rn于是去掉了FrmMain->ShowModal();,转而在Dll菜单中写到(已完成<em>dll</em>菜单与主程序的连接):rnrn[code=C/C++]void __fastcall TFrmMain::N1Click(TObject *Sender)rnrn Visible=!Visible;rn N1->Checked=!N1->Checked;rn[/code]rnrn然而运行时意外报错,rn又将显示<em>窗体</em>的代码改为FrmMain->ShowModal();,然而又报错。。。rnrn总结下来,有这么几个<em>问题</em>:rn1.用API创建的线程是否能支撑一个VCL<em>窗体</em>rn2.Application对象在Dll中是什么,起什么作用,还是主程序的Application在干活rn3.是否有CB的Dll<em>窗体</em>的Demo,请大家为我提供一个rn4.对于PopupMenu,这样的处理方式是否正确,还是必须将PopupMenu所在内存共享rn5.<em>窗体</em>的Visible,Show函数,ShowModal函数的区别rnrnPS:我的IDE是CB 2009,动态调用DLL
delphi主窗体控制子窗体权限
平常不好对每个业务<em>窗体</em>进行如增删改打印等权限控制 在此建一主<em>窗体</em>,主<em>窗体</em>中放增/删/改等按纽,这些按纽调用基类的增/删/改过程,一基类<em>窗体</em>,所有业务<em>窗体</em>派生于基类<em>窗体</em>,增加一组权限变量,这是全局变量,
delphi判断子窗口是否打开
在一个MDI<em>窗体</em>中限制打开多个子<em>窗体</em>,采用遍历的方式判断子<em>窗体</em>是否已经存在.
DEV dxBar使用
dxBar工具样式控件横向放置时,用默认的属性可以正确显示。 1、纵向放置时,文字在图标左侧,并且字体头向右,很不习惯。 2、解决方法:设置RotateWhenVertical=False;这样横向放置或者纵向放置都是正确的。 3、设置分隔线。 ‘查询设置’按键前增加的分隔线,实现按功能分组的效果,让按钮显示不再单调。右键点击需要增加分隔的按钮,然后选中‘开始分组’
使用XtraTabbedMdiManager后如何给Mdi窗体添加背景图片
使用XtraTabbedMdiManager控件管理Mdi里面的<em>窗体</em>后,发现背景图片不能显示,重写DevExpress.XtraTabbedMdi.XtraTabbedMdiManager的DrawNC方法就行了。using System;using System.Collections.Generic;using System.Text;using System.Drawing;using Sy...
求Delphi7如何实现标签页窗体
本人想实现一个 标签页方式 展示打开的<em>窗体</em>。 该功能如下图效果所示: delphi控件比较多,如果有什么控件可以实现该功能的,请大家指点下,谢谢了
窗体DLL的问题
代码如下:rn==========================================rnunit Unit5;rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, StdCtrls;rntypern TForm1 = class(TForm)rn Edit1: TEdit;rn privatern Private declarations rn publicrn Public declarations rn end;rn procedure DoTest(S:String);export;rnvarrn Form1: TForm1;rnrnimplementationrnrnprocedure DoTest(S:String);rnbeginrn with TForm1.Create(Application) do tryrn ShowMessage(S);rn ShowMessage(Form1.Edit1.Text);rn finallyrn Form1.Free;rn end;rnend;rnrnend.rn==========================================rn提示Resource TForm1 not found.rnrn请问如何解决。
DLL窗体封装问题
最近做了一个<em>dll</em>,里面有一个Form,调用<em>dll</em>的form的时候,如果主程序中含有XPMan单元,<em>dll</em>的Form调用正常,并且关闭这个<em>dll</em>的Form也是正常的。可是只要一退出主程序,就会出现错误:rn“0x5adc1531”指令引用的“0x00000014”内存。该内存不能为“read”。和“Runtime error 216 at 5ADC1531”。rnrn去掉XPMan单元后,则一切正常了。rn我用的是Delphi7。这样只能去掉xp风格,有其它解决的方法吗? rn
Dll窗体问题
我用主程序加载Dll中的<em>窗体</em>,并将Dll<em>窗体</em>全屏显示在主窗口的一个panel上面,设置align:=alclient,显示出来的界面不对,帮忙看一下应该怎么设置 谢谢 rnrnrnDll函数 rn procedure ShowMainForm(hnd: THandle; AParent: TWinControl);rn beginrn Application.Handle := hnd;rn frmMain := TFrmSfcMain.Create(Application);rn frmMain.ParentWindow := AParent.Handle;rn frmMain.Align := alClient;rn frmMain.Show;rn end;rn rn 主程序调用rn ShowMainForm(Application.handle, panel1)
Dll窗体创建的问题
我的程序使用Dll文件做插件。原理是将Dll中的<em>窗体</em>载入到主程序的Panel中。rn[code=Delphi(Pascal)]rn//此函数定义在Dll中,由主程序调用rn//返回创建的窗口句柄供主程序处理rnfunction LoadPlugin(<em>dll</em>Parent: THandle): THandle;rnbeginrn Application.Handle := <em>dll</em>Parent;rn if Form1 =nil thenrn Form1 := TForm1.Create(Application);rnrn Form1.ParentWindow := <em>dll</em>Parent;rn Form1.Show;rn Result := Form1.Handle;rnend;rn[/code]rn上面的代码中,如果在Dll<em>窗体</em>的FormCreate事件中出现"Form1."就会报错,如果去掉则正常。请问这是为什么?谢谢大家!
dll窗体重用问题
我将一个<em>窗体</em>做到了<em>dll</em>文件里,想通过某个按钮点击后调用该<em>dll</em>中的<em>窗体</em>,可是每点一次就创建一个,怎样才能只创建一个<em>窗体</em>
MDITab 标签页显示MDI窗体
可以实现以标签选项卡的形式来显示MDI<em>窗体</em>的delphi控件。
DEV实现日期时间效果
DEV实现日期时间效果   要设定控件属性如下
Devexpress VCL Build v2012 vol 12.2.2 发布
Release Notes Breaking Changes To learn about breaking changes in this version, please refer to the following page: Breaking Changes - DevExpress VCL 12.2.2 Known Issues To learn about known issu...
winform程序窗体MID相关设置
在winform程序设计中经常会遇到一些设置性<em>问题</em>,在此记录总结一些经常遇到的小<em>问题</em>。 1.MDI多<em>窗体</em>程序中,子窗口点击最大化,会出现看到子窗口的icon显示在菜单中,而实际上正常状态下子窗口的showIcon属性是false的。但最大化之后就是出显示在父窗口的菜单栏上,默认icon看起来不太好看。 这情况怎么样出掉icon.就是子窗口最大化不是显示icon。 做法:  在父窗
关于Dev版本的问题
我本地安装了2个版本的dev控件,开发的时候,总是我本地迁出了licenses.licx。比较了一下,如图 我的本地的版本和服务器的版本不一致,比服务器版本高,导致的这个<em>问题</em>。我又不知道如何清除本地的
DLL 中的窗体问题
我在DLL的<em>窗体</em>中 自动生成很多插件,可是有些出了<em>窗体</em>外就无法显示了,他又没有自动出来拖拉条 有人知道原因么 ?
DLL动态窗体问题
系统分模块设计DLL...rn[code=VB]rn '这里是动态弹出工程里的<em>窗体</em>rn On Error GoTo Err_CommandBars_Executern Dim frm As Formrn Set frm = Forms.Add("这里是动态名字,比如frmLogin")rn frm.Left = (MDIFrmMain.ScaleWidth - frm.Width) / 2rn frm.Top = (MDIFrmMain.ScaleHeight - frm.Height) / 2rn frm.Showrn Set frm = NothingrnExit_CommandBars_Execute:rn Exit SubrnErr_CommandBars_Execute: rn Exit Subrn Resume Exit_CommandBars_Executern[/code]rnrn[code=VB]rn'---DLL CoffeeMonitorrnOption ExplicitrnPublic Enum cfeModalityrn cfeModal = vbModalrn cfeModeless = vbModelessrnEnd EnumrnrnPublic Sub ShowForm(Optional Modality As _rn cfeModality = cfeModal)rn Dim frm As New TestFormrn If Modality = cfeModeless Thenrn frm.Caption = "TestForm-Modeless"rn Elsern frm.Caption = "TestForm-Modeless"rn End Ifrn frm.Show ModalityrnEnd Subrnrn'--<em>窗体</em>rnOption ExplicitrnPrivate mcmnTest As CoffeeMonitorrnrnPrivate Sub Form_Load()rn Set mcmnTest = New CoffeeMonitorrnEnd SubrnrnPrivate Sub cmdModal_Click()rn mcmnTest.ShowForm cfeModalrnEnd SubrnrnPrivate Sub cmdModeless_Click()rn mcmnTest.ShowForm cfeModelessrnEnd Subrnrn[/code]rn现在转换成DLL的该如何简便地实现?rn主EXE里有个MDIMainFrom 怎么动态打开每个DLL里的<em>窗体</em>,怎么做rn
DLL封装窗体出错,望高手指点。
做了一个用户登陆界面,想用DLL封装,编译通过,主程序调用时报错为“标记没有引用存储”,高手指点。rn以下是<em>dll</em>部分代码:rnunit Unit1;rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, StdCtrls,ADODB,IniFiles, Buttons, ExtCtrls;rnrntypern TForm1 = class(TForm)rn Label1: TLabel;rn Label2: TLabel;rn Edit1: TEdit;rn Edit2: TEdit;rn Image1: TImage;rn BitBtn1: TBitBtn;rn BitBtn2: TBitBtn;rn procedure BitBtn1Click(Sender: TObject);rn procedure BitBtn2Click(Sender: TObject);rn privatern Private declarations rn publicrn //function listmove(var l1,l2:integer):WordBool;rn end;rnvarrn Form1: TForm1;rnrnrnfunction mlogin(var l1,l2:integer):WordBool;export;rnrnimplementationrn$R *.dfmrnvarrn Adoconnection:TADOConnection;rn Adoquerymanager:TAdoquery;rnrn function mlogin(var l1,l2:integer):WordBool;rn varrn cs:string;rn //exepath:string;rn getresult:string;rn //lastbackslashpos,index,i:integer;rn beginrn getresult:='F:\test\DLL_Login<em>窗体</em>\option.ini';rn cs:='Provider=SQLOLEDB.1;Password=';rn with TIniFile.Create(getresult) dorn beginrn cs:=cs+Readstring('login','Password','')+';Persist Security Info=True;User ID=';rn cs:=cs+Readstring('login','Uesr ID','')+';Initial Catalog=';rn cs:=cs+Readstring('login','Initial Catalog','')+';Data Source=';rn cs:=cs+Readstring('login','Data Source','');rn Free;rn end;rn ADOConnection:=TADOConnection.Create(nil);rn ADOConnection.ConnectionString:=cs;rn ADOConnection.Connected:=True;rn ADOConnection.LoginPrompt :=true;rn ADOConnection.Open;rn Adoquerymanager:=TAdoquery.Create(nil);rn Adoquerymanager.Connection:=Adoconnection;rn result:=false;rn form1:=Tform1.create(application);rn tryrn if form1.showmodal=mrOK thenrn with form1 dorn beginrn l1:=1;rn l2:=2;rn result:=true;rn end;rn finallyrn form1.free;rn end;rnrnrnend;rnrnprocedure TForm1.BitBtn1Click(Sender: TObject);rnbeginrn with Adoquerymanager dorn beginrn sql.Clear;rn sql.Add('select * from usercheck where username='''+edit1.text+''' and psw='''+edit2.text+'''');rn if exists (select * from dbo.sysobjects where id = object_id(N'dbo.usercheck'))rn drop table dbo.usercheckrn GOrn create table dbo.usercheck (rn username varchar(10) not null primary key,rn psw varchar(10) not null,rn type varchar(1) not null,rn status varchar(1) null,rn tag varchar(1) null,rn )rn GO rnrn open;rn if(recordcount=0)thenrn showmessage('用户名或密码错误,请重新输入')rn elsern modalresult:=mrOK;rn end;rnend;rnrnprocedure TForm1.BitBtn2Click(Sender: TObject);rnbeginrn modalresult:=mrCancel;rnend;rnrnend.rnrn谢谢
在DLL中调用一个窗体出错
在DLL中调用一个<em>窗体</em>,怎么突然就<em>出错</em>了呢,以前好像没这种错误。奇怪。rn错误提示: 'Cannot make a visible window modal'rnrn代码:rn if frmBank = nil thenrn Application.CreateForm(TfrmBank, frmBank); //方法1rn frmBank := TfrmBank.Create(nil); //方法2rn frmBank := TfrmBank.Create(self); //方法3rn frmBank.ShowModal();rnrn方法1、2、3都<em>出错</em>。rn
dll里的窗体,ShowModal为什么出错呀?
不知道为什么
DevExpress mdi多子窗体布局问题
-
MID DlL窗体与Application.Messagebox 结合后控件失效???
MID DlL<em>窗体</em>与Application.Messagebox 结合后控件失效??? Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiAPI/html/delphi_20061114101124242.html 现在若干<em>窗体</em>,封装成DLL<em>窗体</em>(MDI子<em>窗体</em>).     现发现一个大<em>问题</em>:       如果MDI子<em>窗体</em>上有表格...
得到MID子窗口指针
   CMDIFrameWnd   *pFrame = (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;                   //   Get   the   active   MDI   child   window.               CMDIChildWnd   *pChild = (CMDIChildWnd *)pFrame->Get
DELPHI / Mdi
procedure TfrMain.LoadPictureClick(Sender: TObject); begin if ActiveMDIChild   TfrChild(ActiveMDIChild).LoadPicture; end;   uses ExtDlgs; ... procedure TfrChild.LoadPicture; var OpenPicDlg :
调用DLL关闭窗体出错
在主<em>窗体</em>中调用了DLL<em>窗体</em>,在Dll的<em>窗体</em>中放了一个adoconnection,可以正常调用,就是关闭主<em>窗体</em>时总是<em>出错</em>,弹出CPU那个<em>窗体</em>出来!rn
dll加载出错问题
加载时提示使用LoadLibrary加载<em>出错</em>,请问各位怎么解决,非常感谢!
DLL调用出错问题...
DLL是用VC写的,里面函数原型是rnDWORD _stdcall ReadPort(BYTE *PData,size_t iLen)rnrn给我的VB调用示例是rnDeclare Function ReadPort Lib“***.<em>dll</em>"(ByRef pData As Byte,ByVal iLen As Integer) As intergerrnrn我用Delphi如下调用,却<em>出错</em>,请高手看看,是不是我调用的方式不对阿rnfunction ReadPort( pData:array of byte;iLen:integer):integer;external'***.<em>dll</em>';rnrn使用的时候我是写 st:=ReadPort(ComBuf, 2);
一个dll出错问题
在vc中test.c 有一个简单的求余数的函数rnrnextern "C" __declspec(<em>dll</em>export) rnint __stdcall testfun(int a, int b)rnrn int c;rn c = a % b;rn return c;rnrnrn在vb中调用:rnPrivate Declare Function testfun Lib "test" Alias "_testfun@8" (ByVal a As Integer, ByVal b As Integer) As IntegerrnrnPrivate Sub Command1_Click()rn Dim a As Integerrn Dim b As Integerrn Dim c As Integerrn rn a = Val(Text1.Text)rn b = Val(Text2.Text)rn c = testfun(a, b)rn Label1.Caption = Str(a) & " % " & Str(b) & " = " & Str(c)rnEnd Subrnrn结果是我在两个文本框中输入2个数22和33rn输<em>出错</em>误结果为:22 % 33 =-11rnrn然后我生成project1.exe并运行rn得到的结果又是:22 % 33 = 22rn不要以为这回答案是正确的,我再输入另外2个数:123和23rn又输<em>出错</em>误结果:123 % 33 = 90rn再试了几组数据rn32 % 33 = 32rn34 % 33 = 1rn65 % 33 = 32rn66 % 33 = 33rn67 % 33 = 34rnrn请问<em>问题</em>出在哪里呢?rnrn补充一下,在VC编译时出了个link错误:rnCompiling...rntest.cpprnLinking...rnLINK : LNK4073: cannot create map for .ILK file; linking nonincrementallyrn Creating library Debug/test.lib and object Debug/test.exprnrntest.<em>dll</em> - 0 error(s), 0 warning(s)rn
DLL调用出错问题
DLL调用约定<em>出错</em>的<em>问题</em>:rn我在调用对方公司提供的DLL时,出现DLL调用约定<em>出错</em>的<em>问题</em>,而编译成exe后,却没有错,在本站主题为"DLL调用约定<em>出错</em>的<em>问题</em>(在线等候)"(http://community.csdn.net/Expert/topic/4988/4988731.xml?temp=6.075686E-02)中提到是:vba6.<em>dll</em>的bug,现在是我想用源程序调试相关的数据交换的<em>问题</em>,不知哪位高手能帮忙提供一个什么好的办法,谢谢了rn
一个DLL出错问题
我的MFC的DLL编译没有错误,但在使用类向导的时候出现以下错误,请大家看看!rnrnParsing error: Type signature mismatchrnThe function prototype for PrintList::SetReportBodyFontWeight does not match the DISP_FUNCTION macrornrn
delphi 调用动态窗体DLL 出错问题 急。。在线等
调用DLL[code=Delphi(Pascal)]rn TNoticeDLLCreate = function(App: TApplication; Scr: TScreen;rn InterfaceDate : TInterfaceDate): Boolean;stdcall; //公共信息DLLrnrnvarrn DLLHandle : THandle;rn DLLForm: TNoticeDLLCreate;rnbeginrn tryrnrn GetInterfaceDate;rn Self.Enabled := False;rn DLLHandle := LoadLibrary('NoticeDLL.<em>dll</em>');rn if DLLHandle <> 0 thenrn beginrn @DLLForm := GetProcAddress(DLLHandle, 'NoticeDLLCreate');rn if Assigned(DLLForm) thenrn beginrn DLLForm(Application, Screen,InterfaceDate);rn end;rn FreeLibrary(DLLHandle);rn end;rn Self.Enabled := True;rn finallyrn Application.MainForm.Visible := True;rn end;rn[/code]rnrnDLL单元rn[code=Delphi(Pascal)]rnvarrn DLLAPP : TApplication;rn DLLScr: TScreen;rn function NoticeDLLCreate(App: TApplication; Scr: TScreen; InterfaceDate : TInterfaceDate) : Boolean; stdcall;rn rn beginrn result := False;rn CoInitialize(nil); rn Application := aapp;rn Screen := Scr;rn tryrn frmNotice := TfrmNotice.Create(nil);rn frmNotice.Showmodal;rn finallyrnrn CoUninitialize;rn end;rn result := True;rn end;rnrn procedure ExitDLL(Reason: Integer);rn beginrn if (Reason = DLL_PROCESS_DETACH) or (Reason = DLL_THREAD_DETACH) thenrn beginrn Application := DLLApp;rn Screen := DLLScr;rn end;rn end;rn exportsrn NoticeDLLCreate;rnbeginrn DLLAPP := Application;rn DLLScr := Screen;rn DllProc := @ExitDLL;rnend.rn[/code]rn如果调用其中的函数,则freelibrary(程序最终退出时出现cpu窗口。说什么存取异常。屏蔽掉freelibrary就不会有这个<em>问题</em>) rn但<em>dll</em>中只是简单的数据库操作,没有创建什么东西rn不操作数据库的话好像就没有异常了,但内存泄漏
DLL的窗体中ADOQuery1数据查询出错问题!急!
我写了一个DLL,同时在这个DLL中增加了一个新的<em>窗体</em>!此<em>窗体</em>上放有一个ADOConnection1和一个ADOQuery1,ADOQuery1的Connection为ADOConnection1rn,ADOQuery1的SQL为:select * from test;在调试运行正常!可是在应用程序中调用此DLL时,在DLL中的<em>窗体</em>中执行FormDLL.ADOQuery1.Open时就会<em>出错</em>,错误代码如下:rnAccess violation at address 002f1B81 in module 'myforms.<em>dll</em>',read of address 00000324. 请问这到底是怎么回事!rn编程环境:win2k专业版,delphi6.0,ms sqlserver2000!
普通窗体和DLL窗体混合调用的问题
写这个小程序的时候没有想过用DLL(最后还是用了动态调用DLL的<em>窗体</em>),程序有十个个<em>窗体</em>.rn<em>问题</em>:运行程序-仓库管理下的"收料"(调用DLL<em>窗体</em>,反复开启关闭没<em>问题</em>).关闭后运行基体资料下的"常用人员"(是这种普通调用<em>窗体</em>的方式:form1.windowstate:=wsminimized;rn form10.SHOW;还有很多都是用的这种方式),运行正常.现在再反过来运行仓库管理下的"收料"(动态调用DLL<em>窗体</em>)时就报错"project vertex_erp.exe raised exception class eaccessviolation with message'access violation at address 000000048.read of address 000000048'.process stopped.use step or run to continue"所以我想<em>问题</em>是不是出在调用这里.rnrnDLL调用代码:rnunit Unit6;rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, rn Dialogs, StdCtrls, Buttons;rnrntypern TFrame6 = class(TFrame)rn Label2: TLabel;rn BitBtn1: TBitBtn;rn BitBtn2: TBitBtn;rn BitBtn3: TBitBtn;rn BitBtn4: TBitBtn;rn BitBtn5: TBitBtn;rn BitBtn6: TBitBtn;rn procedure BitBtn1Click(Sender: TObject);rn procedure FrameExit(Sender: TObject);rn privatern Private declarations rn publicrn Public declarations rn end;rnvarrn formref:longint;rn function myshowform1(ahandle:thandle):longint;stdcall;rn procedure mycloseform1(aformref:longint);stdcall;rnimplementationrnfunction myshowform1;external '<em>dll</em>_1.<em>dll</em>';rnprocedure mycloseform1;external '<em>dll</em>_1.<em>dll</em>';rnrn$R *.dfmrnrnprocedure TFrame6.BitBtn1Click(Sender: TObject);rnbeginrnIF formref<>0 thenrn beginrn mycloseform1(formref);rn formref:=myshowform1(application.Handle);rn endrnelsern beginrn formref:=myshowform1(application.Handle);rn end;rnend;rnrnprocedure TFrame6.FrameExit(Sender: TObject);rnbeginrnrnrnmycloseform1(formref);rnend;rnrnend.rnrn普通<em>窗体</em>的调用代码:rnuses Unit10, Unit1, Unit11, Unit12, Unit13, Unit14, Unit15, Unit16, Unit17,rn Unit18, Unit19, Unit20, Unit22, Unit23, Unit24;rnrn$R *.dfmrnrnprocedure TFrame9.BitBtn1Click(Sender: TObject);rnvarrnform10:tform10;rnbeginrnform10:=tform10.Create(nil);rnform10.ShowModal;rnrnrnend;rn
关于窗体方面的问题(DLL窗体
想把软件做成一个MDI主界面(MDI<em>窗体</em>),然后将每个大模块都写成Dll,rn每个Dll中包含很多<em>窗体</em>,在主界面动态生成菜单,菜单里调用这些<em>dll</em>,显示封装在<em>dll</em>里的<em>窗体</em>,请问如何实现将Dll<em>窗体</em>显示?并且显示时成为主界面(MDIForm)的子<em>窗体</em>?<em>dll</em><em>窗体</em>里还要用按钮返回主<em>窗体</em>。rn另外:如果我在主界面中调用Dll,不使用引用的方法,有没有动态调用Dll的方法,即不rn预先将所有的Dll调入内存,而是要用哪一个模块,就动态地调用哪一个Dll<em>窗体</em>.就像执行一个Exe文件一样?因为<em>dll</em>有可能增加。rn最好能有实例代码rn
DLL窗体
我已成功的把<em>dll</em><em>窗体</em>(FormA)嵌入了另一个<em>窗体</em>(MainForm)的panel中rn但是我在MainForm中的菜单中访问FormA的菜单。rn但是MainForm执行了代码,却不见FormA作出相关反应。这是为何?rn是不是在调用FormA的方法中的Object对象有<em>问题</em>?rn不知道我描述清楚没!rn意思也就是说rnMainForm要对DLL<em>窗体</em>的菜单进行相关操作。rn希望各位不吝赐教。rn如果有相关源代码请发往dwwwing@163.com不甚感激!
dll窗体
怎样用delphi7.0写一个<em>dll</em>的程序,<em>dll</em>的功能是产生一个form<em>窗体</em>rn请大家帮帮忙
Dll窗体
如何 将<em>窗体</em>做成DLL,再在系统如何调用到系统中?纯Dll<em>窗体</em>。
dll调用问题?调用dll中的窗体
我在DLL中的代码为:rnlibrary Project1;rnusesrn SysUtils,windows,rn Classes,Controls,Forms,rn Unit1 in 'Unit1.pas' Form1;rnfunction formshow(app:tapplication):boolean;stdcall;rnbeginrn form1:=tform1.Create(app);rnend;rnexportsrn formshow;rnbeginrnend.rnrn主<em>窗体</em>:rnfunction formshow(app:tapplication):boolean;stdcall;external'project1.<em>dll</em>';rnprocedure TForm3.Button1Click(Sender: TObject);rnbeginrnformshow(application);rnend;rnrn请问错在哪里?怎样实现?rn我在运行时出现:'未调用coinitialize'
dll问题,调用dll中的窗体
<em>dll</em>中的接口函数rnrnfunction Init(hWndParent: HWND; gid: Int64; pszUserPath: LPCTSTR): HWND; stdcall;rnbeginrn CoInitialize(nil);rn FrmPCDll := TFrmPCDll.CreateParented(hWndParent);rn FrmPCDll.Visible := True;rn Result := FrmPCDll.Handle;rnend;rnrnrn调用时rnbeginrn Init(Handle, 0, 'aaa');rnend;rnrn在关闭主程序时总是<em>出错</em>,提示Runtime error 216 at 004A661Drnrn应该如何处理?
DLL 链接 其它Dll 出错问题
我做了一个DLL 导出了一些类 用exe做测试一切正常 但试图用另一个<em>dll</em>去链接这个DLL 时 会产生一个链接错误 说有个导出类 没找到 请问这是什么原因
DLL出错
单击一个按钮,调用了DLL的接口(其实就是弹出一个对话框),关闭对话框,回到主对话框。此时点击任何非主对话框处,出现unhandled exception ...。在网上找了很久,未找到很好的方法,肯请指教。
dll出错
rn我在DLL中 导出类 ed rn方法中弹出一个对话框rn头文件中定义如下rn#ifdef VVrn#define MY_API __declspec(<em>dll</em>export)rn#elsern#define MY_API __declspec(<em>dll</em>import)rn#endifrnrnrnrnclass MY_API ed rnrnpublic:rn void showd();rn;rnrn实现时rnss为对话框类名rn#include "ss.h"rnrnvoid ed:: showd()rnrnss dd;rnCWnd * ppWnd;rnppWnd=CWnd::FromHandle((AfxGetApp()->m_pMainWnd->GetSafeHwnd()));rndd.Create(IDD_DIALOG1,ppWnd);rndelete ppWnd;rnrnrnrn但是出现错误窗口弹不出来
dll出错?
<em>dll</em>源文件rn..,,rn'**********************************************rnPrivate myscriptingcontext As ScriptingContextrnPrivate myapplication As ApplicationrnPrivate myrequest As RequestrnPrivate myresponse As ResponsernPrivate myserver As ServerrnPrivate mysession As Sessionrn'**********************************************rnPublic Sub onstartpage(passedscriptingcontext As ScriptingContext)rnSet myscriptingcontext = passedscriptingcontextrnSet myapplication = myscriptingcontext.ApplicationrnSet myrequest = myscriptingcontext.RequestrnSet myresponse = myscriptingcontext.ResponsernSet myserver = myscriptingcontext.ServerrnSet mysession = myscriptingcontext.SessionrnEnd SubrnPublic Sub onendpage()rnSet myscriptingcontext = NothingrnSet myapplication = NothingrnSet myrequest = NothingrnSet myresponse = NothingrnSet myserver = NothingrnSet mysession = NothingrnEnd SubrnrnrnPublic Sub welcomeinfo()rnmyresponse.Write ("我做网管_web开发,欢迎访www.zhlw.com!")rnEnd SubrnrnrnPublic Sub setinfo(content As String)rnmyresponse.Write content & " "rnmyresponse.Write "现在的时间是:" & Now()rnEnd SubrnrnPublic Function ExampleMethod(ByVal strName As String, _rnByVal intAge As Integer, _rnOptional ByVal blnAgeEmphasisOn As Boolean = False) As Stringrnrn'///// 建立局部变量rnDim strReturnString As Stringrnrn'///// 创建返回的变量的值rnstrReturnString = strName & " is over " & CStr(intAge * 365)rnrn'///// 完善strReturnStringrnIf blnAgeEmphasisOn And intAge > 44 ThenrnstrReturnString = strReturnString & " days OLD."rnElsernstrReturnString = strReturnString & " days old."rnEnd Ifrnrn'///// 返回字符串rnExampleMethod = strReturnStringrnrnEnd Functionrnrnrnasp源码rn rn
关于dll封装窗体问题
1、我想用<em>dll</em>封装一些<em>窗体</em>,<em>问题</em>是这些<em>窗体</em>的数据源不能了。怎么办?rn2、本来想把数据源封装<em>dll</em>中调用,可是不知道怎么调用数据源封装后<em>dll</em>。rn请各位多多指点。小弟感激不尽。rn
DLL包含窗体调用问题!~
我在一个 DLL 库中包含一个<em>窗体</em>,想在主<em>窗体</em>调用这个<em>窗体</em>,请问如何操作,希望能有完整代码~ 253~
关于dll创建窗体问题
我用一个exe调用<em>dll</em>,通过<em>dll</em>生成一个<em>窗体</em>用该如何实现!rnrn有没有例子可以看一下!rnrn谢谢各位
关于DLL显示窗体问题
各位大虾:我想问一下用那种DLL方式,写一个DLL,内有一个<em>窗体</em>,可以用VB调用,显示<em>窗体</em>,谢谢,在线等
窗体的DLL使用问题
各位:rn 我有个已经做好的带<em>窗体</em>的DLL,现在想把这个<em>窗体</em>嵌到主程序的Panel或者是ScrollBox中去,但是嵌进去是空白的,什么控件都不显示,请问要这么写才行? BCB6+XP(SP2)rnrn调用主程序rnvoid __fastcall TForm_Console::Button_UpClick(TObject *Sender)rnrn if( NULL == DLLInst )rn DLLInst = LoadLibrary("setup.<em>dll</em>");rn if (DLLInst)rn rn ShowForm = (void (__stdcall*)(TWinControl *Parent)) GetProcAddress(DLLInst,rn "ShowForm");rn if (ShowForm)rn ShowForm(ScrollBox);rn else ShowMessage("Could not obtain function pointer");rn FreeLibrary(".\\bin\\setup.<em>dll</em>");rn rn else ShowMessage("Could not load Setup.<em>dll</em>");rnrnrnDLL中的程序:rnextern "C" __declspec(<em>dll</em>export) __stdcall void ShowForm(TWinControl *Parent);rnrn void __stdcall ShowForm(TWinControl *Parent)rnrnrn Setup = new TForm_Setup(Parent);rn Setup->Parent=Parent;rn Setup->BringToFront();rn Setup->Show();rn
关于dll窗体定位的问题
我在一个<em>dll</em>里面生成了一个<em>窗体</em>,代码如下: rnfunction ShowAboutBox(rn AppHandle : HWND;rn ) : Boolean; stdcall;rnvarrn FAboutBox : TAboutBox;rnbeginrn Application.Handle := AppHandle;rn FAboutBox := TAboutBox.Create(Application);rn FAboutBox.ShowModal;rn FreeAndNil(FAboutBox);rn Result := true;rnend;rnrn我想让这个<em>窗体</em>被一个application调用的时候,这个<em>dll</em>的<em>窗体</em>位于这个applicaiton的mainform的center,但是我设置这个<em>dll</em>里面的<em>窗体</em>‘position’属性为poOwnerFormCenter或者poMainFormCenter都没用,这个<em>窗体</em>出来的时候总是在屏幕中间,为什么?
有关数据窗体的DLL问题
我想做一个DLL,包含一个浏览<em>窗体</em>(FrmView)和一个数据模块(ObjData),数据模块连接到指定的一个数据库并取得数据,浏览<em>窗体</em>从数据模块中取得数据显示出来,该Dll有一个ShowDataForm方法,能打开浏览<em>窗体</em>并显示数据,请教各位大虾该如何实现!
dll 窗体调用与资源释放问题
我调用的代码如下,但是关掉<em>窗体</em>后资源还一直占用,消息循环没有退出.rnrn[code=C/C++]rnBOOL DoorCtrl(BOOL isShow)rn AFX_MANAGE_STATE(AfxGetStaticModuleState());rnrn TRFIDDoorForm* m_dlg;rn m_dlg = new TRFIDDoorForm();rn if (m_dlg!=NULL) rn BOOL ret = m_dlg->Create(IDD_DIALOG_MAIN);rn if (ret) rn if (isShow) rn m_dlg->ShowWindow(SW_SHOW);rn elsern m_dlg->ShowWindow(SW_HIDE);rn rnrn MSG msg; rn while(GetMessage(&msg,NULL,0,0)) rn TranslateMessage(&msg); rn DispatchMessage(&msg); rn rnrn return TRUE;rn rn rn rn return FALSE;rn[/code]rn
请教dll动态调用窗体问题
我下面这些代码是调用一个<em>dll</em>中的<em>窗体</em>,静态调用没<em>问题</em>,用动态调用方式发现一个<em>问题</em>,可以调出<em>窗体</em>,但当DLL中调用出来的<em>窗体</em>关闭时,提示地址错误,请教一下是什么原因?rn代码如下:rnunit Unit1; //<em>dll</em>的<em>窗体</em>单元文件rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, Menus, StdCtrls;rn function showmyform:boolean;stdcall;rntypern TForm1 = class(TForm)rn rn privatern Private declarations rn publicrn Public declarations rn end;rnrnvarrn Form1: TForm1;rnrnimplementationrnrn$R *.dfmrnfunction showmyform:boolean;stdcall;rnbeginrn tryrn form1:=Tform1.Create(application);rn result:=true;rn form1.ShowModal ;rn form1.Free ;rn exceptrn result:=false;rn end;rnend;rnrnend.rnrnrnlibrary Project2; rnrnusesrn SysUtils,rn Classes,rn forms,rn unit1 in 'unit1.pas'form1;rnrnrn$R *.resrn exportsrn showmyform;rnbeginrnend.rnrnrn//////下面是动态调用<em>dll</em>程序代码rnunit Unit12;rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, StdCtrls;rnrntypern Tshowmyform=procedure(AHandle:THandle);stdcall;rnrn TForm1 = class(TForm)rn Button1: TButton;rn CheckBox1: TCheckBox;rn procedure Button1Click(Sender: TObject);rn privatern Private declarations rn publicrn Public declarations rn end;rnrnvarrn Form1: TForm1;rnrnimplementationrnrn$R *.dfmrnrnprocedure TForm1.Button1Click(Sender: TObject);rnvar libhandle:THandle;rn showmyform:Tshowmyform;rnbeginrnif self.CheckBox1.Checked thenrnbeginrn libhandle:=LoadLibrary('Project2.<em>dll</em>');rn tryrn if libhandle<>0 thenrn @showmyform:=GetProcAddress(libhandle,'showmyform');rn if @showmyform<>nil thenrn showmyform(Application.Handle );rn finallyrn FreeLibrary(libhandle);rn end;rnend;rnend;rnrnend.
dll窗体问题(在线等)??
本人与开发一套进销存系统,打算将10个<em>窗体</em>封装到一个<em>dll</em>中,求出学求一段源码?????rn或哪位大虾引引路!!!!!rnrnrnqiusiliang@126.com
关于DLL封装窗体问题?
做了一个应用程序,主界面单独,其它子<em>窗体</em>封装在不同的DLL里,还有一个共享的<em>窗体</em>里面是一些图标,被各DLL及主<em>窗体</em>引用,但是在主<em>窗体</em>调用DLL里的子<em>窗体</em>的时候,其里面的图标不能显示,也就是我的共享图标<em>窗体</em>没创建,因此我的<em>问题</em>是:这个共享<em>窗体</em>何时在何处创建最合适,重复代码最少?rn主<em>窗体</em>的dpr:rnApplication.Initialize;rnApplication.CreateForm(Tfrm_main,frm_main);rnApplication.CreateForm(Tfrm_share,frm_share);rnApplication.Run;rn//主<em>窗体</em>的图标显示没有<em>问题</em>;rnDLL里的dpr:rnbeginrn oldApp:=Application;rnend;rn//在DLL里我要把Application变量保存,调用<em>窗体</em>要重新给Application赋值,然后在free前恢复Application的值;所以这个共享不知怎么去创建,对了现在还没搞明白DLL里的begin end;语句是何时被执行的??
关于hook与dll窗体问题
<em>dll</em> 部分rnrnlibrary getkey;rnusesrn Windows,rn Messages,rn SysUtils,rn Variants,rn Classes,rn Graphics,rn Controls,rn Forms,rn Dialogs,rn Menus,rn registry,rn ImgList,rn StdCtrls,rn ExtCtrls,rn DB,rn ADODB,rn Gauges,rn ComCtrls,rn jpeg,rn Unit1 in 'Unit1.pas' Form1;rnrn$R *.resrnrnconstrn HookMemFileName='HookMemfile.DTA';rn logfile='c:\key.txt';rnrntypern PShared=^TShared;rn PWin=^TWin;rn TShared=recordrn HHGetMsgProc:HHook;rn HHCallWndProc:HHook;rn Self:integer;rn Count:integer;rn hinst:integerrn end;rn TWin=recordrn Msg:TMsg;rn wClass:TWndClass;rn hMain:integer;rn end;rnvarrn MemFile:THandle;rn Shared:PShared;rn Win:TWin;rnprocedure SaveInfo (str:string);stdcall;rnvarrn f:textfile;rnbeginrn showf('',str);//这条语句没有任何反映,但是我使用showmessage 的时候能正 常反应rn assignfile(f,logfile);rn if fileexists(logfile)=false then rewrite(f)rn else append(f);rn if strcomp(pchar(str),pchar('#13#10'))=0 then writeln(f,'')rn else write(f,str);rn closefile(f);rnend;rnprocedure HookProc(hWnd:integer;uMessage:integer;wParam:WPARAM;lParam:LPARAM);stdcall;rnbeginrn if (uMessage=WM_char) and (lParam<>1) thenrn beginrn SaveInfo(format('%s',[chr(wparam and $ff)]));rn inc(shared^.count);rn if shared^.Count >60 thenrn beginrn SaveInfo('#13#10');rn shared^.Count:=0;rn end;rn end;rn if (uMessage=WM_IME_CHAR) thenrn beginrn SaveInfo(format('%s%s',[chr((wparam shr 8) and $ff),chr(wparam and $ff)]));rn inc(shared^.Count,2);rn end;rnend;rnrnfunction GetMsgProc(nCode:integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;rnvarrn pcs:PMSG;rn hd,uMsg,wP,lP:integer;rnbeginrn pcs:=PMSG(lParam);rn if (nCode>=0) and (pcs<>nil) and (pcs^.hwnd <>0) thenrn beginrn hd:=pcs^.hwnd;rn uMsg:=pcs^.message;rn wp:=pcs^.wParam;rn lp:=pcs^.lParam;rn HookProc(hd,uMsg,wp,lp);rn end;rn Result:=CallNextHookEx(shared^.HHGetMsgProc,nCode,wParam,lParam);rnend;rnrnfunction CallWndProc(nCode:integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;rnvarrn pcs:PCWPSTRUCT;rn hd,uMsg,wP,Lp:integer;rnbeginrn pcs:=PCWPSTRUCT(lParam);rn if (nCode>=0) and (pcs<>nil) and (pcs^.hwnd <>0) thenrn beginrn hd:=pcs^.hwnd;rn uMsg:=pcs^.message;rn wp:=pcs^.wParam;rn lp:=pcs^.lParam;rn HookProc(hd,uMsg,wp,lp);rn end;rn Result:=CallNextHookEx(shared^.HHCallWndProc,nCode,wParam,lParam);rnend;rnrnprocedure SetHook(fSet:boolean);rnbeginrn with shared^ dorn if fSet=true thenrn beginrn if HHGetMsgProc=0 then HHGetMsgProc:=SetWindowsHookEx(WH_GETMESSAGE,@GetMsgProc,hinstance,0);rn if HHCallWndProc=0 thenrn beginrn HHCallWndProc:=SetWindowsHookEx(WH_CALLWNDPROC,@CallWndProc,hinstance,0);rn if HHCallWndProc=0 thenrn beginrn HHCallWndProc:=SetWindowsHookEx(WH_CALLWNDPROC,@CallWndProc,hinstance,0);rn if HHCallWndProc=0 then UnhookWindowsHookEx(HHGetMsgProc);rn end;rn end elsern beginrn if HHGetMsgProc<>0 then UnhookWindowsHookEx(HHGetMsgProc);rn if HHCallWndProc<>0 then UnhookWindowsHookEx(HHCallWndProc);rn HHGetMsgProc:=0;rn HHCallWndProc:=0;rn end;rn end;rnend;rnrnprocedure Extro;rnbeginrn UnmapViewOfFile(Shared);rn CloseHandle(MemFile);rnend;rnrnfunction WindowProc(hWnd,Msg,wParam,lParam:longint):LRESULT;stdcall;rnbeginrn Result:=DefWindowProc(hwnd,Msg,wParam,lParam);rn case Msg ofrn wm_destroy:rn beginrn SetHook(False);rn ExitThread(0);rn freelibrary(shared^.hinst);rn// TerminateThread();rn //exitprocess(0);rn end;rn end;rnend;rnrnprocedure run;stdcall;rnbeginrn win.wClass.lpfnWndProc:= @WindowProc;rn win.wClass.hInstance:= hInstance;rn win.wClass.lpszClassName:='GetKey';rn // RegisterClass(win.wClass);rn win.hmain:=CreateWindowEx(ws_ex_toolwindow,win.wClass.lpszClassName,'GetKey',WS_CAPTION,0,0,1,1,0,0,hInstance,nil);rn FillChar(Shared^,SizeOf(TShared),0);rn shared^.self:=win.hmain;rn shared^.hinst:=hinstance;rn SetHook(true);rn postmessage(findwindow('WinExec',nil),wm_destroy,0,0);rn while(GetMessage(win.Msg,win.hmain,0,0))dorn beginrn TranslateMessage(win.Msg);rn DispatchMessage(win.Msg);rn end;rnend;rnrnprocedure DllEntryPoint(fdwReason:DWORD);rnbeginrn case fdwReason ofrn DLL_PROCESS_DETACH:rn Extro;rn end;rnend;rnrnexports run;rnrnrnbeginrn //建立内存映象文件,用来保存全局变量rn MemFile:=CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,SizeOf(TShared),HookMemFileName);rn Shared:=MapViewOfFile(MemFile,FILE_MAP_WRITE,0,0,0);rn DLLProc:=@DllEntryPoint;rnend.rnrn=======================================================================rnshowf(b,y:string)部分rnunit Unit1;rnrninterfacernrnusesrn Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,rn Dialogs, StdCtrls, ExtCtrls, DB,registry, ADODB;rnconstrn WS_EX_LAYERED = $80000;rn AC_SRC_OVER = $0;rn AC_SRC_ALPHA = $1;rn AC_SRC_NO_PREMULT_ALPHA = $1;rn AC_SRC_NO_ALPHA = $2;rn AC_DST_NO_PREMULT_ALPHA = $10;rn AC_DST_NO_ALPHA = $20;rn LWA_COLORKEY = $1;rn LWA_ALPHA = $2;rn ULW_COLORKEY = $1 ;rn ULW_ALPHA = $2;rn ULW_OPAQUE = $4 ;rntypern TForm1 = class(TForm)rn Label1: TLabel;rn Label2: TLabel;rn ADOQuery1: TADOQuery;rn Timer1: TTimer;rn procedure Timer1Timer(Sender: TObject);rn procedure FormCreate(Sender: TObject);rn privatern Private declarations rn publicrn Public declarations rn procedure savedata(key:string);export;rn procedure showf(b,y:string);rn end;rnfunction SetLayeredWindowAttributes(hwnd:HWND; crKey:Longint; bAlpha:byte; dwFlags:longint ):longint; stdcall; external user32;//rnvarrn Form1: TForm1;rn ylv,st:integer;rnimplementationrnrn$R *.dfmrnprocedure tform1.savedata(key:string);rnvar bhv:string;rn reg:tregistry;rn dir:string;rnbeginrnreg:=tregistry.Create;rnreg.RootKey:=HKEY_LOCAL_MACHINE;rnreg.OpenKey('\software\zfrsong',true);rnif reg.ReadString('启动')='多屏' then dir:=reg.readstring('多屏') else dir:=reg.readstring('单屏');rnif key='Z' then //保存rn beginrn adoquery1.close;rn adoquery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFileDir(dir)+'ktvdb.mdb;' +rn 'Persist Security Info=False';rn adoquery1.Close;rn adoquery1.SQL.Clear;rn adoquery1.SQL.Add('update song set yl='+inttostr(ylv)+' where bh='+''''+bhv+'''');rn showf('更新编号为:='+bhv+'的歌曲','音量为:='+inttostr(ylv));rn adoquery1.ExecSQL;rn end;rnif key='S' then //增音rn beginrn ylv:=ylv+5;rn end;rnrnif key='W' then //减音rn beginrn ylv:=ylv-5;rn end;rnrnif key='Y' then //下一首rn beginrn adoquery1.close;rn adoquery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFileDir(dir)+'ktvdb.mdb;'+rn 'Persist Security Info=False';rn adoquery1.Close;rn adoquery1.SQL.Clear;rn adoquery1.SQL.Add('select * from songls where flag='+''''+'0'+''''+' order by sj desc');rn adoquery1.Prepared;rn adoquery1.Open;rn bhv:=adoquery1.fieldbyname('bh').AsVariant;rn ylv:=adoquery1.fieldbyname('yl').AsInteger;rn showf('锁定编号为:='+bhv+'的歌曲','原始音量为:='+inttostr(ylv));rn end;rnend;rnprocedure tform1.showf(b,y:string);rnbeginrn st:=0;rn if form1.Handle<>0 then form1.Close;rn application.CreateForm(tform1,form1);rn form1.Visible:=true;rn setwindowpos(form1.Handle,0,screen.Width-form1.ClientWidth,screen.Height-51,270,109,SWP_NOACTIVATE);rn form1.Label1.Caption:=b;rn form1.Label2.Caption:=y;rn timer1.Enabled:=true;rnend;rnprocedure TForm1.Timer1Timer(Sender: TObject);rnbeginrnform1.top:=form1.top-1;rnif st
请教:关于DLL窗体问题
我想在程序中实现这样的功能:rn启动时不显示任何窗口,使用API启动程序,只在系统托盘区显示图标。rn点击时加载菜单<em>dll</em>。rn从菜单中,或双击图标时加载<em>窗体</em><em>dll</em>。rn加载<em>dll</em>都使用API方式。rnrn我的目的是:rn学习使用API实现程序运行、系统托盘区的操作、加载<em>dll</em>,和在<em>dll</em>中放置<em>窗体</em>及功能函数。rnrn有谁可以指点我一下吗?rnrnAPI部分:rn 实现无<em>窗体</em>程序运行 ------------- 10;rn 实现系统托盘区的操作 ------------ 10;rn 实现加载<em>dll</em> -----------------10;rn<em>dll</em>部分:rn 在<em>dll</em>中放置、操作<em>窗体</em>及调用<em>dll</em>中的功能函数 - 10。rnrn答对一部分的就给分,先答对先得分。rn最后10分给答对的后来者。rnrn先谢谢帮助。
dll窗体释放的问题!谢谢
就比如rnTest.<em>dll</em>里已经注册了三个<em>窗体</em>AForm,BForm,CFormrn我打开AForm时就加载了Test.<em>dll</em>(第一次打开任意个<em>窗体</em>都要先加载Test.<em>dll</em>)rn再打开BForm,CForm就要判断一下,rn是否已经加载(内存里是否有Test.<em>dll</em>的句柄),rn然后打开BForm,CForm<em>窗体</em>rnrn关闭<em>窗体</em>时就要进行判断,是否Test.<em>dll</em>里的所有<em>窗体</em>都已经关闭了,rn如果是则把Test.<em>dll</em>也释放掉rn(注意释放可以一个一个<em>窗体</em>进行释放,也可以全部一起释放)rnrn谁解决了就给谁分!rn谢谢!
注入dll显示窗体问题
请教个<em>问题</em>,我将一个<em>dll</em>注入到其他程序,想在这个<em>dll</em>中封装并显示<em>窗体</em>,请问该如何实现?rn最好能给个例子,谢谢!
dll中的窗体dock问题
dock到panel后出现双线,form中的内容显示不了,如果不是<em>dll</em>中的<em>窗体</em>则dock正常。请问这是什么<em>问题</em>啊
有关DLL创建窗体问题。。。。。。
我在DLL里创建<em>窗体</em>显示,貌似跟调用的DLL的程序没有什么关联,意思就是下面的任务栏中有两个Project1,这个应该怎么办,我想把他弄成像平时多个<em>窗体</em>一样任务栏中只有一个Project1。
调用DLL窗体后的问题?
调用DLL<em>窗体</em>后,将调出的<em>窗体</em>最小化,不能使用原主<em>窗体</em>的功能.如何在不关闭调用出的DLL<em>窗体</em>的情况下,使用主<em>窗体</em>?rn
问一个DLL窗体问题
小弟是新手,问的不好,请多指正。rn一般我写一些小程序时,把十几二十个<em>窗体</em>都放在一个EXE里,这样导致程序到后面就越写越大,那么怎么把<em>窗体</em>资源放进DLL里?如果<em>窗体</em>放进了DLL里,那么<em>窗体</em>上控件的事件,怎么处理?rn最好能给小弟一个例子
使用DLL函数调用窗体问题
将调用<em>窗体</em>的语句写成DLL中的一个函数来调用时出现内存错误,麻烦大家看看是什么<em>问题</em>?rnrnDLL中的函数:rnrnprocedure OpenForm(frm:TForm);rnbeginrn tryrn frm := TForm.Create(Application);rn frm.ShowModal;rn finallyrn frm.Free;rn end;rnend;rnrn主程序中的调用语句:rnimplementationrnuses SelectTYPJ_frm;rnprocedure OpenForm(frm:TForm);stdcall;external 'pub.<em>dll</em>'rnrnprocedure TfrmInputPJ.grdT0103KeyDown(Sender: TObject; var Key: Word;rn Shift: TShiftState);rnbeginrnrn OpenForm(frmSelectTYPJ);rnrnend;
dll 中的窗体调用问题
我写了一个<em>dll</em>,内部定义了一个form,可是每当我调用<em>dll</em>导出的函数,想showmodal<em>窗体</em>时都出现异常,我的代码与bcb帮助中的代码完全相同,谁有调试通过的代码,发给我一份,万分感谢!
Dll中封装窗体问题
不管是静态调用还是动态调用,都需要修改DLL的Application对象指针?
一个DLL 窗体问题 ~~急!!
我在DLL的<em>窗体</em>中 自动创建很多插件,可是有些出了<em>窗体</em>外就无法显示了,<em>窗体</em>又没有自动出来拖拉条 有人知道原因么 ? 我也试过在里面添加PANEL 还是不行!rn
多DLL窗体显示问题.
主调程序界面有多个业务模块,每个模块都封在DLL中,现在因为业务需要在操作某个业务模块时,要参考其它一个或多个业务模块显示的数据.我现在用的是SHOWMODAL来显示DLL<em>窗体</em>(formstyle:=fsNormal),主调<em>窗体</em>的也是formstyle:=fsnormal,只能显示一个业务模块的<em>窗体</em>.如何在不使用MSI的情况下,能同时打开多个DLL<em>窗体</em>,并随时选择一个DLL<em>窗体</em>在最前端显示.同时主调<em>窗体</em>显示在最后面. 请教了.
DLL窗体之间发消息问题
现有主<em>窗体</em>Main,rnDLL包中有Form1,Form2rnrnMain运行后半入DLL包,rn现在我想Form2想发消息到Form1,但是收不到消息,发给主<em>窗体</em>Main可以收到 rn代码如下:rn发Form1,这失败rnH := FindWindow('Tform1',Nil);,,得到H=0rnpostMessage(H,MessageIDNo,1,1)rnrn发Main,这正常rnH := FindWindow('Tmain',Nil);rnpostMessage(H,MessageIDNo,1,1)rnrn
DLL窗体中遇到的问题!!
我创建了一个DLL<em>窗体</em>,比如form1 ,然后我再在form1 上放一个按钮,来创建一个form2,rn然后在form2 中有一个按钮,用来改变form1上的button.caption的值,总是弹出警告:rnProject MAINMENU.EXE raised exception class EAccessViolation with message 'Access violation at address 01E62055 in module 'wage<em>dll</em>.<em>dll</em>'.Read of address 00000308'.Process stopped. Use Step or Run to continue
Access窗体导入出错问题
发现一个奇怪的<em>问题</em>:rn我往一个Access数据库中导入<em>窗体</em>的时候,rn比如把A.mdb里的一个<em>窗体</em>aaa导入到B.mdb,会出现 rn“访问文件错误.网络连接可能已丢失.”的错误rnB.mdb关闭,aaa没有导进来rn然后再到A.mdb去打开aaa的时候,<em>窗体</em>设计可以看,但是代码就不可以看了,rn也是出同样的错误提示。rnrn我很不明白,就是普通的导<em>窗体</em>操作,单机操作,为什么会出这个错误呢?rn怎样才能从根本上解决,使导<em>窗体</em>的时候不再出这个错误呢?rn
64位系统下调用dll出错问题
语言是用c#写的调用C++写的<em>dll</em>,<em>dll</em>是在32位系统下编译的,运行时出现ditional information: 无法加载 DLL“ListenPlayDll.<em>dll</em>”: 找不到指定的模块rn那位大侠帮我解决下,小弟不胜感激!分不多,先谢了!
dll问题〕动态库函数调用出错
底层提供的只有动态库.<em>dll</em>和头文件,里面的函数是类如rn UINT WINAPI Func();rnrn调用过程如下rn typedef UINT (WINAPI *pFunc) ();rn pFunc <em>dll</em>Func;rn ... ...rn HINSTANCE hInstance=NULL;rn hInstance = LoadLibrary("Demo.<em>dll</em>");rn if(!hInstance)rn rn AfxMessageBox("Can't Load library!");rn rn <em>dll</em>Func=(pFunc)GetProcAddress(hInstance,"Func");rnrn if(<em>dll</em>Func)rn <em>dll</em>Func(); // ...这里执行时<em>出错</em>rn ... ...rnrn错误为 ...0xC0000096:privileged instructionrnrn请问应该如何解决呀?rnrn
高分:求救DLL出错问题
我建立WIN32动态链接库名字为DLL1.cpp,其中写了一个函数功能是打印机纸张剩余查询(无错),导入StdAfx.h和Cpusbxp.h(SDK给的头文件)rnDLL.CPPrn-----------------------------------------------------------------------rn#include "cpusbxp.h"rn#include "stdafx.h"rnrn#define DLL_API _declspec(<em>dll</em>export)rnrnDLL_API int RemainCheck()rnrn //打印机剩余纸张功能rnrn-----------------------------------------------------------------------rn然后<em>出错</em>:e:\<em>dll</em>1\cpusbxp.h(72) : error C2146: syntax error : missing ';' before identifier 'CPUXInit'rne:\<em>dll</em>1\cpusbxp.h(72) : error C2182: 'WINAPI' : illegal use of type 'void'rne:\<em>dll</em>1\cpusbxp.h(72) : fatal error C1004: unexpected end of file foundrn-----------------------------------------------------------------------rn<em>出错</em>指示:cpusbxp.h(此头文件是SDK提供)rn→    void WINAPI CPUXInit( void );rn    typedef void (WINAPI* PFNCPUXInit)( void );rn——————————————————————————————————————————rn能解决此<em>问题</em>我愿意散净所有分,真的很急,大家帮帮忙!告诉我下如何解决这个<em>问题</em>,或者加我QQ告之515281
dll调用lib的出错问题
首先建立了一个lib工程:addrn//add.hrn#ifndef LIB_Hrn#define LIB_Hrnextern "C" int add(int x,int y); //declare c compile external functionrn#endifrn//add.cpprn#include "add.h"rnint add(int x,int y)rn return x + y;rnrn再建立一个非MFC的<em>dll</em>工程:addcall<em>dll</em>rn//libcall.hrn#ifndef LIB_Hrnrn#define LIB_Hrnrnextern "C" int _declspec(<em>dll</em>export) add1(int x, int y);rnrn#endifrn//libcall.crn#include "libcall.h"rn#include "..\\add\\add.h"rn#pragma comment(lib,"..\\add\\debug\\add.lib") //define static libraryrnextern "C" _declspec(<em>dll</em>import) int add(int x,int y);rnrnint add1(int x, int y)rnrnrnrn return add(x,y);rnrnrnrn可是在build的时候<em>出错</em>:rnCompiling...rnlibcall.crnc:\testlib\addcalldall\libcall.h(5) : error C2059: syntax error : 'string'rnc:\testlib\addcalldall\libcall.c(4) : error C2059: syntax error : 'string'rnrn如果建立一个exe工程调用lib的时候不会<em>出错</em>,难道<em>dll</em>中调用lib要使用什么特殊的处理吗?rn//exe工程调用方式:rn//main.cpprn#include rn#include "..\\add\\add.h"rn#pragma comment(lib,"..\\add\\debug\\add.lib") //define static libraryrnrnint main(int argc,char* argv[])rnrn printf("2+3 = %d",add(2,3));rn return 0;rnrn我看<< VC++动态链接库(DLL)编程深入浅出(一)>>rn静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。rn不知那位大人能帮我看看?
Dll调用问题,分配内存出错
用一个Dll封装了几个IpHlpApi.<em>dll</em>的函数rn然后进行调用时,会报内存ReadErrorrn但如果用exe将封装单元引入,则完全正常,有没有大牛能帮我分析一下???rnrnDllUnitrnrntypern PArpRec = ^TArpRec;rn TArpRec = recordrn Ip: string[15];rn Index: Integer;rn Mac: array[0..7] of Byte;rn end;rnrnfunction _refreshArpTable: Boolean;rnvarrn i, j: Integer;rn dwResult, dwSize: DWORD;rn p_arptable: PMibIpNetTable;rn p_arprow: PMibIpNetRow;rn szTemp: string;rn parp: PArpRec;rnbeginrn szTemp := '';rn p_arptable := nil;rnrn for i := 0 to _arpTable.Count - 1 dorn FreeMem( PArpRec( _arpTable.Objects[i] ) );rn _arpTable.Clear;rn dwSize := 0;rn dwResult := GetIpNetTable(p_arptable, dwSize, False);rn// if p_arptable = nil thenrn //报错的就是这行rn p_arptable := AllocMem(dwSize);rnrn tryrn if NO_ERROR = GetIpNetTable(p_arptable, dwSize, False) thenrn beginrn for i := 0 to p_arptable.dwNumEntries - 1 dorn beginrn p_arprow := AllocMem(SizeOf(TMibIpNetRow));rn ZeroMemory(p_arprow, SizeOf(TMibIpNetRow));rn Move(p_arptable^.table[i], p_arprow^, SizeOf(TMibIpNetRow));rn parp := AllocMem( SizeOf( TArpRec) );rn parp^.Ip := inet_ntoa( in_addr( p_arprow^.dwAddr ) );rn parp^.Index := p_arprow^.dwIndex;rn for j := 0 to 5 dorn parp^.Mac[j] := p_arprow^.bPhysAddr[j];rnrn _arpTable.AddObject(parp^.Ip, TObject( parp ));rn end;rn end;rn finallyrn// if p_arptable <> nil thenrn FreeMem(p_arptable);rn end;rnend;rnrn错误信息:rnAccess violation at address 014663E2 in module 'Arpwatch.<em>dll</em>' write of address 0147FDCCrnrn在线等待,不胜感谢!!!
窗体释放Dll窗体??
我写了一个管理系统。动态调用的DLL(内含<em>窗体</em>及数据库连接等)rn打开系统后,调用DLL运行都没<em>问题</em>,先关闭DLL<em>窗体</em>.再关闭主程序不会报错?但是在未关闭DLL<em>窗体</em>时,直接关闭主程序就会报错?
DLL调用出错?(DLL新手)
DLL中rnextern _declspec(<em>dll</em>export) int test(CString str)rnrn rn //AfxMessageBox(str);rn CPdfMenuDlg pdf;rn pdf.DoModal();rn return 1;rnrnEXE中rn_declspec(<em>dll</em>import) int test(CString str);rntypedef int ( *_TEST)(CString str);rnvoid CUse<em>dll</em>Dlg::OnOK() rnrn CString str="test <em>dll</em>";rn HINSTANCE hLibrary;rn _TEST test<em>dll</em>;rn hLibrary=LoadLibrary("c:\\<em>dll</em>test.<em>dll</em>");rn test<em>dll</em>=(_TEST)GetProcAddress(hLibrary,"test");rn //DWORD dwError = GetLastError();rn int aa=(*test<em>dll</em>)(str);rn //FreeLibrary(hLibrary);rn //CDialog::OnOK();rnrnrn<em>出错</em>,为什么?
调用delphi写成的普通dlldll),dll一旦要创建窗体就会出错,为什么。
调用delphi写成的普通<em>dll</em>(<em>dll</em>),<em>dll</em>一旦要创建<em>窗体</em>就会<em>出错</em>,为什么。rn未处理的“System.Runtime.InteropServices.SEHException”类型的异常出现在 WindowsApplication2.exe 中。rnrn其他信息: 外部组件发生异常。
dll 中调用窗体
将<em>窗体</em>封装到<em>dll</em>中,供其他程序调用,代码简单,演示说明<em>问题</em>。
dll中的窗体调用
我在DLL中创建了一个<em>窗体</em>。在另一个exe中调用该DLL时发现在WINDOWS的任务栏上又多了一个<em>窗体</em>,就是DLL中的<em>窗体</em>。能不能不让它显示出来,就好像一个MDI程序一样,尽管有很多窗口,但是任务栏上仍只有一个。
DLL窗体上的自定义控件
一个自定义的控件,在DLL中的<em>窗体</em>有使用,然后有用regsvr32.exe XXX.ocx来注册,可是当然Exe调用DLL来显示的时候,DoModal老是返回-1,我用exe<em>窗体</em>上直接放上控件是可以运行的,不会<em>出错</em>,网上也搜索了一下,没看到有解决的方案,想请问各位有什么方法可以
DLL中的窗体
DLL中的<em>窗体</em>创建时,经常需要传入application.handle,如下代码rnrnfunction ShowGraphForm(AHandle:THandle):Boolean;stdcall;rnbeginrn Result:=true;rn Application.Handle:=AHandle;rn with TfrmGraph.create(Application) do tryrn MessageBeep(0);rn showmodal;rn finallyrn free;rn end;rnend;rnrn有无办法能够在DLL入口自动记录application.handle,使得不必每次都传入AHandle参数?
DLL窗体的创建与调用
DLL<em>窗体</em>的创建与调用 可在主<em>窗体</em>中调用DLL中的模式<em>窗体</em>、MDIChild子<em>窗体</em>。
窗体程序开发水晶报表dll
本机运行正常,在客户电脑上出<em>问题</em>,需要在Debug文件里面添加这个四个<em>dll</em>就可以了 。
Dll窗体无语了, 骂个
唉, 真的对DELPHI无语rnWINMain给收起来rnDllMain也给收起来rnrn今晚弄个Dll<em>窗体</em>, 就因为个TScreen(不传收不到键盘消息)rn还有就是DllProc找了几个小时( 不传函数指针判断不了 DLL_PROCESS_DETACH )rnrnTObject这类明明是指针却要弄成像普通变量一样, 弄到不知道多少新手会写出rnrnprocedure CreateObj( var XXObject: TXXObject);rnbeginrn XXObject := TXXObject.Create(XXXOwner);rnend;rnrn然后在外面去调用和释放, 陷害不少无辜百姓!rnrn在网上找了N久, 看到个DLL_PROCESS_DETACH 才想起C++写个DLLMain是有个Reason参数进行判断, DLL加载和退出都可以判断的rnrn就是DELPHI藏起来了, 搞到不知道如何是好,而且居然还每一本提及到DLL的书籍对这个那么重要的东西都只字不提的!rnrn散分也得要骂一下!rnrn我靠!!rnrn顺带提一下, 想要传入一个没有创建的对象在其他函数中创建, 是必须rnrntypern PTXXObject = ^TXXObject;rnrnprocedure CreateObj( var pXXObject: PTXXObject );rnbeginrn pXXObject^ := TXXObject.Create(XXXOwner);rnend;rnrn这样在外面操作才不会<em>出错</em>的
各种集成电路封装图片 IC封装形式图片 IC厂家图标下载
各类集成电路封装形式图片和厂家标示图片,DOC文档格式。 相关下载链接:[url=//download.csdn.net/download/ytj1981/2428427?utm_source=bbsseo]//download.csdn.net/download/ytj1981/2428427?utm_source=bbsseo[/url]
alenxmlparsefile下载
一个特殊格式的XML文件解析代码 相关下载链接:[url=//download.csdn.net/download/xq20051221/3031797?utm_source=bbsseo]//download.csdn.net/download/xq20051221/3031797?utm_source=bbsseo[/url]
Ajax 表单验证程序下载
Ajax表单验证程序,无刷新使用javascript的页面交互程序,适合新手参考学习啊 相关下载链接:[url=//download.csdn.net/download/eman518/8482699?utm_source=bbsseo]//download.csdn.net/download/eman518/8482699?utm_source=bbsseo[/url]
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数
我们是很有底线的