Q&A

  • StringGrid / SelectCell 제발 답변좀 부탁....
stringGrid의 사용이 어렵네요.
제가 하고 싶은 것은 두개의 폼에서 Form1은 StringGrid를 사용하고 있습니다.
그리드 선택한 한라인 단위로 되도록 되어 있습니다.
라인 단위로 클릭을 하면 선택된 라인이 Form2의 Memo에서 Text로 뜨게끔 하고 싶은데..
Form1에서 선택된 라인을 Form으로 넘겨 주려면 어떻게 해야 하나요?
질문과 답변을 모두 찾아서 onSelectCell을 사용하라는 것을 알았는데 사용법을 잘 모르겠거든요. 제가 작성한 프로그램은 요렇습니다.

Form1에서는 대충 요렇게 했습니다.
procedure TForm1.StringGrid1Click(Sender: TObject);
begin
  Result1.show;
end;

Form2에서는
procedure TResult1.FormCreate(Sender: TObject);
var
i,j:integer;
aaa,sss : string;

begin
  for j := Form1.StringGrid1.Selection.Top to Form1.StringGrid1.Selection.Bottom do
   begin
   for i := Form1.StringGrid1.Selection.Left to Form1.StringGrid1.Selection.Right do
    begin
    aaa := Form1.StringGrid1.Cells[i,0];
    sss := Form1.StringGrid1.Cells[j,i];
    Memo1.Text := Memo1.Text + aaa + ' : ' + sss;
    Memo1.Text := Memo1.Text + #13#10;
  end;
end;

요렇게 했더니 다른라인을 클릭해도 첫번째 라인만 출력되네요.
부탁드립니다. 고수님들은 보고 웃으실지 모르지만 저는 무지 오랫동안 고민하고 있습니다.
1  COMMENTS
  • Profile
    Wind 2003.07.21 09:10

    procedure TResult1.FormCreate(Sender: TObject);
    var
       x, y: Integer;
       aaa: String;
    begin
         for y := Form1.StringGrid1.Selection.Top to Form1.StringGrid1.Selection.Bottom do
         begin
              aaa := '';
              for x := Form1.StringGrid1.Selection.Left to Form1.StringGrid1.Selection.Right do
                 aaa := aaa + ' : ' + Form1.StringGrid1.Cells[x,y];
              Memo1.Lines.add(aaa);
         end;
    end;




    >stringGrid의 사용이 어렵네요.
    >제가 하고 싶은 것은 두개의 폼에서 Form1은 StringGrid를 사용하고 있습니다.
    >그리드 선택한 한라인 단위로 되도록 되어 있습니다.
    >라인 단위로 클릭을 하면 선택된 라인이 Form2의 Memo에서 Text로 뜨게끔 하고 싶은데..
    >Form1에서 선택된 라인을 Form으로 넘겨 주려면 어떻게 해야 하나요?
    >질문과 답변을 모두 찾아서 onSelectCell을 사용하라는 것을 알았는데 사용법을 잘 모르겠거든요. 제가 작성한 프로그램은 요렇습니다.
    >
    >Form1에서는 대충 요렇게 했습니다.
    >procedure TForm1.StringGrid1Click(Sender: TObject);
    >begin
    >  Result1.show;
    >end;
    >
    >Form2에서는
    >procedure TResult1.FormCreate(Sender: TObject);
    >var
    >i,j:integer;
    >aaa,sss : string;
    >
    >begin
    >  for j := Form1.StringGrid1.Selection.Top to Form1.StringGrid1.Selection.Bottom do
    >   begin
    >   for i := Form1.StringGrid1.Selection.Left to Form1.StringGrid1.Selection.Right do
    >    begin
    >    aaa := Form1.StringGrid1.Cells[i,0];
    >    sss := Form1.StringGrid1.Cells[j,i];
    >    Memo1.Text := Memo1.Text + aaa + ' : ' + sss;
    >    Memo1.Text := Memo1.Text + #13#10;
    >  end;
    >end;
    >
    >요렇게 했더니 다른라인을 클릭해도 첫번째 라인만 출력되네요.
    >부탁드립니다. 고수님들은 보고 웃으실지 모르지만 저는 무지 오랫동안 고민하고 있습니다.