아래 크레브님께서 말씀하신 대로, 예전에 공개했던 ImpStringGrid는 업그레이드 계획이 없습니다.
그 컴포넌트가 세미나에서 발표할 목적으로 만들었던 비교적 간단한 샘플 컴포넌트이기 때문이기도 하고요.
또, 설계 목적이, 델파이/C++빌더의 기본 컴포넌트인 TStringGrid와의 개발 단계에서의 호환성을 위해 TStringGrid를 상속해서 썼기 때문에 기능 확장에도 한계가 있습니다. (TStringGrid는 상속을 별로 고려하지 않고 만들어져 있습니다)
C++빌더 6를 위한 데모 프로젝트는, 간단한 작업으로 만들 수 있습니다. 그냥 간단히 빈 프로젝트를 만들고 거기서 기본 폼 유닛을 제거한 후 배포된 압축파일 안에 있는 C++빌더 2006용의 데모 프로젝트에서 Unit1을 프로젝트에 추가하면 그걸로 땡입니다. 다시 말해 C++빌더 6와 2006 사이에 유닛의 호환성 문제는 없고 프로젝트 파일(bpr)만 바꾸면 된다는 얘기입니다.
프로퍼티의 이름의 변경은.. 물론 pd님께는 그 이름들이 더 적합하게 느껴지실 수 있겠지만... 설령 제가 이 컴포넌트를 업데이트할 계획이 있다고 해도, 프로퍼티의 이름을 바꾸게 될 가능성은 별로 없습니다. 왜냐하면 상당수의 개발자들이 이미 그 컴포넌트를 쓰고 있을 것이기 때문에, 업그레이드하면서 프로퍼티 이름을 바꿔버리면 그 분들이 곤란해지겠지요.
EditStyle이 다른 컴포넌트와 연동했으면 좋겠다는 문제는... 말씀드렸다시피 이 컴포넌트는 스트링그리드를 상속받은 넘인데요. 스트링그리드/디비그리드의 구현 방식 때문에 다른 컴포넌트를 연동하기는 거의 불가능합니다. 체크박스 정도만이 제가 추가한 건데, 소스를 보신 분들은 아시겠지만 약간의 꽁수, 편법으로 추가된 거죠. 콤보박스 속성..이나 라디오 버튼, 달력을 원하신 부분도 마찬가지입니다. 스트링그리드 자체의 한계 때문에 기능 추가가 안됩니다. 사실 그게 콤보박스와 비슷하게 보이긴 하지만 실제로는 콤보박스가 아니거든요. (제가 그렇게 만든 게 아닙니다 ^^;;)
액세스 바이올레이션 에러는 어떻게 해도 잘 발생이 안되네요.
만약 정상적인 개발 과정에서 그런 에러가 난다면, 적어도 그 문제에 대해서는 수정해서 올려드리겠습니다.
말씀드렸다시피 이 컴포넌트는 샘플로 만든 겁니다. 물론 기본 TStringGrid보다는 많이 강화되기는 했지만, 역시 샘플이기 때문에 장기적인 업그레이드를 전혀 고려하지도 않았고, 또 앞에서 말한 대로 TStringGrid와의 호환성을 우선했기 때문에 TStringGrid의 기본적인 한계는 그대로 가지고 있습니다.
말씀하신 기능들을 추가하자면 VCL의 그리드 클래스들에서 상속받는 것이 아니라 완전히 새로 만들어야만 가능하죠. 물론 그렇게 완전히 새로 만들어낼 수도 있겠지만... 상당히 많은 시간이 들어가는 데 비해 별 소득이 없습니다. 일단은 여러 좋은 상용 그리드 컴포넌트들이 판매되고 있기 때문에 굳이 그넘들과 경쟁할 넘을 만들 필요가 없다고 생각하거든요.
말씀하신 기능들을 다 추가하고 또 상상할 수 있는 온갖 기능들을 다 넣어서 엄청 좋은 그리드를 만들어도.. 뭐 그렇게 엄청난 공을 들여서 만들어서 무료로 공개하라.. 그러면 저 굶어죽으라는 얘기고, 그렇다고 팔아봐라.. 그러더라도 얼마나 팔릴지 모르겠고요. ^^;;
그럼...
pd 님이 쓰신 글 :
: 뭔가를하고싶은데 자꾸 이리저리 굴러다니다 결국 박지훈님의 자료까지 찾게되네요..
: ImpStringGrid를 보니까 몇가지 개선되어야할게있었습니다.
:
: 1. bcb6버전에서 데모를 실행할수없습니다.
: 6버전용으로 별도로 만들어주시면고맙겠습니다. 제가 초보라서.. ^^;
:
: 2. 컴포넌트팔레트의 컴포넌트가 로딩하면 사라집니다.
: 이유를 모르겠습니다.
:
: 아울러 제가 아래 썼던 필요사항이 충족되면 더좋겠습니다.
: 정렬같은건 오버로딩(오버라이딩인가?)시켜서 쓸수있으면 좋겠습니다.
:
:
: 3.
: 속성 명칭을 다음과같이 변경 하면좋겠습니다.
: ImpStringGrid.Columns.ColorBack
: ImpStringGrid.Columns.DataColorBackGround
:
: ImpStringGrid.Columns.ColorFore
: ImpStringGrid.Columns.DataColorForeGround
:
: ImpStringGrid.Alignment
: ImpStringGrid.DataAlignment
: 이유는 예컨데 컬러부분은 ImpStringGrid.FixedColor과
: ImpStringGrid.Color 두개로나뉩니다.
:
: 차라리 데이터부분과 헤더부분으로 구분해서 데이터부분에 해당하는부분은 앞에 Data라는 머릿글이 들어가면좋겠고
: 헤더부분은 Header라고 쓰면좋겠고
: 또 공통으로들어가는부분은 그냥 쓰면 좋겠다는 생각이듭니다.
:
:
: 4.
: EditStyle부분을 다른것과 연동가능한 화면이면좋겟네요
:
:
:
: 5.
: Error : Access violation at address 04DB4F82 in module 'ImpGrid.bpl'. Read of address 00000008.
: ImpStringGrid.Align과 기타 몇개가있었는데 다는 모르겠고
: 몇개가 오브젝트인스팩터에서 선택시 오류가납니다.
: 정확하게 어떨때 나는 현상인지는 모르겠습니다.
:
: 6. 체크박스는 앞이나뒤에 글자가 들어갈수있었음좋겠습니다.
: 체크박스 속성을 그대로썼음좋겠음
:
: 7. 콤보박스형태의 리스트들은 콤보박스처럼 실행하면 콤보박스를 그대로 쓸수있었음좋겠네요
: 콤보박스속성을 그대로 쓸수있었음좋겠음.
:
: 8. 셀의 사이즈는 리스트뷰처럼 움직이면좋겠네요
: 필요할땐 앞뒤의 헤더가 바뀔수도있게되면 좋겠습니다.
:
:
: 9. 라디오 버튼도 삽입가능했음좋겠습니다.
:
: 10. 달력을 삽입했음좋겠습니다.
:
: 11. 어떤것이든지 거기에 컴포넌트만 넣으면 알아서 들어가게되면 좋겠습니다.
: 마치 업다운컴포넌트와 에디트박스를 연동한것처럼.
: 각칼럼또는 로우의 속성에 엑세서리 가있어서 연동하면 그것이 거기에 달라붙으면좋겠네요.
:
:
: 아래 주소에 좋은 그리드 컴포넌트가있습니다만. 아래 마크가 찍히더라구요.. -_-;
:
http://www.tmssoftware.com/
:
: 그래서 지훈님께. 부탁좀드리고싶습니다.
: 델파이만 알았어도 제가 지훈님대신 팔까고 해보겠는데..
: 제대로 아는게 GWBASIC밖에없어설..