폼 쇼를 할때
동적으로 Timage를 바둑판처럼 9개를 그렸습니다.
tag값은 0부터 8까지 증가를 시켜 놓았구요.
동적 생성 이후에
특정 이벤트에서 9개의 동적 이미지중 특정 이미지의 속성값
(예를 들어 색상변경 이나 이미지 변경) 을 변경 할 수 있는 방법
없나요?
즉 tag값이 6인 Timage의 Picture 의 값을 바꿀수 있는 방법 같은 것입니다.
참고로 각 Timage는 TobjectList에 add 해놓았습니다.
밑에는 대략적인 소스 입니다.
// d_rage는 전역 변수 (:Timage)
// ragelist는 전역 변수 ( : TObjectImage)
with d_rage do
begin
for i := 0 to 2 do
begin
d_rage := Timage.Create(self);
d_rage.Parent := Panel1;
//가로 147 세로 220
Width := 147;
Height := 220;
Top := i*221;
Left := 0;
Tag := inc_com;
f_ragelist.Add(d_rage);
OnMouseUp := RangeMouseUp;
inc(inc_com);
for y := 0 to 1 do
begin
d_rage := Timage.Create(self);
d_rage.Parent := Panel1;
Width := 147;
Height := 220;
Top := i*221;
Left := (y+1)*148;
Tag := inc_com;
f_ragelist.Add(d_rage);
OnMouseUp := RangeMouseUp;
inc(inc_com);
end;
end;
으로 생성 시켜 놓았습니다.
아 그리고 참고로 동적으로 생성되는 이미지가 이것 말고도 있어서..
TImage(Componts[x]).picture.LoadFromFile('이미지') 이런식의 표현은
안될것 같네요..(다르게 생성한 동적 이미지 마저 영향을 미칠것 같아서요.)
위 방법으로도 할수 있습니다.
Form1.Compoents[x] 가 아니라
Panel1.Components[x]로 하면 panel1을 parent로 갖는 애들만 찾게 됩니다.
만약에 panel1에 다른 이미지도 있다면 안되겠죠..
다른 방법은
objList1Image : Array[0..9] of TImage;
입니다.
저렇게 배열로 선언해서
objListImage[6].Picture.Loadfromfile
이런식으로 사용할수 있습니다.
아 실수 했습니다.
윗부분에 components가 parent에 따른다고 했는데..
다시 보니 owner군요..
create할때 d_rage := Timage.Create(Panel1);
d_rage.Parent := Panel1;
이래 되겠군여..