컴퓨터 지식 네트워크 - 컴퓨터 지식 - DELPHI 기본 튜토리얼: Delphi 사용자 정의 컴포넌트 개발(1)[2]

DELPHI 기본 튜토리얼: Delphi 사용자 정의 컴포넌트 개발(1)[2]

그래픽 컨트롤 만들기

그래픽 컨트롤은 사용자 정의 컨트롤과 매우 유사하지만 창 핸들이 없으므로 시스템 리소스를 차지하지 않습니다. 입력 포커스를 받아야 합니다. 이를 상속하면 그리기 위한 Canvas가 제공되고 Paint 메서드를 재정의해야 합니다.

창 컨트롤 상속

개체 지향과 유사한 Windows의 창 클래스라는 개념 개체 및 클래스의 개념 창 클래스는 Windows의 동일한 창 또는 컨트롤의 여러 인스턴스 간에 공유되는 정보의 모음입니다. 전통적인 Windows 프로그래밍 방법을 사용하여 새 컨트롤을 만들 수 있습니다. , 새 창 클래스를 정의하고 Windows에 등록 기존 창 클래스를 기반으로 새 창 클래스를 만들 수도 있습니다. 이를 창 클래스에서 상속이라고 합니다. 기존 Windows 프로그래밍에서는 사용자 정의된 컨트롤을 만들려면 다음을 수행해야 합니다. 동적 링크 라이브러리에서 수행하세요. 이는 표준 Windows 컨트롤처럼 작동하며 Delphi를 사용하여 액세스 인터페이스를 제공합니다. 이미 사용자 정의 컨트롤 라이브러리가 있고 이를 실행하려는 경우 Delphi 애플리케이션에서 기존 컨트롤을 사용하고 새 컨트롤을 얻을 수 있는 위젯을 생성할 수 있습니다. 라이브러리 유닛 StdCtrls에 이에 대한 많은 예가 있습니다.

비시각적 생성 위젯

추상 객체 유형 TComponent는 모든 구성 요소의 기본 유형입니다. TComponent에서 직접 생성된 구성 요소는 대부분 시각적 컨트롤입니다. FormDesigner의 구성 요소에 필요합니다. 따라서 TComponent에서 상속된 모든 구성 요소에는 디자인 기능이 있습니다.

비시각적 구성 요소는 주로 비시각적 프로그램 단위(예: 데이터베이스 단위) 및 대화 상자에 대한 인터페이스로 사용되는 경우가 거의 없습니다

새 구성 요소를 만드는 방법

새 구성 요소를 만드는 방법에는 두 가지가 있습니다.

● 수동으로 구성 요소 만들기

● 구성 요소 전문가 사용

p>

생성이 완료되면 필요한 최소 기능 단위 컴포넌트를 얻어 컴포넌트 팔레트에 설치할 수 있으며, 설치 후 폼 창에 새 컴포넌트를 배치하고 디자인 단계 및 런타임 중에 테스트할 수 있습니다. . 구성요소에 대한 새 구성요소를 생성할 수도 있습니다. 새 기능 추가 팔레트 업데이트 다시 테스트

수동으로 구성요소 생성

구성요소를 생성하는 가장 쉬운 방법은 Component Expert를 사용하는 것입니다. 동일한 단계를 수동으로 완료

구성 요소를 수동으로 생성하려면 다음 세 단계가 필요합니다.

● 새 라이브러리 단위 생성

● 구성 요소 개체 상속

● 구성 요소 등록

 ⑴ 새 라이브러리 단위 만들기

라이브러리 단위는 오브젝트 파스칼 코드의 독립적인 컴파일 단위입니다. 각 양식에는 자체 라이브러리 단위가 있습니다. (논리적으로 그룹)에는 자체 라이브러리도 있습니다.

파트를 생성할 때 해당 부품에 대한 라이브러리 단위를 생성하거나 기존 라이브러리 단위에 새 부품을 추가할 수 있습니다.

 ① 파트에 대한 라이브러리 유닛 생성은 선택 사항입니다. 파일/새로 만들기... 새 항목 대화 상자에서 유닛 Delphi를 선택하면 새 파일이 생성되어 코드 편집기에서 열립니다.

 ② 컴포넌트를 추가하려면 기존 라이브러리 단위인 경우 파일/열기를 선택하면 됩니다. 소스 코드를 선택할 라이브러리 단위가 있는 경우 해당 라이브러리 단위에는 구성 요소 코드만 포함될 수 있습니다. 경우 오류가 발생합니다.

 ⑵ 컴포넌트 객체 상속

각 컴포넌트는 모두 TComponent의 하위 객체이며 TControl TGraphicCont에서도 얻을 수 있습니다.

rol 및 기타 상속

구성 요소 개체를 상속하려면 개체 유형 선언을 라이브러리 단위의 인터페이스 부분에 추가해야 합니다.

예를 들어 가장 간단한 비- TComponent에서 직접 상속되는 시각적 구성 요소는 구성 요소 단위의 인터페이스 부분에 다음 유형 정의가 추가됩니다.

type

TNewComponent=class (TComponent)

end;

