為主視窗建立兩個Frame,兩個Frame之間可以相互參考嗎?
uj5u.com熱心網友回復:
Frame也是以單位為基礎,兩個Frame之間可以相互參考的,如同兩個單元之間參考一樣,就可以了。uj5u.com熱心網友回復:
一個interface部分uses 一個implementation部分usesuj5u.com熱心網友回復:
兩位,好像不行,Frame不是視窗,又不是普通單元,好像永遠屬于主視窗。拜托詳細一點。
uj5u.com熱心網友回復:
當然可以,但是根據你的描述,你可能是兩個實體之間相互訪問,這個只要參考對方的實體進行訪問就可以了,沒什么難度uj5u.com熱心網友回復:
如果如此簡單我就不會在這里請教了。
uj5u.com熱心網友回復:
Frame主要為了嵌套的,不能相互嵌套,但是實體可以相互訪問uj5u.com熱心網友回復:
實際上,兩個為主表單建立分Frame,相互之間可以在uses 中參考,但相互訪問好像不可以,是嗎?
uj5u.com熱心網友回復:
確實不復雜,如下面的代碼所示,個自定義對方的變數,在訪問的時候通過強制型別轉換完成訪問:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TFrame2 = class(TFrame)
Edit1: TEdit;
Memo1: TMemo;
private
FFrame3: TFrame;
procedure visiteForm3;
{ Private declarations }
public
property Frame3: TFrame read FFrame3 write FFrame3;
{ Public declarations }
end;
implementation
uses Unit3;
{$R *.dfm}
procedure TFrame2.visiteForm3;
begin
TFRame3(Frame3).CheckBox1.Checked:=true;
end;
end.
-------------另一個Frame
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TFrame3 = class(TFrame)
CheckBox1: TCheckBox;
private
FFrame2: TFrame;
{ Private declarations }
public
procedure VisiteFrame2;
property Frame2: TFrame read FFrame2 write FFrame2;
{ Public declarations }
end;
implementation
uses Unit2;
{$R *.dfm}
procedure TFrame3.VisiteFrame2;
begin
TFrame2(Frame2).Edit1.Text:='aaaaa';
end;
end.
------主單元的寫法
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Unit3, Unit2;
type
TForm1 = class(TForm)
Frame21: TFrame2;
Frame31: TFrame3;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Frame21.Frame3:= Frame31;
Frame31.Frame2:= Frame21;
end;
end.
uj5u.com熱心網友回復:
按上面的代碼,我的意思是Unit2、Unit3之間的訪問。uj5u.com熱心網友回復:
按上面的代碼,我的意思是Unit2、Unit3之間的訪問。
難以理解你的意思,Unit2、Unit3之間的訪問最終要落實到實體的訪問,我上面的代碼就是相互訪問對方的實體,如果不訪問實體,你想訪問什么呢?你可以舉個例子
uj5u.com熱心網友回復:
按上面的代碼,我的意思是Unit2、Unit3之間的訪問。
難以理解你的意思,Unit2、Unit3之間的訪問最終要落實到實體的訪問,我上面的代碼就是相互訪問對方的實體,如果不訪問實體,你想訪問什么呢?你可以舉個例子
你的這句話“”Unit2、Unit3之間的訪問最終要落實到實體的訪問“”說到點子上了。
uj5u.com熱心網友回復:
按上面的代碼,我的意思是Unit2、Unit3之間的訪問。
難以理解你的意思,Unit2、Unit3之間的訪問最終要落實到實體的訪問,我上面的代碼就是相互訪問對方的實體,如果不訪問實體,你想訪問什么呢?你可以舉個例子
你的這句話“”Unit2、Unit3之間的訪問最終要落實到實體的訪問“”說到點子上了。
那不就結了,
procedure TForm1.FormCreate(Sender: TObject);
begin
Frame21.Frame3:= Frame31;
Frame31.Frame2:= Frame21;
end;
這段代碼就是相互參考對方的實體
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/46072.html
標籤:語言基礎/算法/系統設計
