お世話になります。
type
TmyColorBOX=class(TcolorBOX)
protected
procedure CreatMENU();
public
constructor creat(Tobjct);override;
end;
Tmainform=class(Tform)
ColorBOX1:TcolorBOX;
end;
var
MycolorBOX:TmyColorBOX
mainform:Tmainform;
procedure Tmainform.creat(
begin
Mycolorbox:=TmyColorBOX.creat(self);
ColorBOX1.items:=Mycolorbox.items;
end;
constructor TmyColorBOX.creat
begin
self.CreatMENU;
end;
Procedure TmyColorBOX.CreatMENU()
begin
AddItem('OrgColor',$00FDFDFD);
end;
ようするにカラーボックスのアイテムをフォームに貼り付けてあるカラーボックスにTmyColorBOXのアイテムを代入したいのですが、エラーがでるのです。
「親ウィンドウを持っていない」とかなんやら。(コンパイルはできますが、実行ができません)
もちろん、フォームに貼り付けたカラーボックスに
mainform Tmainform.creat
bgin
colorbox1.addItem('OrgColor',$00FDFDFD)
end;
とやればエラーはま逃れるのですが・・・。
僕がTstringsを使おうとうるといっつもエラーになるのでタイトルこんなのにしました。質問の内容はTstringsとは関連するだけですが・・・。関係ないかも?
それにTstrings.creatをすると警告がなりますし・・・。
何か基本的なことを教えてくれるようなサイトなどあれば教えてください。
まず、やりたいことを箇条書きしてください。
それから、タイプミスが多くて、なにが問題なのか分かりづらいです。
ちゃんとコードエディタからコピペしてください。
procedure Tmainform.creat(
begin
Mycolorbox:=TmyColorBOX.creat(self);
Mycolorbox.Parent := Self; //追加
親子問題に口出しせんでもらおう(笑)
とりあえずコンパイルっていうのは文法さえ間違っていなければコンパイルできます。つまりエラー云々とは別問題なんです。
TObjectを勉強してください。
それとソース出す場合は手書きはだめですよ。
Tstrings型は抽象型ですから、そのまま扱うことはできません。
派生した、TStringListなどを使います。
すいません。解答が遅いついでに自己解決で。
とにかくみなさん貴重なお時間をありがおうございました。
ツイート | ![]() |