안녕하세요!!
이제 막 델파이를 시작하는 초본데요^^;;
스트링 그리드에서 선택된 셀을 삭제하려는 메소드인데
전체 삭제가 되네염?
잘못된 부분 지적좀 해주시겠어요?, 많은 답변부탁드립니다!!
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;
for i := 0 to StringGrid1.ColCount - 1 do
StringGrid1.Cells[i, StringGrid1.Row] := '';
StringGrid1.RemoveRows(StringGrid1.Row, 1);
위에 for문은 RemoveRows는 그 셀만 삭제 할뿐이지 셀의 데이터는 그대로 남아 있기 때문에 그 셀의 데이터를 공백으로 먼저 해주고..셀을 삭제하는 루틴입니다.