Delphi 2009-11.0 Alexandria and Lazarus 용 VCL/LCL 구성 요소 모음
JPPack은 델파이 용 VCL 구성 요소 및 Lazarus 및 Codetyphon 용 LCL 구성 요소의 작은 모음입니다.
지원되는 델파이 버전 : 2009 , 2010 , XE , XE2 , XE3 , XE4 , XE5 , XE6 , XE7 , XE8 , 10.0 시애틀 , 10.1 베를린 , 10.2 도쿄 , 10.3 리오 , 10.4 시드니 , 11.0 알렉산드리아 .
나사로 : 필수 FPC 버전 3.0.4 3.2.0 또는 최신 (나사로 2.0.10 + FPC 3.2.0, 나사로 2.2.0 + FPC 3.2.2 및 라자루스 2.2.2 + FPC 3.2.2에서 테스트). CodetyPhon : CodetyPhon 7.7 R2202141933에서 FPC 3.3.1 R2202141933에서 테스트

이러한 구성 요소는 몇 년 안에 생성되었으며 특정 프로젝트 구현에 필요한 기능으로 반복적으로 수정, 개선 및 확장되었습니다. 일반적으로 작은 혼란이 있지만 모든 것이 잘 작동한다고 생각합니다 (희망!).
저는 VCL 구성 요소를 작성하는 전문가가 아니며 다양한 무료 델파이 구성 요소, 특히 Cindy 구성 요소 및 PNGComponents의 소스 코드 (및 조각 사용)를 분석하여 스스로를 도왔습니다.
그래픽 처리와 관련된 기능 및 절차 중 일부는 Cindy 구성 요소 에서 가져 왔습니다. 그라디언트 관련 루틴은 거의 전적으로이 패키지 ( VCL.cyGraphics.pas 파일)에서 가져 왔습니다.
Cindy 구성 요소의 저자는 Júlio Maurício Antunes Piao입니다. 소스는 júlio가 작성한 함수를 사용하는 소스 파일에서 https://sourceforge.net/projects/tcycomponents/에서 구입할 수 있습니다. 나는 그의 페이지에 대한 링크와 관련 정보를 추가했습니다.
Delphi (상업 및 무료)에 대한 다양한 구성 요소 패키지의 다양한 버튼과 함께 길고 치열한 전투를 마친 후 PNG 파일을 올바르게 표시하는 PNGCOMPONENTS 패키지에서 PNG 파일 -TPNGBITBTN 및 TPNGSPEEDBUTTON을 올바르게 표시하는 전투를 마쳤습니다. 나는 많은 사람들과 달리 그들에게 아무런 문제가 없었습니다. 이러한 이유로 버튼을 구현할 때이 패키지의 코드에 의존하기로 결정했습니다.
Pngcomponents 패키지의 원래 저자는 Martijn Saly ( www.thany.org )입니다. 이 프로젝트는 현재 Uwe Raabe에 의해 유지됩니다. 출처는 https://github.com/uweraabe/pngcomponents에서 제공됩니다
폴더 3 파티에서는 pngcomponents ver로 zip 파일을 찾을 수 있습니다. 1.4.1. 이 문서를 작성할 때 사용 가능한 PNGComPonents 의 최신 버전이며 JPPack 에서 잘 작동합니다.
2020.08.31- Github의 버전도 잘 작동합니다.
JPPACK 패키지의 각 시각적 구성 요소는 AnchoredControls 속성을 사용하여 외부 구성 요소의 고정을 지원합니다.
외부 구성 요소를 모든 가장자리에 고정 할 수 있습니다. 기본 구성 요소의 크기 또는 위치를 변경하면 고정 된 구성 요소의 위치가 자동으로 업데이트됩니다.

JPPack 패키지의 대부분의 구성 요소에는 TagExt 속성이 있습니다. 여기에서 하나의 정수 값 ( IntValue ), 문자열 ( StrValue ), float 번호 ( RealValue ), 포인터 ( PointerValue ) 및 date ( DateValue )를 저장할 수 있습니다. 처음 세 값은 객체 검사관 과 코드에서, 마지막 두 값은 코드에서만 사용할 수 있습니다.
기본값 :
| 재산 | 기본값 |
|---|---|
TagExt.IntValue | 0 |
TagExt.StrValue | '' (빈 문자열) |
TagExt.RealValue | 0 |
TagExt.PointerValue | nil |
TagExt.DateValue | Now |
고도로 사용자 정의 가능한 패널. TCustomPanel 후손. Cindy 구성 요소 패키지에 포함 된 패널 중 하나를 기반으로 작성되었습니다 (그러나 정확히 어떤 것을 기억하지 않습니다).

