关于Form问题(100分)

  • 主题发起人 主题发起人 bearyan
  • 开始时间 开始时间
B

bearyan

Unregistered / Unconfirmed
GUEST, unregistred user!
各位,我想请教一个问题,我以下的程序段总是提示“形参和实参不一致”的错误,请问要如何修改?
我是Delphi初学者,请详细一点描述问题所在,谢谢!!!
以下是程序代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
Type
MyForm = Class(TForm)
MyButton : TButton;
end;

procedure NewWindowsOpen(var MainWindow : MyForm ;
SubWindow : MyForm ;
RelativeLeft : integer ;
RelativeTop : integer);
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
uses Unit2;
procedure NewWindowsOpen(var MainWindow : MyForm ;
SubWindow : MyForm ;
RelativeLeft : integer ;
RelativeTop : integer);
begin
SubWindow.Left := MainWindow.Left + RelativeLeft;
SubWindow.Top := MainWindow.Top + RelativeTop;
SubWindow.Show;
MainWindow.AlphaBlendValue:=150;
end;

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
NewWindowsOpen(Form1,Form2,20,50);
end;

end.
 
procedure TForm1.Button1Click(Sender: TObject);
begin
NewWindowsOpen(Form1,Form2,20,50);
//你调用FORM1是TFORM类型的,就是说实参数是TFORM类型的,但是声明时却是MYFORM类型的,所以提示形参和实参类型不一致!
end;
 
混分,哈哈。
 
本身就最好不要把单前主现成的Form1代如(var MainWindow : MyForm)中!
 
对于1楼的回答,我早就试过了,实际定义为TFrom是不可以的~~~!!
难道你试过能搞定???
对于2楼,希望再没有此类的回复;
对于3楼,能讲详细一点吗??我对此不太熟悉,能提供解决的方案吗???
 
你把形参和实参类型弄一致就行了,提示的太详细了,太简单了。
 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

Type
MyForm = Class(TForm)
MyButton : TButton;
end;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

procedure NewWindowsOpen(var MainWindow : TForm ;
SubWindow : TForm ;
RelativeLeft : integer ;
RelativeTop : integer);
var
Form1: TForm1;
implementation
uses Unit2;
procedure NewWindowsOpen(var MainWindow : TForm ;
SubWindow : TForm ;
RelativeLeft : integer ;
RelativeTop : integer);
begin
SubWindow.Left := MainWindow.Left + RelativeLeft;
SubWindow.Top := MainWindow.Top + RelativeTop;
SubWindow.Show;
MainWindow.AlphaBlendValue:=150;
end;

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
NewWindowsOpen(TForm(Form1), Form2, 20, 50);
end;

end.
 
procedure NewWindowsOpen(MainWindow : TForm ;
SubWindow : TForm ;
RelativeLeft : integer ;
RelativeTop : integer);
begin
SubWindow.Left := MainWindow.Left + RelativeLeft;
SubWindow.Top := MainWindow.Top + RelativeTop;
SubWindow.Show;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
NewWindowsOpen(TForm(Form1), Form2, 20, 50);
Form1{或其他Form}.AlphaBlendValue:=150;
end;
因为Form编译后是指针
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
686
import
I
I
回复
0
查看
515
import
I
I
回复
0
查看
709
import
I
I
回复
0
查看
673
import
I
后退
顶部