이제 TNewComponent를 등록할 수 있지만 새 컴포넌트는 TComponent와 다르지 않습니다.

⑶ 컴포넌트 등록

컴포넌트를 등록한다는 것은 델파이에게 컴포넌트 라이브러리에 어떤 컴포넌트가 추가되고 컴포넌트 팔레트의 어떤 페이지에 추가되는지 알려주는 것입니다.

컴포넌트를 등록하려면

p>

① 컴포넌트 유닛의 인터페이스 부분에 Register 프로세스를 추가합니다. Register는 어떤 매개 변수도 사용하지 않으므로 선언됩니다. 매우 간단합니다.

프로시저 Register; 이미 컴포넌트가 있는 라이브러리 단위에 컴포넌트를 추가하면 이미 Register 프로세스가 있으므로 선언을 수정할 필요가 없습니다.

② 라이브러리의 구현 컴포넌트에 대한 Register 절차 작성 등록하려는 각 구성 요소에 대해 RegisterComponents 프로시저를 호출합니다. RegisterComponents 프로시저는 구성 요소 팔레트의 페이지 이름과 구성 요소 유형 세트를 사용합니다. 예를 들어 TNewComponent라는 구성 요소를 등록하고 샘플 페이지에 배치합니다. 프로그램에서 다음 절차를 사용하세요.

등록

시작

RegisterComponents(샘플 [TNewComponent])

end;

등록되면 Delphi는 자동으로 컴포넌트 팔레트에 컴포넌트 아이콘을 표시합니다.

Component Expert(Component Expert) 사용

Component Expert를 사용하면 다음 작업을 수행할 수 있습니다. 새 구성요소를 생성합니다. Component Expert를 사용하여 단순화합니다. 이렇게 하면 세 가지만 설명하면 되므로 새 위젯을 만드는 초기 단계가 필요하지 않습니다.

● 새 위젯의 이름

● 조상 유형

● 새 위젯이 추가됩니다. 구성 요소 팔레트 페이지 이름

구성 요소 전문가가 동일한 작업을 수동으로 수행합니다.

● 새 라이브러리 단위 생성

p>

● 새 구성 요소 개체 상속

● 구성 요소 등록

그러나 Component Expert는 기존 유닛에 구성 요소를 추가할 수 없습니다.

파일/새로 만들기를 선택할 수 있습니다. ... 새 항목 대화 상자에서 구성 요소를 선택하여 구성 요소 전문가 대화 상자를 엽니다.

구성 요소 전문가 대화 상자의 각 필드를 완료한 후 확인을 선택하면 Delphi는 새 구성 요소와 프로시저를 등록하고 자동으로 use 문을 추가합니다.

즉시 라이브러리를 저장하고 의미 있는 이름을 지정해야 합니다.

제거된 구성 요소를 테스트합니다.

테스트할 수 있습니다. 이는 새 구성 요소를 구성 요소 팔레트에 설치하기 전에 특히 유용하며 구성 요소 팔레트에 표시되는지 여부에 관계없이 동일한 기술을 사용하여 구성 요소를 테스트할 수 있습니다. > 본질적으로

제거된 구성 요소를 폼에 배치하는 사용자의 Delphi 작업을 시뮬레이션하여 테스트할 수 있습니다.

제거된 구성 요소를 테스트하려면 다음 단계를 따르십시오.

양식 단위에서 이름 추가 using 문에서 구성 요소가 있는 단위

구성 요소를 나타내기 위해 양식에 개체 필드를 추가합니다.

이것이 직접 구성 요소를 추가하는 것과 구성 요소를 추가하는 것의 주요 차이점입니다. Delphi

폼 타입 선언 하단의 public 부분에 객체 필드를 추가하면 Delphi는 하단 선언에 객체 필드를 추가합니다.

필드를 추가할 수 없습니다. Delphi에서 관리하는 창에 본문 유형 선언의 이 부분에 선언된 개체 필드가 ​​DFM 파일에 저장된 해당 부분에 추가되면 양식에 존재하지 않는 부분 이름이 잘못된 DFM 파일 오류를 생성합니다.

폼 처리 프로세스의 OnCreate 이벤트 첨부

폼의 OnCreate 처리 중에 컴포넌트 생성

컴포넌트 생성 프로세스 호출 시 Owner 매개변수 전달되어야 합니다(소유자는 구성 요소를 파괴할 책임이 있습니다). 일반적으로 말하면 항상 Self를 소유자의 수신 매개 변수로 사용합니다. OnCreate에서 Self는 양식을 참조합니다.

Parent 속성에 값을 할당합니다. 구성 요소

구성 요소를 구성한 후 가장 먼저 수행하는 작업은 상위 속성을 설정하는 것입니다. 일반적으로 상위 항목은 양식 또는 GroupBox 패널입니다. 부모에는 Self가 할당됩니다. 즉, 구성 요소의 다른 속성을 설정하기 전에 양식에서 부모에 값을 할당하는 것이 가장 좋습니다 lixixinzhi/Article/program/Delphi/ 201311/25122

上篇: iOS11에서 분할 화면을 사용하는 방법 下篇: 2022년 연말 종합안전계획 선정
관련 내용