用delphi写的函数,一大堆放在.pas文件中,如何不用一个一个改就可以用呢?(100分)

  • 主题发起人 主题发起人 socool_100
  • 开始时间 开始时间
S

socool_100

Unregistered / Unconfirmed
GUEST, unregistred user!
用delphi写的函数,一大堆放在.pas文件中,如何不用一个一个改就可以用呢?
 
楼主,能把您的描述再写的清晰点嘛?
 
你要改什么,直接USE单元就用啊。不明白。
 
可以,象下面这样,必须先声明一下:
unit UN_TDprint;
interface
uses
Printers,Windows, Messages, SysUtils, Variants, Classes, Graphics, Dialogs, Controls,forms;
//取得字符的高度
function CharHeight: Word;
implementation
//取得字符的高度
function CharHeight: Word;
var
Metrics: TTextMetric;
begin
GetTextMetrics(Printer.Canvas.Handle, Metrics);
Result := Metrics.tmHeight;
end;

end.
 
unit Commonfile;
interface
uses
Windows,Classes, Forms,Math,DBClient;
procedure OpenForm(FormClass: TFormClass;
var fm;
AOwner: TComponent);//建一个窗体的函数(FormClass:是类,fm是窗体变量,AOwner是所有者)
function SetBitvalue(yvalue:integer;iBit:integer;bitvalue:Byte):Integer;
function GetBitvalue(value:integer;iBit:integer):Integer;
procedure ForClientDataSetDel(AClientDataSet:TClientDataSet);
implementation
//////////////////begin
按类新建窗体////////////////
procedure OpenForm(FormClass: TFormClass;
var fm;
AOwner: TComponent);
var
i: integer;
Child: TForm;
begin
for i := 0 to Screen.FormCount - 1do
if Screen.Forms.ClassType = FormClass then
begin
Child := Screen.Forms;
if Child.WindowState=wsMaximized then
ShowWindow(Child.Handle,SW_SHOW) //如果该窗体处于最大化就击活它就可以了
else
ShowWindow(Child.Handle,SW_RESTORE);//还原该窗体
if (not Child.Visible) then
Child.Visible := True;
Child.BringToFront;
Child.Setfocus;
TForm(fm) := Child;
exit;
end;
Child := TForm(FormClass.NewInstance);
TForm(fm) := Child;
Child.Create(AOwner);
end.
////以上是个.pas单元在delphi中可以直接用,那我不重写可以在CBuilder中用吗?
 
如果是你实现的函数名称变了,需要替换原来的调用名称,那么很简单.选择在多文件中查找/替换(IDE不好用的话用UltraEdit).
另外楼主真的应改把问题说清楚
 
可笑的很,问题都不说清楚,那问个屁啊!!!
 
大家好,不好意思,
我是想用Commonfile.pas单元中的procedure OpenForm(FormClass: TFormClass;
var fm;
AOwner: TComponent);
这个过程,如何用呢?我那Commonfile.pas单元在Delphi中是可以用的,我如何在CBuilder中用那个函数呢?在不重写的情况下,还有如何调用呢?谢谢大家关注。
 
作成DLL或者delphi包的形式,然后BCB调用借口!
 
源码改成C(++)就可以啦。
 
肯定要转换的啦,两种语言吗,
同意“网事如风”的。
 
假如你的單元名是: myfuc.pas,入邊有個fun1
你可以這樣使用涵數的...
myfun.fun1
 
牛头不对马嘴的问题
要不做成 .dll
要不重写
 
你要在pascal的函数单元把那些函数前向声明,也就是在interface下面把那些函数原形声明一下,比如:你的单元有函数A和过程B,要这样:
............
............
interface
function A(x:double):double;
procedure B();
......................
.....................
function A(x:double):double;
begin
//your code
end;

procedure B();
begin
//your code
end;
然后,在C++Builder中执行:Project / Add To Project...,然后,File / use head file...,C++builder会自动把你的文件转换成后缀为hpp的文件并且在C++Builder的单元包含它,不用手工修改。
 
直接就能用了,不用任何的修改。
在添加新的unit时选择.pas文件就可以了。
 
非常感谢帮助支持的朋友,特别是最后两位,问题解决了,谢谢,最后两位说的都不错。
 
谢谢,大家辛苦了。
 
不知道为什么我老是结不了帖啊。
 
后退
顶部