Visibleプロパティは、設計時に無視されます。表示に関するすべての情報は、フレームのdfmにのみ保存されます。フレームを使用するフォームでインスタンスの可視性をtrueに設定しても、フォームのdfmには保存されません。手動で追加しても効果はありません。無視され、次回の保存時に削除されます。
明確化した後、たとえばプロパティカラーで表示できます。デザイン時にclBlackでフレームの色を作成し、2つのフレームを使用したフォームで、色をclRedとclBlueに設定しました。
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TCallOnCreate=Procedure(Sender:TObject) of object;
TFrame7 = class(TFrame)
Button1: TButton;
Procedure Loaded;override;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
Public Constructor Create(AOwner:TComponent);Override;
end;
implementation
uses RTTI;
{$R *.dfm}
{ TFrame7 }
constructor TFrame7.Create(AOwner: TComponent);
var
ToCall : TCallOnCreate;
Routine : TMethod;
begin
inherited;
Showmessage('Created ' + IntToStr(Color));
Routine.Data := Pointer(AOwner);
Routine.Code := AOwner.MethodAddress('InfoOnFrameCreate');
if Assigned(Routine.Code) then
begin
ToCall:= TCallOnCreate(Routine);
ToCall(Self);
end;
end;
procedure TFrame7.Loaded;
begin
inherited;
Showmessage('Loaded ' + IntToStr(Color));
end;
end.
次の例では、次にフレームが使用されるフォームにコードを実装する方法を示します。
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Unit7;
type
TForm6 = class(TForm)
Frame71: TFrame7;
Procedure InfoOnFrameCreate(Sender:TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
{ TForm6 }
procedure TForm6.InfoOnFrameCreate(Sender: TObject);
begin
Showmessage('Frame Created');
end;
end.