임프랍니다.
아주 좋은 의견이네요. 다른 분들은 어케 생각하시는지?
프로젝트에 참여하실 분들의 숫자가 5분만 넘으면 바로 시작하면 좋겠습니다. 5분 이하로는 좀 무리가 있지
않을까 싶구요. 참여하실 분들은 위 김백일님의 의견에 찬성 의견을 남겨주세요.
그럼 이만...
김백일 님이 쓰신 글 :
: 질답 게시판에서 질문이 아닌 토론(?)을 하다보니
: 제안할 거리가 생겼네요.
:
: : : : AnsiString 의 기본 시작 인덱스는 1 이 맞습니다 ..
: : : :
: : : : 당연히 1을 넣으면 a 가 나오는겁니다 ..
: : : :
: : : : 0 넣으면 에러가 나구요~
: : : :
: : : : 실수를 많이 하는 부분이지요~
: : : :
: : : : 왜이렇게 만들었는지 저두 궁금 할 따름 입니다.
: : :
: : : 그 이유는... 모든 VCL 클래스는 오브젝트 파스칼 코드로 되어 있기 때문이죠.
: : : 파스칼 문자열의 기본 시작 인덱스는 항상 1부터입니다.
: : : 델파이와 호환을 위해서는 어쩔 수 없죠.
: : : 반면 TStrings나 TStringList의 인덱스는 0부터 시작합니다.
: : : 정말 헷갈리지요. -_-;;
: : :
: : : 그런데 VCL 클래스 중에 유일하게(제 기억엔 아마도...) C++ 코드로 된 부분이
: : : AnsiString에 있습니다.
: : : 바로 c_str() 메소드지요.
: : : 이것은 C 스타일의 문자열인 char* 타입의 문자열을 리턴하는 함수입니다.
: : : VCL이 아닌 표준 C/C++ 라이브러리나 Windows API를 사용할 때는 반드시
: : : 사용되어야 합니다.
: : :
: : : : 암튼 도움 말에도 그리 나와 있습니다..
: : : :
: : : : 그럼
: :
: : 유엔아이 입니다.
: :
: : 어디선가 읽은 기억이 있네요~
: :
: : 여튼간 ....
: :
: : 그놈의 델파이 때문에~ 빌더가 영 맘에 않듭니다 ...
: :
: : C++ 의 특성을 제대로 못 살리는게 많아요~ 짱나저
: :
: : 가장 맘에 않드는게 ...
: :
: : Items->Item[Index] = ...
: :
: : 이게 뭡니까 .. 짱나게 ...
: :
: : 구냥
: :
: : Items[Index] = ...
: :
: : 이렇게 바로 쓸수 있을텐데 ...
: :
: : Class 라이브러리에서 .. Operator 하나만 추가 하믄 되는데 ...
: :
: : 볼랜드는 왜 않하는 걸까요~
: :
: : 혹시 아시는분 ?
:
: 아마 제 생각에는 델파이에서 빌더로 전향하는 사람들이
: VCL 사용에 혼동이 오지 않기 위해서 그런 거 아닐까요?
:
: 하여튼, 님의 생각대로
: 오퍼레이터 오버로딩을 사용해서
: VCL을 편리하게 쓰는 방법은 여러가지를 생각할 수 있겠네요.
: 예를 들어
: Memo1->Lines->Add(IntToStr(nValue));
: 대신에
: Memo1 << nValue;
: 식으로 말이죠.
:
: 이런 기능을 원하신다면 아예 원래의 VCL을 상속받아
: 사용자 정의 컴포넌트로 만들어 쓰시면 되겠네요.
:
: 여기가지 생각해 보니, 한가지 제안할 거리가 생기는 군요.
: 기존 VCL에 오퍼레이터 오버로딩을 최대한 써서
: C++ 라이브러리 성격을 최대한 갖는 컴포넌트를 만들어 보면
: 어떨까요?
:
|