Q&A

  • 스트링 그리드에서 삭제를 할려구 그러는 데요.....
안녕하세요!!
이제 막 델파이를 시작하는 초본데요^^;;
스트링 그리드에서 선택된 셀을 삭제하려는 메소드인데
전체 삭제가 되네염?
잘못된 부분 지적좀 해주시겠어요?, 많은 답변부탁드립니다!!

procedure TForm1.SpeedButton2Click(Sender: TObject);
  var
     i, count: integer;
begin
     if count<=1 then begin
       sg.cells[0,1]:= '';
       sg.cells[1,1]:= '';
       sg.cells[2,1]:= '';
       sg.cells[3,1]:= '';
       sg.cells[4,1]:= '';
       sg.cells[5,1]:= '';
       count:=1;
     end
     else begin
         for i:= sg.row to count-1 do begin
             sg.cells[0,i]:=sg.cells[0, i+1];
             sg.cells[1,i]:=sg.cells[1, i+1];
             sg.cells[2,i]:=sg.cells[2, i+1];
             sg.cells[3,i]:=sg.cells[3, i+1];
             sg.cells[4,i]:=sg.cells[4, i+1];
             sg.cells[5,i]:=sg.cells[5, i+1];
         end;
     end;
end;
2  COMMENTS
  • Profile
    ㉿ 이영범 2002.11.28 19:19
    스트링 그리드의 Row삭제 함수(RemoveRows)가 있습니다.

        for i := 0 to StringGrid1.ColCount - 1 do
          StringGrid1.Cells[i, StringGrid1.Row] := '';

        StringGrid1.RemoveRows(StringGrid1.Row, 1);

    위에 for문은 RemoveRows는 그 셀만 삭제 할뿐이지 셀의 데이터는 그대로 남아 있기 때문에 그 셀의 데이터를 공백으로 먼저 해주고..셀을 삭제하는 루틴입니다.


  • Profile
    김정애 2002.11.29 02:28
    감사합니다...
    정말 많은 도움이 되었습니다.... ^^*