|
BlackNetwork 님이 쓰신 글 :
: BlackNetwork 님이 쓰신 글 :
: : 안녕 하세요~
: : 제가 그리드 범위를 선택을 하고 삭제 하는거 구연 하려고 하는데.....혹시나 하고
: : 범위를 선택 하고 삭제 하는게 있는지~_~a궁금 해서......올려 봐요~_~a
: : 혹시 범위 삭제를 하는 방법을 알고 계신분은.ㅡ _-)//무한 답글..........
: : 그리드는 AdvStringGrid 쓰고 있습니다.
:
: 다들 답변에 감사 합니다.....그런데 그 내용들은 다 알고 있는 내용 이고
: 드레그 해서 지우게 돼면 하나 하나 체크가 힘들어요-ㅅ-)
: 지금 TGridRect 구조체를 써서 드레그를 한거 지우게 만들었습니다- _-
: 지울때 특정 문자를 체크 해야 하는데.....흠- _-);;
: 하나 하나는 지우는건 돼는데.ㅠ_ㅠ드레그는.....- _-
:
: RemoveRows(Rect.Top, (Rect.Bottom - Rect.Top)+1);
님의 질문의 정확한 요점을 파악하기가 힘드네요
님의 질문의 내용을 4가지 경우로 생각해 봅니다.
[경우1]
선택영역만 지운다는것은 의미가
Row전체를 삭제하는것이 아니라
해당row의 내용만 지우는(clear)것이라면
그렇다면 님께서 원하시는 것은 Remove가 아니라 Clear 인것 같네요
이경우는 ClearSelection();하면 선택영역의 text는 다 지워집니다.
선택영역 전체에서 특정 text가 있는지 판단하려면..
SelectedText()를 통해 하면 될것이지만 //
if( SelectedText().Pos("특정문자") >0) // 선택영역에 "특정문자"가 있음
[경우2]
만약 각각의 cell에 대해 해당 문자열이 있는지 판단하고
각각의 cell의 내용을 지워야 한다면
각각비교해서 각각지우는 방법말고 없을것 같네요
TAdvStringGrid 이 강력하지만 그정도까지 지원해주지는 않는것 같습니다.
[경우3]
전체 선택영역에서 특정문자를 체크하고 전체선택를 지우거나 , 말거나 한다면
SelectedText()해서 선택영역의 문자열를 가져와서 해당 특정문자를 찾아보고 있으면
RemoveRows 실행을 판단하면 되겠구요
//RemoveRows(Rect.Top, (Rect.Bottom - Rect.Top)+1);
[경우4]
만약 선택영역의 특정 문자를 체크 row 단위로 하고
row단위로 삭제하는것이라면
SelectedText()해서 선택영역의 문자열을 가져와서 개행문자(0x0d,0x0a)로 나누어서 체크하셔야 겠네요
이때는 삭제해야 하는 row가 있다면 RemoveRows(row_index, 1); 이렇게 한줄씩 지워야 겠지요
....................
|