2012-05-07 12 views
-4

彼らが表示されていないと私は、この名前と構造タイプTImage聖霊降臨祭の10個の要素の配列を作成しました:私はTImageの配列を作成したが、私は、Delphiを使用してい

Form3.images[1..max] of TImage. 

は、私はそれを初期化してみましたこの方法:配列の各要素に:

for x := 1 to max do 
begin 
    images[x] := TImage.Create(Form3); 
    images[x].AutoSize := True; 
    images[x].Name := 'image' + IntToStr(x); 
    images[x].Visible := true; 
    images[x].Parent := Form3; 
end; 

その後、私は(TImageのForm3.a1と呼ばれる)別の変数の内容を入れてみました。

私は、これらの命令でこれを実行しようとしました:

for i := 1 to max do 
begin 
    Form3.Images[i]:=Form3.a1;    // (Form3.a1: TImage) <- this is visible 
end; 

(前の手順を使用している場合、私は知らない、行うには正しいことである) その後、私は、アレイの画像の位置変更:

//Form3.square:TShape 

x := Form3.square.Left; 
y := Form3.square.Top; 
Form3.Images[1].Top := y + 70; 
Form3.Images[1].Left := x + 60; 
... 
Form3.Images[1].Top := y + 10; 
Form3.Images[1].Left := x + 50; 

私は配列のイメージごとに異なる位置を設定しましたが、プログラムを実行すると配列のイメージは表示されません。 Form3.square.visible = falseを設定しようとしましたが、何も変わりません。

これは私が欲しいものです:

  • にのみ変更することが
  • を配置し、変数a1と配列imagesの変数間の同じ内容を持っている(配列の画像が見えるように、私はimages[x].Visible := true;を試みたが、それは動作しません。 )。

私は助けが必要です、私は他の詳細を与えることができます。 ありがとうございます。

+0

「Form3.a1」とは何ですか? –

+0

イメージリストではない場合、Form3.Listaとは何ですか? – TLama

答えて

3

コントロールの位置を忘れることはありません。 LeftおよびTop。これは好ましくはSetBoundsを呼び出すことによって行われる。また、寸法は指定されていませんが、それはAutoSizeプロパティで処理されます(ただし、表示には必要ありません)。

+0

ありがとう!と私はポジションを設定すると言って忘れてしまったので、申し訳ありません!画像の位置は、別のオブジェクト(形状)と同じです。私はshape.visible = falseを入れてイメージがその下にあるかどうかを確認しようとしましたが、イメージを見ることができませんでした...( – Black8AC

1

images配列の画像の位置を設定した場合(te other answerのコメントに記載されているように)、最初のコードは正常に動作するはずです。

しかし次のことを確認します。

  • は、イメージリストForm3.ListaセットのWidthHeightプロパティはありますか?それらを変更すると、ImageListがクリアされることに注意してください。
  • Form3変数が指しているのと同じTForm3インスタンスを確認してください。 (あなたは、とにかくそのグローバルフォーム変数を使用しないでください!)

さて、あなたは別のものからイメージをコピーし、前記コードの第二の部分について:

  • a1です(ローカル)として変数宣言しましたあなたは質問の途中に書きましたか?次にForm3.a1(これはプライベートフィールドTForm3です)とa1(変数)は同じではありません!
  • Form3.a1からImages[i]にコピーしています。それ以外の方法はありませんか?
  • これが本当に必要な場合:Form3.a1は空ではありますか?

あり私は考えることができる2つの以上の可能性がありますが、両方は例外が発生しますので、私はこれらのケースではありません想像:Form3.Listaがないか、または十分でない画像を保持していない

  • イメージリスト、
  • 画像Form3.a1は、ビットマップは保持しませんが、gif、jpeg、または他のグラフィックタイプを保持します。
+0

ありがとうありがとう。 – Black8AC

+0

しかし、いくつかの問題があります:私はしませんでした変数は1つしかなく、Form3.a1です。私はすでに述べたようにビットマップを持っていますが、イメージ配列を既に持っていればImageListを作成する必要がありますか? – Black8AC

+1

Form3 .Lista'は、 'GetBitmap'を呼び出すので、' TImageList'です。 'Form3.Lista'とは何ですか? – NGLN

関連する問題