아래와 같은 함수를 form1에 생성했다고 하면은
다른 form2,form3에서 저 함수를 불러다가 써야 합니다.
근데 스트링그리드가 form2,form3에 있습니다.
이럴경우 어떻게 사용할수 있을까요?
제 생각에는 저것을 사용하려면 stringgrid1이 부분이 form2.stringgrid1, form3.stringgrid1이렇게 바껴야 할것 같은데요...
바꾸는 방법을 모르겠습니다.
function string_wn;
var
F:textfile;
i,j:integer;
begin
AssignFile(F, 'c:btest.dat');
ReWrite(F);
try
for i := 1 to stringgrid1.RowCount - 1 do begin
for j := 1 to stringgrid1.ColCount - 1 do begin
Write(F,StringGrid1.Cells[j,i],',');
end;
Writeln(F,'');
end;
finally
CloseFile(F);
end;
end;
> 아래와 같은 함수를 form1에 생성했다고 하면은
> 다른 form2,form3에서 저 함수를 불러다가 써야 합니다.
> 근데 스트링그리드가 form2,form3에 있습니다.
> 이럴경우 어떻게 사용할수 있을까요?
>
> 제 생각에는 저것을 사용하려면 stringgrid1이 부분이 form2.stringgrid1, form3.stringgrid1이렇게 바껴야 할것 같은데요...
> 바꾸는 방법을 모르겠습니다.
> function string_wn;
> var
> F:textfile;
> i,j:integer;
> begin
> AssignFile(F, 'c:btest.dat');
> ReWrite(F);
> try
> for i := 1 to stringgrid1.RowCount - 1 do begin
> for j := 1 to stringgrid1.ColCount - 1 do begin
> Write(F,StringGrid1.Cells[j,i],',');
> end;
> Writeln(F,'');
> end;
> finally
> CloseFile(F);
> end;
> end;
>
내가 보기에는 함수보다는 공통유닛에다가 프로시져로 만들어서 사용하면 될 것같네요.
먼저 stringgrid1 -> sgrid로 전부 바꿔야 합니다.
procedure string_wn(sgrid : TStringgrid);
var
F:textfile;
i,j:integer;
begin
AssignFile(F, 'c:btest.dat');
ReWrite(F);
try
for i := 1 to sgrid.RowCount - 1 do begin
for j := 1 to sgrid.ColCount - 1 do begin
Write(F,sgrid.Cells[j,i],',');
end;
Writeln(F,'');
end;
finally
CloseFile(F);
end;
end;
이렇게 만들고 나서 호출하는 폼이 form2이고 그리드 이름이 agrid라면 아래와 같이
사용하면 될 것 같아요.
string_wn(agrid);
암튼 해보시고 안되면 다시 질문해보시고, 즐푸하세요. *^^*