문제

델파이 형태로 한 시각적 구성 요소를 다른 시각적 구성 요소로 교체하고 싶습니다. 예 : 패널 구성 요소를 제 3 자 패키지의 Elpanel로 교체하고 싶습니다.

첫 번째 구성 요소의 모든 동일한 속성과 이벤트가 새 구성 요소로 전송되기를 원합니다. 첫 번째 구성 요소 (예 : 툴바, 메모, 상태 표시 줄 등)에 새 구성 요소에 배치되도록합니다. 정확히 그들이 첫 번째 위치에있었습니다.

새 구성 요소를 양식에 추가하고 모든 속성, 이벤트 및 구성 요소를 하나씩 세 심하게 전송하는 것 외에도이 작업을 수행하는 가장/가장 쉬운 방법이 있습니까?

도움이 되었습니까?

해결책

나는 다음과 같이한다 :

  1. 양식을 마우스 오른쪽 버튼으로 클릭하고 선택하십시오 (텍스트로보기).
  2. Ctrl + F를 눌러 TPANEL과 같은 구성 요소 클래스 이름을 검색하고 Telpanel로 바꾸십시오.
  3. 양식으로 다시 전환하십시오 (양식으로보기)
  4. 인터페이스 섹션에서 TPANEL을 Telpanel로 바꾸십시오.

Gexperts를 사용하는 많은 구성 요소가있는 경우 더 실현 가능한 솔루션이됩니다.

다른 팁

당신이 사용할 수있는 gexperts 또는 손으로 할 수 있습니다.

손으로이를 위해 메모장에서 .dfm을 열고 모든 클래스 이름을 교체하십시오. (예를 들어 Tpanel을 Telpanel로 교체하십시오). 모든 변경을 수행 할 때 메모장으로 .pas 파일을 열고 같은 일을하십시오.

사용 절에 필요한 단위를 추가하십시오.

그런 다음 IDE에서 양식을 열고 불일치 한 이벤트 또는 알 수없는 속성 문제를 정리하십시오.

훌륭한 무료 Gexperts 플러그인을 기억한다면이 작업을 수행합니다. 양식을 마우스 오른쪽 버튼으로 클릭하고 "구성 요소 교체"를 선택하십시오. http://www.gexperts.org

IMHO, 교체 구성 요소 Gexpert의 큰 단점은 소스 코드에서 구성 요소의 순서를 변경한다는 것입니다. 그것은 VCS 친화적이지 않습니다. :-)

컨테이너 내부에 다른 구성 요소가있는 경우이 gexperts로 교체하는 경우 IDE에서는 못생긴 예외와 예상치 못한 동작이 발생합니다.
따라서 최상의 솔루션은 원하는 .dfm 파일 (IDE 내부 또는 외부)을 편집하고 변경하려는 구성 요소의 유형을 수동으로 교체하는 것입니다. 어쩌면 그것은 몇 가지 예외를 일으킬 것이지만 IDE는 그것들을 관리 할 것입니다.
IDE 내부에서 수행하는 경우, .dfm을 내용으로 저장하면 디자인보기로 전환 한 후 IDE는 만지는 구성 요소와 관련된 변수의 유형을 변경하여 해방시킵니다.

텍스트와 바이너리 DFM 형식을 변환하려면 Delphi Bin 디렉토리의 Convert.Exe 도구를 사용하십시오. - Tim Knipe (10 월 28 일 4:15)

최소한 BDS 2006에서 양식 디자이너의 컨텍스트 메뉴를 사용할 수 있습니다. 마지막 메뉴 항목 (독일 IDE의 "Text -DFM")입니다.

내 프로젝트에서 나는 한 구성 요소 세트에서 다른 구성 요소로 몇 가지 Doezens 양식을 변환해야했습니다. 나는 구성 요소와 그 특성을 변환하고 모든 필요가 맵핑을하기 위해 작은 Perl 스크립트를 만들었습니다. 스크립트는 빠르고 더러운 솔루션이지만 구성 가능합니다. 프로젝트 DIRCOTORY의 모든 DFM 및 PAS 파일을 스캔하고 DFM 구성 요소 정의를 ObjectBegInFound, PropertyFound, ObjectEndFound 프로 시저/이벤트에서 제공 해야하는 규칙에 따라 변환합니다.

DFM 파일은 텍스트 모드에 있어야합니다. Delphi 5 파일에서 테스트되었습니다. 새로운 버전과 호환되는지 모르겠습니다. 발견하면 게시물을 보내주십시오.

사용법 : perl.exe cxdfm.pl> logfile.txt

다운로드 링크http://dl.dropbox.com/u/15887789/cxdfm.pl

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top