비주얼 컴포넌트 라이브러리
Visual Component Library![]() |
원저작자 | 볼랜드 |
---|---|
개발자 | 엠바카데로 테크놀로지스 |
초기 릴리즈 | 전 |
운영 체제 | 크로스 플랫폼(Microsoft Windows, macOS, iOS, Android) |
유형 | GUI |
면허증. | 상업의 |
웹 사이트 | www docwiki |
VCL(Visual Component Library)은 Microsoft Windows 응용 프로그램의 사용자 인터페이스를 개발하기 위한 시각적 구성 요소 기반 개체 지향 프레임워크입니다.오브젝트 파스칼로 쓰여져 있습니다.
역사
VCL은 Borland가 델파이 및 C++빌더 RAD 도구에 사용하기 위해 개발했으며 긴밀하게 통합되어 있습니다.
1995년 볼랜드는 오브젝트 파스칼 IDE와 언어의 첫 번째 릴리스인 델파이를 출시했습니다.그때까지 볼랜드의 DOS 및 Windows용 Turbo Pascal은 주로 절차적 언어였고 최소한의 객체 지향 기능을 가지고 Turbo Vision 및 Object Windows Library와 같은 프레임워크를 사용하여 UI 프레임워크를 구축했습니다.MFC와 유사한 프레임워크인 OWL은 UI 개체를 만들기 위해 코드를 작성해야 했습니다.
VCL과 Dellphi 언어를 조합한 주요 목적은 사용자 인터페이스 구축 요건을 변경하는 것이었습니다(문맥상 델파이 바리안트 Pascal은 Modula와 Smalltalk에서 영감을 얻어 속성이나 런타임 유형 정보 등 혁신적인 객체 지향 기능을 다수 갖추고 있었습니다).당시에는 다른 클래스에서 상속되는 클래스를 만들어야 하는 UI 코드 작업이 많았으며, 커스터마이즈된 오브젝트는 재사용할 수 없는 경우가 많았습니다(예를 들어 특정 작업을 수행하는 버튼은 다른 응용 프로그램에서 재사용할 수 없습니다).[1]UI 코드도 복잡하여 프로그래머가 Windows API를 이해하고 사용하고 GDI 리소스를 관리해야 했습니다.[2]마지막으로 비주얼 유저 인터페이스는 시각적으로 설계되어야 하며, 대부분의 툴(그 당시에는 주로 Visual Basic)은 설계자가 코드를 출력하여 취약하고 수동으로 편집할 수 없는 상황을 초래합니다.이는 오늘날에도 많은 UI 프레임워크, 특히 Qt와 같은 [3]UI 프레임워크에서 여전히 지속되고 있습니다.
Dellphi 언어와 해당 언어로 작성된 VCL 프레임워크의 조합은 다음과 같습니다.
- 오브젝트와 서브 오브젝트를 텍스트 또는 바이너리 형식으로 스트리밍할 수 있는 스트리밍 프레임워크 - TComponent, VCL 프레임워크의 루트 클래스
- 스트림에 저장한 폼디자이너로, 오브젝트를 작성하는 데 필요한 코드가 아닌 오브젝트에 대한 설명을 저장합니다.해당 설명을 스트리밍할 때 오브젝트가 자동으로 생성됩니다.
- 하위 분류 없이 클래스의 인스턴스를 두 가지 방법으로 사용자 정의할 수 있는 언어 기능. 첫째, 속성을 사용하여 개체의 인스턴스(예: 캡션)를 스트리밍을 통해 쉽게 변경할 수 있습니다. 둘째, 코드의 특정 위치에서 호출된 이벤트(메서드 포인터)를 처리할 수 있습니다.기타 오브젝트, 즉 메서드포인터가 오브젝트인스턴스에 [4]연결되어 있습니다.즉,[5] "상속 대신 위임을 통한 맞춤형 행동"을 창출합니다.
- 리소스를 관리하는[6] 프레임워크에서 기본 윈도우즈 컨트롤을 래핑하는 컨트롤
이러한 조합에 의해 비주얼 디자이너가 설명을 스트리밍하고, 그 설명에서 자신을 구축한 폼(창), 버튼과 같은 특정 액션에 대한 응답으로 UI 요소에 의해 호출될 수 있는 코드(폼의 메서드)가 한 곳에 작성되었습니다.클릭해서 폼코드에 구현되어 있는OnClick 이벤트핸들러를 호출했습니다.당시에는 혁신적이었지만, 오늘날에는 WinForms나 Cocoa와 같은 다른 프레임워크에서 사용되는 접근법입니다.
이를 통해 새로운 구성요소(새로운 시각 또는 비시각적 수업)를 쉽게 작성할 수 있었습니다.VCL은 Windows 기반이며 공통 컨트롤의 구현은 Windows API의 래퍼이기 때문에 지면에 가깝고 완전히 네이티브합니다.새로운 컨트롤을 처음부터 구현하거나 기존 Windows 컨트롤을 사용할 수 있습니다.
C++ Builder의 릴리스로 델파이 컴파일러는 컴파일된 델파이 언어 유닛용 C++ 헤더 파일을 내보낼 수 있게 되었습니다.따라서 C++에서 시각적으로 설계된 스트리밍 UI 프레임워크의 유연성을 이용할 수 있게 되었습니다.VCL 컴포넌트는 실제로는 C++로 기술할 수 있지만 C++Builder 컴파일러와 링커는 Delphi에서 생성된 오브젝트 및 헤더 파일을 소비할 수 있기 때문에 최종적으로 Delphi의 조상으로부터 상속됩니다.이것은 언어 간 호환성의 첫 번째 예 중 하나이며, 이전에는 볼 수 없었던 것입니다.그물.
현재 VCL에는 수백 개의 비주얼 컴포넌트와 비시각 컴포넌트가 포함되어 있으며 델파이 언어와 C++ 언어 모두에서 사용할 수 있습니다.
테크놀로지
VCL은 공통 조상인 TComponent 클래스(Delphi Object Pascal 루트 클래스인 TObject에서 상속됨)와 클래스 계층을 형성합니다.이는 Java 프로그래밍 언어인 Smalltalk, C# 및 기타 많은 객체 지향 프로그래밍 언어에서 공통적으로 사용되는 접근법입니다.
VCL 컴포넌트는 윈도(TForm 클래스), 컨트롤(TButton, TCeckBox, TLabel 클래스 등)과 데이터베이스 액세스(ADO 또는 IBX 컴포넌트 등) 또는 인터넷 접속(Indy 컴포넌트)을 커버합니다.컴포넌트 어프로치를 사용하면 프로그래머는 많은 비주얼 및 비비주얼 추가 컴포넌트를 사용하여 VCL을 확장할 수 있습니다.무료 및 상용 컴포넌트 패키지가 많이 있습니다.그 중에는 JEDI, TMS, Developer Express, Mitov Software, Raise Software, TurboPower, IOComp, SDL, DA-SOFT Technologies 등이 있습니다.
VCL 컴포넌트가 모두 스레드 세이프는 아니지만 VCL은 멀티 스레드도 지원합니다.예를 들어 OpenWire VCL 라이브러리의 내장 멀티스레딩 지원이 있습니다.
VCL은 에서 PME(속성, 메서드 및 이벤트) 모델을 네이티브하게 지원합니다.NET [citation needed]레벨
의 대부분.NET 설계, 특히 WinForms는 VCL을 본떠서 제작되었습니다.최초의 델파이 버전의 주요 설계자 중 한 명인 앤더스 헤일스버그는 마이크로소프트에 고용되어 의 주요 설계자 중 한 명이 되었습니다.NET. 이것은 소송의 대상이 되었습니다.그 당시(1996년) 볼랜드는 마이크로소프트가 볼랜드의 영업비밀을 훔치기 위해 지난 30개월 동안 34명의 볼랜드 직원을 고용했다고 주장했습니다.볼랜드는 또한 마이크로소프트가 볼랜드 근로자들에게 비싼 미끼를 제공하고 제공했다고 주장했다.두 가지 사례에서 100만 달러를 넘는 인센티브가 [7]포함되었습니다."delphi.about.com에 따르면 앤더스의 경우 보너스는 300만 달러였다.많은 Delphi 개발자들은 설계상의 [8]유사성 때문에 C#을 매우 친숙하다고 생각합니다.
관련 프레임워크
VCL과 동등한 크로스 플랫폼인 CLX(Component Library for Cross Platform)는 이후 2000-2001년에 델파이, C++ Builder 및 Kylix에서 사용하기 위해 개발되었습니다.하지만, 그것은 버려졌다.
두 번째 크로스 플랫폼 프레임워크인 FireMonkey는 2011년에 Dellphi 및 C++Builder XE2에 통합되었습니다.FireMonkey는 Windows, OSX, iOS 및 Android의 UI를 위한 벡터 기반의 WPF와 같은 프레임워크입니다.
Lazarus 프로젝트는 LCL이라고 불리는 휴대용(*nix, OS/X, Win32/64+wince)을 가지고 있으며, 이는 Kylix와 CLX가 등장했을 때 이미 작동하고 있었다.프로젝트는 계속 진행되었고 Kylix(그리고 나중에는 FMX)는 무시되었다.
OpenOffice.org 및 LibreOffice에는 Visual Class Library(VCL)라고 하는 관련 없는 그래픽 라이브러리가 포함되어 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ 델파이 컴포넌트 설계, Danny Thorpe, p9
- ^ 델파이 컴포넌트 설계, Danny Thorpe, p11
- ^ "Using a Designer UI File in Your Application Qt 4.8".
- ^ "VCL Overview - RAD Studio".
- ^ 델파이 컴포넌트 설계, Danny Thorpe, p12
- ^ "Understanding the Component Library - RAD Studio".
- ^ "Delphi Tutorials".
- ^ "Archived copy" (PDF). Archived from the original (PDF) on 2014-01-26. Retrieved 2014-05-28.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크)
외부 링크
- Torry의 델파이 페이지 무료 상용 VCL 컴포넌트의 주요 저장소
- JEDI Visual Component Library(JVCL) 및 JEDI Code Library(JCL): VCL 기반의 대규모 오픈 소스 컴포넌트 컬렉션
- 다양한 프로페셔널 VCL 컴포넌트를 제공하는 TMS 소프트웨어 회사
- 비디오, 오디오, DSP, 컴퓨터 비전 및 데이터 시각화 VCL 컴포넌트를 제공하는 Mitov 소프트웨어 회사
- DA-SOFT Technologies Company, 고속 데이터 액세스 VCL 라이브러리 제공
- Steema Software Company, Teechart VCL 차트 작성 컴포넌트 라이브러리 제공
- SDL Component Suite(VCL 컬렉션)를 제공하는 Epina GmbH Company