//调用单元
unit TestF;
function EnterParamFormCreate(Ahandle: Thandle; var PStartDate,PEndDate: Pchar):Boolean;
stdcall; external 'Ideal.dll';
procedure TForm1.Button1Click(Sender: TObject);
var
Ahandle: Thandle;
PStartDate,PEndDate: Pchar;
StartDate,EndDate: String;
begin
Ahandle:= Application.Handle;
EnterParamFormCreate(Ahandle,PStartDate,PEndDate);
StartDate:=PStartDate;
EndDate:= PEndDate;
Showmessage(StartDate+','+EndDate);
end;//dll
library Ideal;function EnterParamFormCreate(Ahandle: THandle;
var PStartDate,PEndDate: Pchar):Boolean; stdcall;
begin
Application.Handle:= AHandle;
ImportParamForm := TFrmImportParam.Create(Application);
with ImportParamForm do
begin
if ShowModal = mrOK then
begin
PStartDate:= Pchar(DateToStr(DateTimePicker1.Date));
PEndDate:= Pchar(DateToStr(DateTimePicker1.Date)); end;
Free;
end;
end;exports
EnterParamFormCreate;
begin
end.而当两个参数赋值字符串时,如
pstartdate:= 'aaa';
penddate:= 'bbb';
就能取回,请指导。
unit TestF;
function EnterParamFormCreate(Ahandle: Thandle; var PStartDate,PEndDate: Pchar):Boolean;
stdcall; external 'Ideal.dll';
procedure TForm1.Button1Click(Sender: TObject);
var
Ahandle: Thandle;
PStartDate,PEndDate: Pchar;
StartDate,EndDate: String;
begin
Ahandle:= Application.Handle;
EnterParamFormCreate(Ahandle,PStartDate,PEndDate);
StartDate:=PStartDate;
EndDate:= PEndDate;
Showmessage(StartDate+','+EndDate);
end;//dll
library Ideal;function EnterParamFormCreate(Ahandle: THandle;
var PStartDate,PEndDate: Pchar):Boolean; stdcall;
begin
Application.Handle:= AHandle;
ImportParamForm := TFrmImportParam.Create(Application);
with ImportParamForm do
begin
if ShowModal = mrOK then
begin
PStartDate:= Pchar(DateToStr(DateTimePicker1.Date));
PEndDate:= Pchar(DateToStr(DateTimePicker1.Date)); end;
Free;
end;
end;exports
EnterParamFormCreate;
begin
end.而当两个参数赋值字符串时,如
pstartdate:= 'aaa';
penddate:= 'bbb';
就能取回,请指导。
解决方案 »
- 求助Delphi生成EXE文件
- 批量插入数据时,如何添加凭证号?
- 求delphi动态界面问题~
- 烦!菜鸟求SOCKET协议的分解问题
- 急问:如果创建一个给定文件名的excel文件???在线等待,谢谢!
- Locate('Shipper;Code',VarArrayOf['123','456'],[loCaseInsensitive]) 出错了?
- 第一届Borland中国程序员设计大奖赛8月10日开战
- 如果我本机系统的日期格式是‘2002/10/11‘,通过什么函数能改变我机器系统的日期格式,改为'2002-10-11'.我要的改变系统的格式,而不是
- 請問:哪儿有关通信协议的网站,比如http,ftp,tcp/ip等,知道者千万帮忙,急用。
- 一个很初级问题:添加子程序
- 怎么用spcomm控件得到串行口rs232连接设备中的数据?
- 如何自动把一个HTML页面打印到文件?
明天我会公司,帮你调一下
能讲一下为什么吗?同时,
用strCopy()时为什么会出现无效地址错误呢
begin
if ShowModal = mrOK then
begin
PStartDate:= Pchar(DateToStr(DateTimePicker1.Date));
PEndDate:= Pchar(DateToStr(DateTimePicker1.Date)); end;
Free;
end;
//你这段代码创建了一个窗体
//窗体上面有时间控件?
//然后返回他们的时间?
//是不是这个意思
EndDate:= String(PEndDate);把这两句改成这样试一试!!!
可以在窗体上放个按钮
你的窗体是ShowModal的,你的
PStartDate:= Pchar(DateToStr(DateTimePicker1.Date));
PEndDate:= Pchar(DateToStr(DateTimePicker1.Date));
语句,在窗体关闭了以后再执行,当然访问不到这个数据了。
1.我要返回两个人工指定的日期参数;
2.在如下代码中,同样是ShowModal的,返回参数是没有问题的
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
function GetDate(var PStartDate,PEndDate: Pchar): Boolean;
{ Public declarations }
end;var
Form1: TForm1;implementation
uses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
PDate1,PDate2: Pchar;
Date1Str,Date2Str: String;
begin
GetDate(PDate1,PDate2);
Date1Str:= PDate1;
Date2Str:= PDate2;
showmessage(Date1Str+','+date2Str);
end;function TForm1.GetDate(
var PStartDate,PEndDate: Pchar):Boolean;
var
Form2: TForm2;
begin
Result:= True;
Form2 := TForm2.Create(Application);
with Form2 do
begin
if ShowModal = mrOK then
begin
PStartDate:= Pchar(DateToStr(DateTimePicker1.Date));
PEndDate:= Pchar(DateToStr(DateTimePicker2.Date));
end;
Free;
end;
end;end.
谢谢你的建议,但是问题没有出在类型转换上,而是出在参数的传递过程中(:
你运行后showmessage()有没有返回两个数据?