//전역변수로 선언
boardName : Array[0..20] of string;
//폼의 onCreate에서 파일을 읽어 boardName을 초기화 시킨다음 스트링 그리드에 그 이미지를 뿌려주는 역활을 하려고 했는데요 다음과 같이 해 주었더니 제 생각에는 영역이 셀하나하나씩 잡힐테니까 배열처럼 생각해서 다음과 같이 해 보았더니 같은 모양이 계속 생겼습니다.
어떻게 하면 될까요?
procedure TCongif_form.AdvStringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
ARect : TRect;
i : integer;
begin
for i := 0 to 21 do
begin
ARect := AdvStringGrid1.CellRect (1,i+1);
if boardName[i] = 'cpu' then
AdvStringGrid1.Canvas.StretchDraw (ARect,bcpu)
else if boardName[i] = 'e1' then
AdvStringGrid1.Canvas.StretchDraw (ARect,be1)
else if boardName[i] = 'power' then
AdvStringGrid1.Canvas.StretchDraw (ARect,bpower)
else if boardName[i] = 'empty' then
AdvStringGrid1.Canvas.StretchDraw (ARect,bempty)
else if boardName[i] = 'fan' then
AdvStringGrid1.Canvas.StretchDraw (ARect,bfan)
else if boardName[i] = 'mfdsp' then
AdvStringGrid1.Canvas.StretchDraw (ARect,bmfdsp)
else if boardName[i] = 'ss7' then
AdvStringGrid1.Canvas.StretchDraw (ARect,bss7)
end;
> //전역변수로 선언
> boardName : Array[0..20] of string;
> //폼의 onCreate에서 파일을 읽어 boardName을 초기화 시킨다음 스트링 그리드에 그 이미지를 뿌려주는 역활을 하려고 했는데요 다음과 같이 해 주었더니 제 생각에는 영역이 셀하나하나씩 잡힐테니까 배열처럼 생각해서 다음과 같이 해 보았더니 같은 모양이 계속 생겼습니다.
> 어떻게 하면 될까요?
>
> procedure TCongif_form.AdvStringGrid1DrawCell(Sender: TObject; ACol,
> ARow: Integer; Rect: TRect; State: TGridDrawState);
> var
>
> ARect : TRect;
> i : integer;
> begin
> for i := 0 to 21 do
> begin
> ARect := AdvStringGrid1.CellRect (1,i+1);
> if boardName[i] = 'cpu' then
> AdvStringGrid1.Canvas.StretchDraw (ARect,bcpu)
> else if boardName[i] = 'e1' then
> AdvStringGrid1.Canvas.StretchDraw (ARect,be1)
> else if boardName[i] = 'power' then
> AdvStringGrid1.Canvas.StretchDraw (ARect,bpower)
> else if boardName[i] = 'empty' then
> AdvStringGrid1.Canvas.StretchDraw (ARect,bempty)
> else if boardName[i] = 'fan' then
> AdvStringGrid1.Canvas.StretchDraw (ARect,bfan)
> else if boardName[i] = 'mfdsp' then
> AdvStringGrid1.Canvas.StretchDraw (ARect,bmfdsp)
> else if boardName[i] = 'ss7' then
> AdvStringGrid1.Canvas.StretchDraw (ARect,bss7)
> end;
drawcell procedure 의 parameter를 활용하면,
procedure TCongif_form.AdvStringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
i : integer;
begin
if ACol = 1 then //그림 그릴 컬럼을 지정
for i := 0 to 21 do
begin
if ARow = ( i+1 ) then //그림 그릴 행을 지정
if boardName[i] = 'cpu' then
AdvStringGrid1.Canvas.StretchDraw (Rect,bcpu)
else if boardName[i] = 'e1' then
AdvStringGrid1.Canvas.StretchDraw (Rect,be1)
else if boardName[i] = 'power' then
AdvStringGrid1.Canvas.StretchDraw (Rect,bpower)
else if boardName[i] = 'empty' then
AdvStringGrid1.Canvas.StretchDraw (Rect,bempty)
else if boardName[i] = 'fan' then
AdvStringGrid1.Canvas.StretchDraw (Rect,bfan)
else if boardName[i] = 'mfdsp' then
AdvStringGrid1.Canvas.StretchDraw (Rect,bmfdsp)
else if boardName[i] = 'ss7' then
AdvStringGrid1.Canvas.StretchDraw (Rect,bss7)
end;
테스트는 못했습니다..-_-;;;
잘되기를 빕니다. 좋은 주말 계획하세요.