こんにちは。
いまいちCreatの使い方がわかりません。
Type
TMyPanel = class(Tpanel)
MyImage =Timage;
private
property
・・・・・
end;
TMainForm = class(Tform)
・・・・
end;
var
mainform:Tmainform;
Mypanel:TMypanel
procedure mainform.creat(....)
begin
MyPanel:=TMypanel.creat(mainform);
なんて書くとエラーやら、なんやらで思うように動きません。
こちらとしてはmainformにMyPanelを表示させたいのですが、何をやってもエラーで、エラーが消えたと思えば、やはり表示されません。
いったいどうすれば表示できるよになるのでしょうか。
それから、Class TMypanelのPublishedにTimage型の変数を宣言しているのはパネルの上にMyImageを置きたいからです。
当然のことながら、mainformに直接TPanelとTImageをおけばそれで解決なのですが、コードをより美しく、またわかりやすく、するためにこんなことをしています。
また、オリジナルのPropertyもTMyPanelのほうに付け加えたいですし…。
そんなこんなで、どうにも僕には力量不足です。
>上手に使いこなすには。
も何も...
上のコードでは間違いなくエラーがでるでしょう.
(1) まず,TPanelを使用するにはusesにExtCtrlsが必要です.
(2) Mypanel:TMypanel は最後に「;」がありません.
(3) procedure mainform.creat(....) は procedure Tmainformでしょう.
(4) MyPanel:=TMypanel.creat(mainform); はcreatではなく,createで,
最後に「e」がありません.
孤児はドコに行けばいいの? 親を探さなきゃ…
type
TMyImage = class(TImage)
private
public
end;
TMyPanel = class(TPanel)
private
FMyImage: TMyImage;
published
property Images: TMyImage read FMyImage write FMyImage;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
TMainForm = class(TForm)
........
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
MainForm: TMainForm;
MyPanel : TMyPanel;
implementation
{$R *.dfm}
constructor TMyPanel.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FMyImage := TMyImage.Create(Self);
FMyImage.Parent := Self; // 養子縁組
end;
destructor TMyPanel.Destroy;
begin
FMyImage := nil;
inherited destroy;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
MyPanel := TMyPanel.Create(Self);
MyPanel.Parent := MainForm; // 養子縁組
MyPanel.Images.Picture.LoadFromFile('test.bmp');
end;
すいませんねぇ、コピペじゃないんで手書きはつらいです。
みなしごさんありがとうございます。
コードが参考になりました。
ツイート | ![]() |