패널은 상단과 하단의 두 부분으로 나뉩니다. 그들 각각에 대해 색상 (그라디언트 또는 솔리드)을 별도로 정의 할 수 있습니다.
모든 패널 테두리는 별도로 구성됩니다. 각 테두리에 대한 다른 색상, 두께, 스타일, 가시성을 설정할 수 있습니다.
패널에는 무제한 캡션 컬렉션에 대한 내장 지원이 있습니다. 각 캡션에는 자체 특성 Font: TFont 있으며 패널 모서리에 대해 중앙에 위치하거나 배치 할 수 있습니다.
또한, TJppPanel 수평선, 수직선 및 수평 막대의 무제한 컬렉션에 대한 내장 지원을 제공합니다.
더 많은 정보 ...
TJppPanel 의 잘린 버전. 캡션 컬렉션, 수직선, 수평선 및 수평 막대가 내장되어 있지 않습니다.
TJppBasicPanel 의 잘린 버전. 그라디언트는 하나 뿐이며 모든 테두리는 같은 색상 ( Appearance.BorderColor )을 가지고 있지만 각 테두리는 숨겨 지거나 표시 될 수 있습니다 ( Appearance : DrawTopBorder , DrawBottomBorder , DrawLeftBorder , DrawRightBorder ).
이 패널은 기본 UI 레이아웃을 만드는 데 좋습니다.
JVCL 패키지 https://github.com/project-jedi/jvcl/blob/master/jvcl/run/jvrollout.pas의 TJvRollOut 패널을 기반으로 한 고도
원래 라이센스 : MPL 1.1
내 수정 : 공개 도메인

ScrollBox 에 정렬 된 패널을 넣어 Delphi의 CategoryPanelGroup 시뮬레이션 할 수 있습니다.
TCustomPanel 후손
구성 요소 고정 지원이있는 표준 패널.
현재 델파이만을 위해서만 .
TJppPngButton pngcomponents 패키지에서 확장 된 TPngBitBtn 버튼입니다.

버튼은 정상 , 핫 , 다운 (누르면), 집중 및 비활성화 의 5 개 상태 중 하나 일 수 있습니다. 각 상태에 대해 상단 및 하단 구배/단수 ( TJppPanel 과 유사하게), 테두리 색상, 스타일 및 너비, 글꼴 매개 변수 (색상, 이름, 크기, 스타일) 등 모든 범위의 디스플레이 매개 변수를 설정할 수 있습니다.
시스템 색상으로 버튼을 표시하려면 속성 Appearance.DefaultDrawing 설정하십시오 Appearance.<STATES> True (모양에 정의 된 모든 사용자 정의 색상이 무시됩니다).
모든 버튼 상태에 대한 모든 색상의 수는 실제로 크기 때문에 즉시 사용 가능한 색상 구성표 (컬러 맵)를 사용하여 표시된 색상을보다 쉽게 관리하기로 결정했습니다.
TJppPngButton 에 대해 36 가지 색 구성표를 만들었습니다. 활성 색 구성표를 변경하려면 Object Inspector 의 ColorMapType 속성에서 사용 가능한 구성표 중 하나를 선택하십시오.
색 구성표는 demos 디렉토리의 저장소에 위치한 TJppPngButton Color Maps Designer 프로그램으로 편집 할 수 있습니다.
더 많은 정보 ...
현재 델파이만을 위해서만 .
이 버튼은 TJppPngButton 의 약간 잘린 버전입니다. 각 버튼 상태에 대해 하나의 기울기가 있으며 색 구성표를 지원하지 않습니다.
현재 델파이만을 위해서만 .
TJppBasicPngButton 과 유사하지만 하위 문구를 지원합니다.

이 버튼은 TJppBasicPngButton 과 매우 유사하지만 TGraphicControl 기반으로하므로 초점을 맞추지 않습니다 ( 초점 이 맞지 않음).
TCustomComboBox 자손.
추가 속성 :
AnchoredControlsBoundLabel 내부 레이블.Flash - 플래시 옵션. 플래시를 켜려면 코드의 FlashBackground 메소드를 호출하십시오.ShowLabel 쇼 / 숨은 바운드 레이블.TagExt TCustomComboBoxEx 후손.
구형 델파이 버전의 항목 높이 버그를 수정했습니다.

