我有很多个按钮 点击不同的按钮将打开不同的Frame 现在想写一个公共函数 但是总是报错//
procedure TFrmMain.PanelShowFrame(ShowFrame:TFrame);
var
MyFrame:TFrame;
begin
MyFrame:=ShowFrame.Create(Application);
MyFrame.Parent:=RightPanel;
MyFrame.Left:=0;
MyFrame.Top:=0;
MyFrame.Show;
end;报错信息
[Error] Main.pas(48): Incompatible types: 'TFrame' and 'Class reference'如果将函数改成
procedure TFrmMain.PanelShowFrame(ShowFrame:TFrameClass);
就会报 [Error] Main.pas(25): Undeclared identifier: 'TFrameClass'望高手解决
procedure TFrmMain.PanelShowFrame(ShowFrame:TFrame);
var
MyFrame:TFrame;
begin
MyFrame:=ShowFrame.Create(Application);
MyFrame.Parent:=RightPanel;
MyFrame.Left:=0;
MyFrame.Top:=0;
MyFrame.Show;
end;报错信息
[Error] Main.pas(48): Incompatible types: 'TFrame' and 'Class reference'如果将函数改成
procedure TFrmMain.PanelShowFrame(ShowFrame:TFrameClass);
就会报 [Error] Main.pas(25): Undeclared identifier: 'TFrameClass'望高手解决
改成:
MyFrame:=TShowFrame.Create(Application);
Type
//先定义
TFrameClass=class of TFrame//定义后才可以使用
//没定义就使用肯定会报Undeclared identifier: 'TFrameClass'啊!
procedure TFrmMain.PanelShowFrame(ShowFrame:TFrameClass);
var
MyFrame:TFrame;
begin
MyFrame:=ShowFrame.Create(Application);
MyFrame.Parent:=RightPanel;
MyFrame.Left:=0;
MyFrame.Top:=0;
MyFrame.Show;
end;