자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi EListError with message "Duplicates not allowed"
2016.09.21 11:14
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
인디소켓으로 서버에 접속해서 로그인 성공 유무를 판단해서
크라이언트한테 이 정보를 주면 이에 대한 메세지를 메인화면에다가 보내주게 됩니다.
그런데 첨부파일과 같은 에라가 발생하면서 앱이 켜졌다가 꺼져버립니다.
즉 섬앱을 실행했는데 로그인후 성공메세지가 왔는데 이후로 갑자기 종료되어버립니다.
아래 첨부파일에 디버그시 발생하는 메세지입니다.
댓글 3
-
험프리
2016.09.21 11:31
-
화이부동
2016.09.21 13:01
먼저 빠른 답변 감사드리고요.
디버그 모드로 하게 되면 갑자기 시스템 Unit으로 가게 됩니다.
이곳에서 멈춥니다.
Unit System.Generics.Collections;
procedure TDictionary<TKey,TValue>.Add(const Key: TKey; const Value: TValue);
var
index, hc: Integer;
begin
if Count >= FGrowThreshold then
Grow;
hc := Hash(Key);
index := GetBucketIndex(Key, hc);
if index >= 0 then
raise EListError.CreateRes(@SGenericDuplicateItem);
DoAdd(hc, not index, Key, Value);
end;
무엇때문에 그런지 알수가 없습니다.
아래는 디버그 모드에서 위의 에라후 한번 더 Run을 하면 발생되는 에라입니다.
-
험프리
2016.09.22 09:17
현재의 오류는,
TDictionary.Add 메소드를 호출할 때 동일한 Key로 Add를 하기 때문에 발생됩니다.
해당 코드를 직접 찾아서 수정하셔야합니다.
Delphi EListError with message "Duplicates not allowed"
2016.09.21 11:14
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
인디소켓으로 서버에 접속해서 로그인 성공 유무를 판단해서
크라이언트한테 이 정보를 주면 이에 대한 메세지를 메인화면에다가 보내주게 됩니다.
그런데 첨부파일과 같은 에라가 발생하면서 앱이 켜졌다가 꺼져버립니다.
즉 섬앱을 실행했는데 로그인후 성공메세지가 왔는데 이후로 갑자기 종료되어버립니다.
아래 첨부파일에 디버그시 발생하는 메세지입니다.
댓글 3
-
험프리
2016.09.21 11:31
-
화이부동
2016.09.21 13:01
먼저 빠른 답변 감사드리고요.
디버그 모드로 하게 되면 갑자기 시스템 Unit으로 가게 됩니다.
이곳에서 멈춥니다.
Unit System.Generics.Collections;
procedure TDictionary<TKey,TValue>.Add(const Key: TKey; const Value: TValue);
var
index, hc: Integer;
begin
if Count >= FGrowThreshold then
Grow;
hc := Hash(Key);
index := GetBucketIndex(Key, hc);
if index >= 0 then
raise EListError.CreateRes(@SGenericDuplicateItem);
DoAdd(hc, not index, Key, Value);
end;
무엇때문에 그런지 알수가 없습니다.
아래는 디버그 모드에서 위의 에라후 한번 더 Run을 하면 발생되는 에라입니다.
-
험프리
2016.09.22 09:17
현재의 오류는,
TDictionary.Add 메소드를 호출할 때 동일한 Key로 Add를 하기 때문에 발생됩니다.
해당 코드를 직접 찾아서 수정하셔야합니다.
오류 메시지는 리스트(TList, TStringList TList<T> 등)가 중복된 항목을 넣지 못해 발생하는 오류입니다.
디버그 모드로 관련된 코드를 디버깅 해보세요.
통신파트는 윈도우에서 먼저 개발, 디버깅 및 테스트 하시고 안드로이드 앱으로 작성하면 더 편리합니다.