추가 속성 :
AnchoredControlsBoundLabel 내부 레이블.Flash - 플래시 옵션. 플래시를 켜려면 코드의 FlashBackground 메소드를 호출하십시오.ShowLabel 쇼 / 숨은 바운드 레이블.TagExtItemIndex현재 델파이만을 위해서만 .
TFlatComboBox 기반으로 한 고도로 사용자 정의 가능한 combobox
https://github.com/jackdp/flatstyle/blob/master/source/tflatcomboboxunit.pas

사전 정의 및/또는 사용자 정의 색상 목록을 표시하는 고도로 사용자 정의 가능한 콤보 박스 .




TJppColorComboBox 에는 4 개의 내장 구성 요소가 있습니다 : 하나의 레이블과 3 개의 버튼을 변경, 복사 및 붙여 넣을 수 있습니다.
색상은 RGB INT (예 : 051,102,255), RGB 16 진수 (예 : #3366FF) 및 BGR HEX (예 : $ 00FF6633)의 세 가지 형식으로 표시 할 수 있습니다. 색상을 다른 형식으로 표시 해야하는 경우 OnGetColorStrValue 이벤트 핸들러에서이를 수행 할 수 있습니다.
표준 항목 (색상 표시) 외에도 분리기 및 변경 사항 항목을 추가 할 수도 있습니다.
사용자가 선택한 각 색상이지만 아직 색상 목록에 있지 않은 각 색상은 목록의 끝 또는 상단에 자동으로 추가 될 수 있습니다. 이 덕분에 응용 프로그램 사용자는 이전에 선택한 색상의 기록 에 액세스 할 수 있습니다.
더 많은 정보 ...
사전 정의 및/또는 사용자 정의 색상 목록을 표시하는 고도로 사용자 정의 가능한 ListBox .


TJppColorComboBox 와 매우 유사하지만 내장 구성 요소가 없습니다.
tjppcolorswatch는 두 가지 형식으로 색상과 그 값 (코드)을 표시하는 구성 요소입니다.

세 부분으로 구성됩니다. 색상 (왼쪽)을 표시하는 사각형과 선택한 색상의 코드가있는 두 개의 사각형. 각 부분은 숨겨 질 수 있으므로 예를 들어 색상의 사각형 또는 선택한 형식의 색상 코드 만 표시 할 수 있습니다.
사용 가능한 색상 형식 :
| 체재 | 예 |
|---|---|
ctBgr | 128,064,032 |
ctCmyk | 075,050,000,050 |
ctCppHex | 0x00804020 |
ctHslCss | 220,60%,31% |
ctHslWin | 146,144,075 |
ctHtml | #204080 |
ctPascalHex | $00804020 |
ctPascalInt | 8405024 |
ctRgb | 032,064,128 |
ctRgbPercent | 13%,25%,50% |
컬러 코드를 다른 형식으로 표시하려면 OnGetTopColorStrValue 이벤트 핸들러 (상부 코드의 경우) 및 OnGetBottomColorStrValue (하단)에서 수행 할 수 있습니다.
tjppcolorswatchex는 tjppcolorswatch 의 확장 버전입니다. 내장 레이블 ( BoundLabel )과 3 개의 버튼이 있습니다 : ButtonChangeColor , ButtonCopyColor 및 ButtonPasteColor .
BoundLabel 은 표준 레이블 ( TCustomLabel Descendant)이며 구성 요소 위 또는 아래 또는 아래에 표시 될 수 있습니다. 버튼은 TJppBasicSpeedButton 클래스에서 상속되므로 모든 버튼 상태 (정상, 핫, 다운, 비활성화) 및 PNG 아이콘의 색상을 자유롭게 설정할 수 있습니다.
JVCL 패키지의 JVSpecialProgress를 기반으로하는 고도로 사용자 정의 가능한 진행률 표시 줄이지만 많은 수정이 있습니다. https://github.com/project-jedi/jvcl/blob/master/jvcl/run/jvspecialprogress.pas

내 수정 :
모습
여기에서 배경 및 진행률 막대 색상 (고체 또는 그라디언트), 테두리 색상 및 크기, 글꼴 (정상 및 비활성 상태), 텍스트 정렬 (왼쪽, 상단 중심, 왼쪽, 중앙 ...), 접두사 및 Postfix, Text Shadow 등과 관련된 많은 매개 변수를 수정할 수 있습니다. 표준 진행률 표시 줄과 달리 TJPPPROGRESSBAR을 사용하면 구성 요소가 비활성화 될 때 표시되는 색상을 설정할 수 있습니다.
Endmarker- 진행률 표시 줄의 끝에 그려진 사각형.
TextDisplayMode- 위치, 백분율, 픽셀, 캡션 또는 없음.
단계 : 중간 및 최종 - 여기에서 색상을 수정할 수 있습니다.
ProgressBarvisible- 여기에서 진행률 표시 줄이 표시되는 것을 막고 텍스트 만 표시 할 수 있습니다.
고정 제어
하나의 외부 컨트롤 (예 : tbutton, tedit)을 구성 요소의 각 가장자리에 고정 할 수 있습니다.
BoundLabel- 내부 레이블
UpdateIfDisabled- 여기에서 구성 요소가 비활성화 될 때 진행률 표시 줄을 업데이트할지 여부를 결정할 수 있습니다.
onprogresschanged
현재 위치가 변경 될 때 트리거됩니다. 여기에서 몇 가지 추가 작업을 수행 할 수 있습니다.
Tagext
현재 델파이만을 위해서만 .
델파이의 가벼운 HTML 힌트 구성 요소 (나사로에서는 컴파일하지만 작동하지 않습니다).

이 구성 요소는 두 개의 파스칼 유닛을 결합하여 만들어졌습니다.
플랫 스타일 패키지의 Tflathintunit.pas
https://github.com/jackdp/flatstyle/blob/master/source/tflathintunit.pas
라이센스 : 무료 (추가 정보 없음)
JVCL 패키지 https://github.com/project-jedi/jvcl/blob/master/jvcl/install/jvclinstall/helpers/hthint.pas 의 hthint.pas
라이센스 : MPL 1.1
내 수정 라이센스 : 라이센스 없음 (공개 도메인)
tjpphtmlhint는 완전한 기능을 갖춘 HTML 구성 요소가 아닙니다. 이것은 약간의 특이한 구문으로 몇 개의 HTML 태그 만 지원하는 가볍고 매우 간단한 구성 요소입니다.
지원되는 태그 :
b- <b>bold text</b>
I- <i>italic</i>
u- <u>underline</u>
s- <s>strike out</s>
C : 색상 - 텍스트 색상, 예 : <c:clRed>text</cl> , <cl:Red>text</c> , <c:#FF0000>text</c> , <c:255,0,0>RGB color</c>
BG : 색상 - 배경색, 예를 들어. <bg:clYellow>yellow background</bg>
IND : X- 현재 위치에서의 들여 쓰기. eg. <ind:10>
aind : x- 절대적으로 들여 쓰기, 예를 들어. <aind:20>
FS : X- 글꼴 크기, 예를 들어. <fs:12>some text</fs> , <fs:+4>text</fs>
FN : 이름 - 글꼴 이름, 예를 들어. <fn:Verdana>text</fn> , <fn:Courier New>text</fn> , <fn:default>restore default font</fn>
메타 콜러 (또는 모드 컬러) : Appearance.DarkModeColors 에서 가져온 색상 .darkmodecolors 또는 Appearance.LightModeColors .LightModecolors 팔레트
예 : <c:mclDarkBlue><bg:mclLightGray>dark blue text on light gray background</bg></c>
HTML 엔티티 : JPP.HtmlHint.pas 파일의 함수 ReplaceHtmlEntities 참조하십시오.
TCustomLabel 자손.
추가 특성 : 앵커링 컨트롤, tagext.
TJppLabel 기반으로합니다.
추가 속성 : 활성화 및 비활성화 상태, 비활성화 된 캡션 색상, 테두리 (색상, 크기, 스타일), 패딩.

TCustomLabel 자손.
5 개 주에 대한 추가 글꼴 ( TFont )이있는 레이블 : 정상 , 방문 정상 , 핫 , 방문 및 장애인 .
클릭 한 후 기본 브라우저에서 URL을 열거나 ShellExecute 로 파일을 실행하거나 tactionList 에서 작업을 수행 할 수 있습니다.
더 많은 정보 ...
3 개의 부분으로 구성된 레이블 구성 요소 :
Caption )RightCaption )Jens Gruschel (http://www.pegtop.net/delphi/components/common/index.htm)이 작성한 Pegtop 공통 구성 요소 의 Tpegtoplinelabel을 기반으로합니다.



내 수정 :
Annex RightCaption 으로 이름이 변경되었습니다Jpp RightCaption 에는 고유 한 글꼴, 배경 및 테두리 색상이 있습니다. RightCaption 은 RightCaptionPosDeltaY 에 의해 수직으로 배치 될 수 있습니다. 라인은 LinePosDeltaY 에 의해 수직으로 배치 될 수 있습니다. 라인의 길이는 LineSizeDeltaX1 및 LineSizeDeltaX2 에 의해 수정 될 수 있습니다. AutoHeight = True 인 경우 구성 요소의 높이가 계산되고 자동으로 적용됩니다.
2 개의 캡션으로 구성된 간단한 레이블 구성 요소 : 왼쪽 (속성 Caption ) 및 오른쪽 (속성 RightCaption ).

캡션 사이의 공간은 Spacing 특성을 사용하여 수정할 수 있습니다. tjppdoublelinelabel을 기반으로합니다.
TCustomEdit 에서 파생 된 편집 구성 요소.

추가 속성 :
AnchoredControlsAppearance - 여기서는 정상, 뜨거운, 집중, 비활성화의 네 가지 상태의 배경과 글꼴을 설정할 수 있습니다.BoundLabel 내부 레이블Flash - FlashColor , FlashCount , FlashInterval . 깜박임을 켜려면 FlashBackground 메소드를 호출하십시오. 이 함수는 사용자에게 잘못된 값을 나타내는 데 사용될 수 있습니다.ShowLabel 쇼 / 숨은 바운드 레이블.TagExt 확장 태그. 현재 델파이만을 위해서만 .
TJppEdit 과 유사하지만 경계 색상을 정의 할 수 있습니다.
플랫 스타일 패키지에서 TFlatEdit 기반으로하는 테두리 드로잉 방법 https://sourceforge.net/projects/flatstyle/

TCustomMemo 후손.
추가 속성 :
AnchoredControlsAppearance - 여기서는 정상, 뜨거운, 집중, 비활성화의 네 가지 상태의 배경과 글꼴을 설정할 수 있습니다.BoundLabel 내부 레이블Flash - FlashColor , FlashCount , FlashInterval . 깜박임을 켜려면 FlashBackground 메소드를 호출하십시오. 이 함수는 사용자에게 잘못된 값을 나타내는 데 사용될 수 있습니다.ShowLabel 쇼 / 숨은 바운드 레이블.Text - Lines.Text 에 쉽게 액세스 할 수 있습니다TagExt 확장 태그. TJppMemo 와 유사하지만 경계 색상을 정의 할 수 있습니다.
플랫 스타일 패키지 https://sourceforge.net/projects/flatstyle/의 TFlatMemo 기반으로하는 테두리 드로잉 방법

TagExt 및 AnchoredControls 지원 기능이있는 표준 TCheckBox .
TagExt 및 AnchoredControls 지원하는 표준 TRadioButton .
BoundLabel , TagExt 및 AnchoredControls 지원이있는 표준 TDateTimePicker .
창문 만
나사로와 델파이 X2 또는 새로운.
BoundLabel 및 AnchoredControls 있는 고도로 사용자 정의 가능한 GDI+ 해치 스타일 선택기.

브러시 스타일 목록이있는 고도로 사용자 정의 가능한 콤보 박스.

Selected 속성을 사용하여 현재 스타일을 읽거나 설정할 수 있습니다.
OnGetDisplayName 이벤트 핸들러에서 브러시 스타일 디스플레이 이름을 변경할 수 있습니다.
TJPPBRUSHSTYLECOMBOBOX 에는 내장 레이블 ( BoundLabel )이 있습니다.
펜 스타일 목록이있는 고도로 사용자 정의 가능한 콤보 박스.

Selected 속성을 사용하여 현재 스타일을 읽거나 설정할 수 있습니다.
펜 스타일 디스플레이 이름은 OnGetDisplayName 이벤트 핸들러에서 변경할 수 있습니다.
TJPPPENSTYLECOMBOBOX 에는 내장 레이블 ( BoundLabel )이 있습니다.
몇 가지 추가 특성 및 방법이있는 표준 TTimer 구성 요소 :
RepeatCountLimit 속성. 여기서는 Interval 속성에 지정된 시간 간격을 몇 배나 설정할 수 있습니다. 값 0 제한이 없음을 의미합니다.Counter 속성. Interval 속성에 지정된 시간 간격이 만료 될 때마다 Counter 속성은 1로 증가합니다. Counter RepeatCountLimit 의 값에 도달하면 타이머가 중지되고 OnRepeatCountLimitReached 이벤트 핸들러가 트리거 된 경우 (지정된 경우).ClearCounterOnStart 속성. True 로 설정되면 Start 메소드가 Counter 를 재설정합니다.Start . 세트가 True 로 Enabled . ClearCounterOnStart 가 True 로 설정되면 Start Counter 속성을 0 으로 설정합니다.Stop 방법. Enabled False 로 설정합니다.OnRepeatCountLimitReached 이벤트 - Counter RepeatCountLimit 의 값에 도달하면 발사되었습니다. 예 : 1 초마다 카운터를 표시합니다. 10 초 후에 메시지를 표시하고 Timer 를 끄십시오.
procedure TForm1.FormCreate (Sender: TObject);
begin
JppTimer1.Interval := 1000 ;
JppTimer1.RepeatCountLimit := 10 ; // JppTimer1 will stop automatically after 10 seconds.
JppTimer1.Start;
end ;
procedure TForm1.JppTimer1Timer (Sender: TObject);
begin
Label1.Caption := JppTimer1.Counter.ToString;
end ;
procedure TForm1.JppTimer1RepeatCountLimitReached (Sender: TObject);
begin
ShowMessage( ' 10 seconds elapsed! ' );
end ; 수많은 PNG 이미지를 저장할 수있는 비 시각 구성 요소. 외부 타이밍 구성 요소와 연관 될 수 있습니다.
Timagelist 와 달리 각 이미지는 크기가 다를 수 있습니다. 이미지는 비트 맵이 아닌 PNG로 내부적으로 저장되므로 DFM 파일의 크기가 줄어 듭니다. 물론 PNG 이미지가 압축되었다고 가정합니다.
PNG 이미지는 AddPngImage , AddImageFromFile 또는 Items.Insert 메소드를 사용하여 객체 검사관 또는 코드에 추가 할 수 있습니다.
...
var
Png: TPngImage;
begin
Png := TPngImage.Create;
try
Png.LoadFromFile( ' C:image.png ' );
JppPngCollection.AddPngImage(Png);
// OR
// JppPngCollection.AddPngImageFromFile('C:image.png');
finally
Png.Free;
end ;
end ; AddPngImage 메소드는 PNG 이미지의 사본을 추가하므로 위의 예에서 Png 객체를 제거 할 책임이 있습니다.
컬렉션에서 PNG 이미지를 검색하려면 GetPngImage , GetPngImageByName 또는 Items[Index].PngImage 같은 메소드를 사용할 수 있습니다.
컬렉션에는 각 PNG 이미지와 관련된 추가 속성이 있습니다.
Name : string;
Description: string;
Tag: integer;
Enabled: Boolean속성 만 읽으십시오.
Width: integer;
Height: integer; 중요한! 수집 항목을 만들 때 tpngimage 객체는 자동으로 생성됩니다. 컬렉션의 항목에 PNG 이미지가 할당되어 있는지 확인하려면 NIL 과 비교하여 수행 할 수 없습니다. TPngImage.Empty 메소드를 사용해야합니다.
// Improperly
if JppPngCollection.Items[ 0 ].PngImage <> nil then ... // <-- Always returns True // Properly
if not JppPngCollection.Items[ 0 ].PngImage.Empty then ... // OK, image assigned TJppStorageCtrl 컬렉션에 다른 유형의 정보를 저장할 수있는 비 시각적 구성 요소입니다. 수집의 각 항목은 다음 데이터를 저장합니다.
StorageCollection 속성을 사용하여 물체 검사관 으로부터 항목이 적합합니다. 포인터를 제외한 컬렉션의 각 항목의 값은 객체 검사관 에도 설정할 수 있습니다. 포인터 값은 코드에서만 설정할 수 있으며 기본적으로 nil 로 초기화됩니다.
코드의 수집 항목을 ACCE를 위해 Items 속성을 사용할 수 있습니다.
JppStorageCtrl.Items[ 0 ].IntValue1 := 1 ;
JppStorageCtrl.Items[ 0 ].PointerValue1 := SomePointer; 그러나 Items 기본 속성으로 설정되므로 간단히 쓸 수 있습니다.
JppStorageCtrl[ 0 ].IntValue1 := 1 ;
JppStorageCtrl[ 0 ].PointerValue1 := SomePointer;이 구성 요소는 일부 전역 데이터에 액세스하려면 유용 할 수 있으며 전역 변수를 만들고 싶지 않습니다.
나는 때때로이 구성 요소를 쓰기 응용 프로그램의 초기 단계에서 사용합니다. 이후 단계에서 데이터를 저장하고 관리하는 더 좋은 방법은 전문 레코드, 클래스, 어레이, 제네릭/포인터 컨테이너 등을 설계하는 것입니다.
추가 데이터와 함께 문자열 모음을 저장할 수있는 비 시각 구성 요소. 컬렉션의 각 항목에는 다음 속성이 있습니다.
ItemName: string;
Value : string;
Enabled: Boolean;
Tag: integer;JPPack 패키지를 설치하기 전에 먼저 다음 패키지를 설치해야합니다.
GetIt 패키지 관리자를 사용하여 PNG 구성 요소를 설치 한 경우 PngComponents 라는 이름을 JPPack.dpk 파일의 PngComponentsD 로 변경해야 할 것입니다.
패키지 폴더에서 델파이 2009 에서 10.4 시드니 에서 모든 델파이 버전에 대한 설치 패키지를 찾을 수 있습니다. Delphi 버전의 이름 (예 : xe7 버전의 경우 Delphi_XE7 )이있는 하위 폴더로 이동하여 JPPack.dproj 또는 JPPack.dpk 파일을 엽니 다. 프로젝트 관리자 에서 JPPack.bpl 파일을 마우스 오른쪽 버튼으로 클릭 한 다음 팝업 메뉴에서 Install 선택하십시오. 짧은 시간이 지나면 메시지가 패키지의 올바른 설치 및 새로 설치된 구성 요소 목록에 대한 정보를 표시하는 것으로 나타납니다. 모든 구성 요소는 도구 팔레트 에서 jppack 페이지를 찾을 수 있습니다.
Win64 Target의 패키지를 컴파일 할 수도 있습니다.
패키지를 설치 한 후 source 폴더를 라이브러리 경로 에 추가하는 것이 가장 좋습니다.
Tools -> Options 선택하십시오.Environment Options -> Delphi Options -> Library 로 이동하십시오.; (세미콜론) 및 source 디렉토리의 경로. 먼저 https://github.com/jackdp/jplib에서 jplib 패키지를 설치하십시오
Windows에서는 https://github.com/jackdp/igdiplusmod에서 igdiplusmod를 설치하십시오
라자루스 IDE에서 패키지 파일을 열기 ( packagesLazarusjppacklcl.lpk ). 버튼 Compile 클릭 한 다음 -> IDE를 Use Install 재 구축하십시오. 모든 구성 요소는 구성 요소 팔레트 에서 jppacklcl 페이지를 찾을 수 있습니다.
https://github.com/jackdp/jplib에서 jplib 패키지를 설치하십시오
Windows에서는 https://github.com/jackdp/igdiplusmod에서 igdiplusmod를 설치하십시오
Typhon IDE에서 패키지 파일 ( packagesCodeTyphonjppacklcl.ctpkg )을 열 수 있습니다. 버튼 Compile package (도구 모음의 2nd 버튼)을 클릭 한 다음 3-RD 버튼을 클릭하고 Install 및 IDE를 재구성합니다. 모든 구성 요소는 구성 요소 팔레트 에서 jppacklcl 페이지를 찾을 수 있습니다.
내 작업에 대한 라이센스 : 공개 도메인. 제한없이 원하는대로 내 코드로 할 수 있습니다.
그러나 일부 유닛에서는 다른 오픈 소스 프로젝트의 코드를 사용 하므로이 프로젝트의 저자의 라이센스를 살펴보고 자세한 내용은 필요합니다.