我的程序在进入第二个窗体时就出错了,从代码上看不出任何问题.
主:
uses
Forms,
Windows,
SysUtils,
attemper in 'ATTEMPER.pas' {MDI},
logform in 'LOGFORM.PAS' {logfrm};{$R *.res}
Var
hMutex:HWND;
Ret:Integer;begin
hMutex:=CreateMutex(nil,False,'轮驳公司辅助管理系统');
Ret:=GetLastError;
If Ret<>ERROR_ALREADY_EXISTS Then
begin
Application.Initialize;
Application.Title := '轮驳公司辅助管理系统';
Application.CreateForm(TMDI, MDI);
Application.CreateForm(Tlogfrm, logfrm);
Application.Run;
end else
Application.MessageBox('程序已经运行!','请注意!',MB_OK);
ReleaseMutex(hMutex);
end.登录窗体:
{$R *.dfm}function D_AdoConStr:string;stdcall;External'Module_fun.dll';procedure Tlogfrm.BitBtn6Click(Sender: TObject);
begin
close;
end;procedure Tlogfrm.FormCreate(Sender: TObject);
var
AdoConStr:string;
begin
//加载窗体信息;
logfrm.Width:=448;
logfrm.Height:=289;
logfrm.Left:=225;
logfrm.Top:=153;ADOConnection.ConnectionString:='';
AdoConStr:=D_AdoConStr;
ADOConnection.ConnectionString:=AdoConStr;ADOConnection.Connected:=true;classfalse;GroupBox2.Left:=99;
GroupBox2.Top:=0;
GroupBox1.Left:=99;
GroupBox1.Top:=-4;//SetWindowPos(logfrm.handle,HWND_TOPMOST, logfrm.Left, logfrm.Top, logfrm.Width, logfrm.Height,0);end;
请大家帮帮我,谢谢大家了!分不够,可以再加
主:
uses
Forms,
Windows,
SysUtils,
attemper in 'ATTEMPER.pas' {MDI},
logform in 'LOGFORM.PAS' {logfrm};{$R *.res}
Var
hMutex:HWND;
Ret:Integer;begin
hMutex:=CreateMutex(nil,False,'轮驳公司辅助管理系统');
Ret:=GetLastError;
If Ret<>ERROR_ALREADY_EXISTS Then
begin
Application.Initialize;
Application.Title := '轮驳公司辅助管理系统';
Application.CreateForm(TMDI, MDI);
Application.CreateForm(Tlogfrm, logfrm);
Application.Run;
end else
Application.MessageBox('程序已经运行!','请注意!',MB_OK);
ReleaseMutex(hMutex);
end.登录窗体:
{$R *.dfm}function D_AdoConStr:string;stdcall;External'Module_fun.dll';procedure Tlogfrm.BitBtn6Click(Sender: TObject);
begin
close;
end;procedure Tlogfrm.FormCreate(Sender: TObject);
var
AdoConStr:string;
begin
//加载窗体信息;
logfrm.Width:=448;
logfrm.Height:=289;
logfrm.Left:=225;
logfrm.Top:=153;ADOConnection.ConnectionString:='';
AdoConStr:=D_AdoConStr;
ADOConnection.ConnectionString:=AdoConStr;ADOConnection.Connected:=true;classfalse;GroupBox2.Left:=99;
GroupBox2.Top:=0;
GroupBox1.Left:=99;
GroupBox1.Top:=-4;//SetWindowPos(logfrm.handle,HWND_TOPMOST, logfrm.Left, logfrm.Top, logfrm.Width, logfrm.Height,0);end;
请大家帮帮我,谢谢大家了!分不够,可以再加
解决方案 »
- 单据修改状态下,在dbgrid里增加记录,保存后发现没有保存到数据库,求救?
- 如何在Delphi中编程获取内存的类型是什么(如DDR、DDR2)?
- 有关在delphi里用ADO连接到db2数据库出现的问题!
- 一个动态产生的ADODataset,动态添加了数据集,怎么显示在DBGrid中?
- 一个ISAPI应用程序的问题!
- 没办法,我只有再开一个贴子了,高手请进。。
- DLL中能否定义全局变量?应该如何使用?
- ■■■Delphi中过程或函数可以嵌套定义吗?■■■
- 怎样逐个读取字符串?
- 速达软件中类似树形的ComboBox是如何实现的?不会给很多分,20分聊表心意。
- Delphi7使用WebService(在线等候)
- 考试题请各位帮忙,兄弟非常感谢
function D_AdoConStr:string;stdcall;External'Module_fun.dll';
将DLL中的返回类型改为Pchar
var
allcount: array [0..15] of integer;
sumcount: array [0..5] of integer;
for i:=0 to 15 do
begin
allcount[i]:=0;
sumcount[i]:=0;
end;
错的原因是两个数组长度不同
有些控件还没有创建就调用了
2、若和DLL相关,修改函数function D_AdoConStr:string;stdcall;External'Module_fun.dll';
将string改为pchar,函数内容相应的修改。
调用时AdoConStr:=StrPas(D_AdoConStr);附:function StrPas(const Str: PChar): string;
function Pchar(const Str: string): Pchar;
function D_AdoConStr:pchar;stdcall;
var
Inf_file:Tinifile;
con_pas,con_use,con_db,con_ip:string;
begin
Inf_file:= Tinifile.Create('.\info.ini');
result :='Provider=SQLOLEDB.1;'
+ 'Password=' + Inf_file.ReadString('Connect','Password',con_pas) + ';'
+ 'Persist Security Info=True;'
+ 'User ID=' + Inf_file.ReadString('Connect','User ID',con_use) + ';'
+ 'Initial Catalog=' + Inf_file.ReadString('Connect','Initial Catalog',con_db) + ';'
+ 'Data Source=' + Inf_file.ReadString('Connect','Data Source',con_ip) +';';
end;