2014-09-01 5 views
1

저는 완전히 업데이트 된 delphi xe2와 Express QuantumGridSuite 13.2.2를 사용하고 있습니다. 그리드에 많은 컬럼을 가지고 있고 일부 컬럼에 대해 RepositoryItem을 설정했습니다. EditREpository 구성 요소가 다른 양식에 있습니다. repositoryItem 열이 무작위로 지워지는 경우가 있습니다. 나는 무언가가 그것을 촉발 시킨다고 생각하지만, 이것에 관해서 무엇을 발견 할 수 없었으며, 그것이 어떻게 되는가? 도움을 요청하십시오.가끔 CxGrid 열이 RepositoryItem 속성을 잃습니다

+0

먼저 문제를 격리해야합니다. –

+0

디자인 타임에 속성 값이 손실되는 것을 의미합니까? – MartynA

+0

예 MartynA하지만 내가 어떻게, 왜 그리고 언제 :(그 마법의 일을하고있다. 데이비드 u는 맞지만 could'nt 절연. 내가 뭔가를 (먼저 editrepository 및 기본 폼 등을 열고 양식을 닫습니다 ..하지만 couldnt catched) – AhmetYOL

답변

2

디자인 타임에 "손실"되는 구성 요소 값 문제는 EMBA 자체 구성 요소를 사용하는 경우에도 알려진 현상입니다. 일반적으로 양식이 IDE에서 처음 열릴 때 자체적으로 나타납니다.

내 경험에 의하면 y 형, B 형의 구성 요소를 참조하는 A 형 구성 요소의 속성이 거의 항상 발생하며 B 형보다 먼저 IDE에 A 형을 열면 더 자주 발생합니다.

어쨌든 문제를 확인하고 수행 할 때까지 사용할 수있는 최소한 하나의 해결 방법을 찾기 위해 할 수있는 일이 있습니다. 그러나 시작하기 전에 가장 먼저해야 할 일은 아직없는 경우 Devex에 에 대해 알리는 것입니다. 여기에 독자층을 무시하는 것은 아니지만 더 많이 알기 쉽고 수정 된 유지 관리 업데이트를 놓친 것으로 판명 될 수 있습니다.

필자가 직접 작성한 구성 요소가 발생했을 때 대개 구성 요소의 초기화 및/또는 속성 설정자 코딩에 오류가 발생했습니다. 내 자신의 구성 요소의 경우, 처음에는 동작이 인 것처럼 보였습니다. 실제로는이 무작위로 보이지만 사실은 트리거하는 IDE의 특정 동작 순서가 아닙니다. 재연 가능한 일련의 동작을 식별 할 수 있다면 문제를 해결하는 데 90 %의 시간이 걸릴 것입니다.

시작하기 가장 좋은 장소는 사전 문제 상태로 코드를 참조 백업하는 것입니다. 그런 다음 IDE에서 다양한 순서의 작업을 시도해보고 문제가 발생하기 전까지 참조로 롤백하십시오. 이것이 지루한 것처럼 들리면, 그렇습니다.하지만 운이 좋으면 일찍 패턴을 발견 할 수 있습니다. 그렇게하지 않으면, 아직 패턴을 발견하지 못했기 때문에 이 임의로으로 보이는 문제가 있음을 상기시켜주십시오.

그러나 다른 오작동하는 구성 요소가 값을 잃어버린 구성 요소의 설정을 방해 할 수 있다는 인상을받습니다. 따라서 살펴볼 것은 다른 구성 요소가 영향을받는 구성 요소와 동일한 양식에있는 것입니다. 모두가 Devex의 Quantum Grid 및 그 형제 자매와 같은 혈통을 가진 것은 아닙니다.

것 나는 나 자신이 작성한 구성 요소와 문제를 파악하는 것이 효과적인 것으로 나타났습니다 :

  • 형태에서 다른 모든 구성 요소를 제거.
  • 재발행 가능한 일련의 작업 (예 : 열어 본 양식 주문)이 문제를 일으키는 지 확인할 수 있습니다.
  • 영향을받는 구성 요소가 마지막에 나타나도록 DFM을 편집합니다. 똑같아.
  • IDE 자체를 다른 인스턴스에서 실행 중입니다. 이 작업을 수행하는 주요 이유는 속성 값 손실과 관련된 일부 디자인 타임 구성 요소 코드에서 발생하는 일반적으로 자동 예외를 제거 할 수 있는지 여부입니다. Devex의 퀀텀 그리드는 널리 사용되며 (나 자신을 해), 긴 혈통을 지니고 있으며 그 코드는 대개 최고 품질입니다. 내가 완벽하다고 상상하지는 않겠지 만, 그 문제가 다른 어떤 것에 의해 야기되었다고 가정함으로써 시작할 것입니다.

이 문제에 대해 가장 까다로운 부분 중 하나는 구성 요소가 거의 사용되지 않는 형식 인 경우 사용자가보고하는 경우가 가장 먼저 들리는 것입니다.

어쨌든, Devex 구성 요소와 표준 구성 요소 만 포함하는 재현 가능한 테스트 사례를 조사에 제출할 수 있다면, 필자는 오래 걸리지 않을 것이라고 확신합니다. 문제를 찾아서 고쳐야합니다. 그리고 만약 그들이 자신의 코드 (나는 EMBA 자체의 진실한 것이 좋겠다)에있어 그것을 고칠 것이라고 확신합니다.

그러나 재현 가능한 테스트 사례가 없으면 런타임시 구성 요소 값을 설정하기 위해 양식 생성에 명시적인 코드를 추가하는 것이 가장 좋습니다. 양식을 처음 만들 때. 내 자신의 문제 구성 요소를 사용하면 한 두 번 나는 내가 이것을 추가하기 위해 추가 한 코드를 신중하게 추적하는 것이 문제의 원인이된다는 것을 알게되었습니다.

+0

주로이 속성이 손실 된 경우의 동작을 다른 형식의 클래스 속성에 대한 참조와 함께 나타났습니다. 구체적으로는 designtime 구성 요소가 아닙니다. 참으로 s이다. 이러한 속성은 런타임에 명시 적으로 명시 적으로 적용됩니다 (+1). –