SDL 1.3 API를 사용하여 하나 이상의 SDL 렌더링 표면을 델파이 창에 임베드 할 수있는 간단한 컴포넌트를 작성하려고합니다. 컴파일과 설치는 잘되지만, 폼 디자이너에서 컴포넌트를 사용하려고하면 오브젝트 인스펙터에서 속성에 액세스하거나, 폼을 저장하거나, 컴포넌트를 삭제하고, 컴포넌트를 삭제하려고 시도 할 때마다 AV를 발생시킵니다. 폼을 실행하려고하면 링커 오류가 발생합니다. 어떤 이유로 든 DFM을 제대로 읽을 수 없습니다.내 사용자 지정 구성 요소가 IDE에서 AV를 발생시키는 이유는 무엇입니까?
DLL은 http://www.libsdl.org/tmp/SDL-1.3-dll.zip에서 찾을 수 있으며 내 구성 요소의 소스 코드는 here에서 다운로드 할 수 있습니다. SDL.pas는 JEDI-SDL 헤더 파일입니다. 나머지는 내 자신의 코드입니다.
양식 디자이너에서 AV를 올리는 이유가 없습니다. 런타임에 컨트롤을 동적으로 만들면 안정성 문제가 없습니다. 누구든지 이걸보고 어쩌면 내가 그것을 정리하는 데 도움이 될 수있는 몇 가지 피드백을 제공 할 수 있습니까?
확인. 게시 된 섹션에서 Flags 속성을 제거하면 문제가 사라집니다. IDE는 기본 Set 정의에 대한 RTTI를 조회하려고 할 때 질식합니다. Delphi 2009에서 모든 업데이트를 설치했습니다. 이것은 2009 년에 나쁜 RTTI를 발견 한 두 번째 사례입니다. 나는 그것을 QC에 넣을 것이다. –
집합은 어떻게 선언됩니까? 세트에 몇 개의 요소가 있습니까? 최대 32 개의 요소 만 포함 할 수있는 세트 만 게시 할 수 있습니다. –
TSdlWindowFlags = (sdlwFullscreen, sdlwOpenGl, sdlwShown, sdlwBorderless, sdlwResizable, sdlwMinimized, sdlwMaximized, sdlwInputGrabbed, dslwInputFocus, sdlwMouseFocus, sdwlForeign, sdlwForce32 = 31)의 집합입니다. 열거 형의 12 개 요소가 만들어져 "int"를 기대하는 C 루틴에 전달할 수 있습니다. –