مجموعة من مكونات VCL/LCL لـ Delphi 2009 - 11.0 Alexandria و Lazarus
JPPack هي مجموعة صغيرة من مكونات VCL لمكونات Delphi و LCL لـ Lazarus و Codetyphon.
إصدارات دلفي المدعومة: 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 أو أحدث (تم اختباره على Lazarus 2.0.10 + FPC 3.2.0 ، Lazarus 2.2.0 + FPC 3.2.2 و Lazarus 2.2.2 + FPC 3.2.2). CodeTyphon : تم اختباره على Codetyphon 7.7 R2202141933 مع FPC 3.3.1 R2202141933

تم إنشاء هذه المكونات في غضون بضع سنوات ، وتم تعديلها مرارًا وتكرارًا وتحسينها وتوسيعها مع الوظائف اللازمة في تنفيذ مشاريع محددة. بشكل عام ، هناك فوضى صغيرة ، لكنني أعتقد أن كل شيء يعمل بشكل جيد (آمل!).
أنا لست خبيراً في كتابة مكونات VCL وساعدت نفسي من خلال تحليل رموز المصدر (واستخدام الشظايا) لمختلف مكونات Delphi المجانية ، وخاصة مكونات Cindy و PNGComponents.
تم أخذ بعض الوظائف والإجراءات المتعلقة بمعالجة الرسومات من مكونات Cindy . تم أخذ الإجراءات ذات الصلة بالتدرج بالكامل تقريبًا من هذه الحزمة (ملف VCL.cyGraphics.pas ).
مؤلف العنصر Cindy S هو Júlio Maurício Antunes Piao. تتوفر المصادر على https://sourceforge.net/projects/tcycomponents/ في الملفات المصدر التي أستخدم فيها وظائف كتبها Júlio ، لقد أضفت معلومات ذات صلة مع رابط إلى صفحته.
بعد المعارك الطويلة والشرسة مع أزرار مختلفة من حزم مختلفة من المكونات لـ Delphi (تجاري ومجانية) ، وجدت أخيرًا معاليين تعرض ملفات PNG بشكل صحيح - TPNGBITBTN و TPNGSPEDBUTTON من حزمة PNGCOMPONES . لم أواجه أية مشاكل معهم ، على عكس العديد من الآخرين. لهذا السبب ، في تنفيذ الأزرار الخاصة بي ، قررت الاعتماد على الرمز من هذه الحزمة.
المؤلف الأصلي لحزمة PNGComponents هو Martijn Saly ( www.thany.org ). يتم الحفاظ على المشروع حاليًا من قبل Uwe Raabe. المصادر متوفرة في https://github.com/uweraabe/pngcomponents
في المجلد الثالث ، يمكنك العثور على ملف zip مع pngcomponents ver. 1.4.1. هذا هو أحدث إصدار من PNGComponents المتاح عند كتابة هذا المستند ويعمل بشكل جيد مع JPPACK .
2020.08.31 - إصدار من Github يعمل بشكل جيد أيضًا.
يدعم كل مكون مرئي في حزمة JPPack ترسيخ المكونات الخارجية باستخدام خاصية AnchoredControls .
يمكنك تثبيت المكونات الخارجية إلى أي حافة. عندما تقوم بتغيير حجم أو موضع المكون الرئيسي ، سيتم تحديث موضع المكونات المرضية تلقائيًا.

تحتوي معظم المكونات في حزمة JPPack على خاصية TagExt . هنا يمكنك تخزين قيمة عدد صحيح واحد ( IntValue ) ، السلسلة ( StrValue ) ، رقم تعويم ( RealValue ) ، المؤشر ( PointerValue ) والتاريخ ( DateValue ). تتوفر القيم الثلاث الأولى من مفتش الكائن وفي الرمز ، آخر اثنين - فقط في الكود.
القيم الافتراضية:
| ملكية | القيمة الافتراضية |
|---|---|
TagExt.IntValue | 0 |
TagExt.StrValue | '' (سلسلة فارغة) |
TagExt.RealValue | 0 |
TagExt.PointerValue | nil |
TagExt.DateValue | Now |
لوحة قابلة للتخصيص للغاية. TCustomPanel سليل. تمت كتابته على أساس إحدى اللوحات المدرجة في حزمة مكونات Cindy (لكنني لا أتذكر بالضبط أي واحد).

تنقسم اللوحة إلى جزأين - الجزء العلوي والسفلي. لكل منهم يمكنك تحديد الألوان (التدرج أو الصلبة) بشكل منفصل.
يتم تكوين جميع حدود اللوحة بشكل منفصل. يمكنك ضبط لون مختلف ، سمك ، نمط ، وضوح لكل حدود.
تحتوي اللوحة على دعم مدمج للمجموعة غير المحدودة من التسميات التوضيحية. كل تعليق له Font: TFont ، ويمكن توسيطه أو وضعه بالنسبة إلى زوايا اللوحة.
علاوة على ذلك ، يتمتع TJppPanel بدعم مدمج للمجموعة غير المحدودة من الخطوط الأفقية والخطوط الرأسية والبارات الأفقية.
مزيد من المعلومات ...
نسخة مقطوعة من TJppPanel . لا يحتوي على مجموعات مدمجة من التسميات التوضيحية والخطوط الرأسية والخطوط الأفقية والبارات الأفقية.
نسخة مقطوعة من TJppBasicPanel . يحتوي Appearance تدرج DrawTopBorder DrawBottomBorder DrawRightBorder جميع الحدود DrawLeftBorder نفس اللون ( Appearance.BorderColor .
هذه اللوحة رائعة لإنشاء تصميم أساسي واجهة المستخدم.
لوحة قابلة للطي قابلة للتخصيص للغاية استنادًا إلى لوحة TJvRollOut من حزمة JVCL https://github.com/project-jedi/jvcl/blob/master/jvcl/run/jvrollout.pas
الترخيص الأصلي: MPL 1.1
تعديلاتي: المجال العام

يمكنك وضع الألواح ذات المحاذاة العليا على ScrollBox لمحاكاة CategoryPanelGroup من Delphi.
TCustomPanel سليل
لوحة قياسية مع دعم المكون.
حاليا فقط لدلفي .
TJppPngButton هو زر TPngBitBtn ممتد من حزمة PNGCOMPONETS .

يمكن أن يكون الزر في إحدى الحالات الخمس : طبيعي ، ساخن ، لأسفل (مضغوط) ، مركّز ومعاق . لكل حالة ، يمكنك تعيين مجموعة كاملة من معلمات العرض: التدرج العلوي والسفلي/اللون الصلب (على غرار TJppPanel ) ، واللون الحدودي ، والأناقة والعرض ، والمعلمات الخطية (اللون ، والاسم ، والأناقة).
Appearance.<STATES> كنت تريد عرض الزر بألوان النظام ، فقم True Appearance.DefaultDrawing خاصية.
يعد عدد جميع الألوان لجميع حالات الأزرار كبيرة حقًا ، لذلك قررت تسهيل إدارة الألوان المعروضة باستخدام مخططات الألوان الجاهزة للاستخدام (خرائط الألوان).
لقد أنشأت 36 مخططًا مختلفًا للألوان لـ TJppPngButton . لتغيير نظام الألوان النشط ، حدد أحد المخططات المتوفرة في خاصية ColorMapType في مفتش الكائن .
يمكن تحرير مخططات الألوان باستخدام برنامج TJppPngButton Color Maps Designer ، والذي يقع في المستودع في دليل demos .
مزيد من المعلومات ...
حاليا فقط لدلفي .
هذا الزر هو نسخة مقطعة قليلاً من TJppPngButton . يحتوي على تدرج واحد فقط لكل حالة زر ولا يدعم أنظمة الألوان.
حاليا فقط لدلفي .
على غرار TJppBasicPngButton ولكن بدعم للتصوير الفرعي.

يشبه هذا الزر إلى حد كبير TJppBasicPngButton ، لكنه يعتمد على TGraphicControl ، لذلك لا يتطلب التركيز (ليس له حالة مركزة ).
TCustomComboBox سليل.
خصائص إضافية:
AnchoredControlsBoundLabel - التسمية الداخلية.Flash - خيارات وميض. لتشغيل وميض ، اتصل بطريقة FlashBackground في الكود.ShowLabel - عرض / إخفاء التسمية المربوطة.TagExt TCustomComboBoxEx سليل.
علة ارتفاع العنصر الثابت في إصدارات دلفي القديمة.

خصائص إضافية:
AnchoredControlsBoundLabel - التسمية الداخلية.Flash - خيارات وميض. لتشغيل وميض ، اتصل بطريقة FlashBackground في الكود.ShowLabel - عرض / إخفاء التسمية المربوطة.TagExtItemIndex المنشورةحاليا فقط لدلفي .
comboBox قابلة للتخصيص للغاية استنادًا إلى TFlatComboBox
https://github.com/jackdp/flatstyle/blob/master/source/tflatcomboboxunit.pas

comboBox قابلة للتخصيص للغاية يعرض قائمة بالألوان المحددة مسبقًا و/أو المعرفة من قبل المستخدم.




يحتوي TJppColorComboBox على 4 مكونات مدمجة: ملصق واحد و 3 أزرار لتغيير لون ونسخ ولصق.
يمكن عرض الألوان في ثلاثة تنسيقات: RGB Int (على سبيل المثال. 051،102،255) ، RGB HEX (على سبيل المثال #3366FF) ، و BGR HEX (على سبيل المثال $ 00FF6633). إذا كنت بحاجة إلى عرض اللون بتنسيق مختلف ، فيمكنك القيام بذلك في معالج أحداث OnGetColorStrValue .
بالإضافة إلى العناصر القياسية (عرض اللون) ، يمكنك أيضًا إضافة فواصل وعناصر ChangeColor .
يمكن إضافة كل لون محدده المستخدم ، ولكن ليس بعد في قائمة الألوان ، تلقائيًا إلى نهاية أو أعلى القائمة. بفضل هذا ، يمكن للمستخدم للتطبيق إمكانية الوصول إلى تاريخ الألوان المحددة مسبقًا.
مزيد من المعلومات ...
قائمة قائمة قابلة للتخصيص للغاية تعرض قائمة بالألوان المحددة مسبقًا و/أو المعرفة من قبل المستخدم.


إنه يشبه إلى حد كبير 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 ) وثلاثة أزرار: ButtonChangeColor و ButtonCopyColor و ButtonPasteColor .
BoundLabel عبارة عن ملصق قياسي (سليل TCustomLabel ) ويمكن عرضه على اليسار ، يمينًا ، أعلى أو أسفل المكون. يتم توريث الأزرار من فئة TJppBasicSpeedButton ، بحيث يمكنك تعيين الألوان بحرية لجميع حالات الأزرار (العادية ، الساخنة ، معطلة ، معطل) ورمز PNG.
شريط تقدم قابل للتخصيص للغاية يعتمد على JVSpecialProgress من حزمة JVCL ، ولكن مع العديد من تعديلاتي. https://github.com/project-jedi/jvcl/blob/master/jvcl/run/jvspecialprogress.pas

تعديلاتي:
مظهر
هنا يمكنك تعديل العديد من المعلمات المتعلقة بظهور التحكم: لون الخلفية والتقدم في لون (صلبة أو متدرج) ، لون الحدود والحجم ، الخطوط (للحالة العادية والمعوقة) ، محاذاة النص (أعلى اليسار ، الوسط العلوي ، العلوي العلوي ، اليسار ، المركز ...) ، بادئة و postfix ، ظل النصي والمزيد. على عكس شريط التقدم القياسي ، يتيح لك TJppProgressBar أيضًا تعيين الألوان المعروضة عند تعطيل المكون.
Endmarker - مستطيل مرسوم في نهاية شريط التقدم.
TextDisplayMode - الموضع ، النسبة المئوية ، الموضع في بكسل ، التسمية التوضيحية أو لا شيء.
المراحل: الأوسط والنهائي - يمكنك إجراء تصحيحات ملونة هنا.
ProgressBarvisible - هنا يمكنك منع شريط التقدم من العرض وعرض النص فقط.
ancoredControls
يمكنك تثبيت عنصر تحكم خارجي واحد (مثل Tbutton ، TEDIT) إلى كل حافة مكون.
BoundLabel - التسمية الداخلية
updatePositionIfDisabled - هنا يمكنك تحديد ما إذا كنت ستحديث شريط التقدم عند تعطيل المكون.
OnprogressChanged
التشغيل عندما يتغير الموضع الحالي. يمكنك تنفيذ بعض الإجراءات الإضافية هنا.
tagext
حاليا فقط لدلفي .
مكون تلميح HTML خفيفة الوزن لـ Delphi (في Lazarus يجمع ولكن لا يعمل).

تم إنشاء هذا المكون من خلال الجمع بين وحدتين باسكال:
tflathintunit.pas من حزمة Flatstyle
https://github.com/jackdp/flatstyle/blob/master/source/tflathintunit.pas
الترخيص: مجاني (لا توجد معلومات إضافية)
hthint.pas من حزمة jvcl https://github.com/project-jedi/jvcl/blob/master/jvcl/install/jvclinstall/helpers/hthint.pas
الترخيص: MPL 1.1
ترخيص التعديلات الخاصة بي: لا ترخيص (مجال عام)
TJPPHTMLHINT ليس مكون HTML كامل الميزة. هذا مكون خفيف الوزن وبسيط للغاية مع دعم لبعض علامات HTML ، بالإضافة إلى ذلك ، مع بناء جملة غير عادي قليلاً.
العلامات المدعومة:
B - <b>bold text</b>
أنا - <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>
metacolors (أو ألوان الوضع): ألوان مأخوذة من Appearance.DarkModeColors Appearance.LightModeColors
مثال: <c:mclDarkBlue><bg:mclLightGray>dark blue text on light gray background</bg></c>
كيانات HTML: انظر الوظيفة ReplaceHtmlEntities في ملف JPP.HtmlHint.pas .
TCustomLabel سليل.
خصائص إضافية: ancoredControls ، tagext.
بناء على TJppLabel .
خصائص إضافية: ظل الحالة الممكّنة والمعوقة ، لون التسمية التوضيحية المعوقة ، الحدود (اللون ، الحجم ، النمط) ، الحشو.

TCustomLabel سليل.
تسمية مع خطوط إضافية ( TFont ) لـ 5 حالات: طبيعية ، زائرا ، ساخنة ، ساخنة ، زيارة وذات تعطيل .
بعد النقر ، يمكنه فتح عنوان URL في المتصفح الافتراضي ، أو تنفيذ الملف باستخدام ShellExecute أو إجراء إجراء من قائمة TaceList .
مزيد من المعلومات ...
مكون التسمية يتكون من 3 أجزاء:
Caption الممتلكات)RightCaption )استنادًا إلى tpegtoplinelabel من مكونات Pegtop المشتركة التي كتبها Jens Gruschel (http://www.pegtop.net/delphi/components/common/index.htm).



تعديلاتي:
Annex أعيد تسميته إلى RightCaptionJpp يحتوي RightCaption على خطها الخاص والخلفية ولون الحدود. يمكن وضع RightCaption عموديًا بواسطة RightCaptionPosDeltaY . يمكن وضع الخط عموديا بواسطة LinePosDeltaY . يمكن تعديل طول الخط بواسطة LineSizeDeltaX1 و LineSizeDeltaX2 . إذا كان AutoHeight = True ، فسيتم حساب ارتفاع المكون وتطبيقه تلقائيًا.
مكون ملصق بسيط يتكون من 2 تسميات توضيحية: يسار ( Caption خاصية) واليمين (Property RightCaption ).

يمكن تعديل المسافة بين التسميات التوضيحية باستخدام خاصية Spacing . بناء على tjppdoublelinelabel .
مكون تحرير مشتق من TCustomEdit .

خصائص إضافية:
AnchoredControlsAppearance - هنا يمكنك تعيين الخلفية واللون الخط لأربع حالات: العادية والساخنة والمركزة والمعوقة.BoundLabel - التسمية الداخليةFlash - FlashColor ، FlashCount ، FlashInterval . لتشغيل وميض ، اتصل بالطريقة FlashBackground . يمكن استخدام هذه الوظيفة للإشارة إلى مستخدم قيمة غير صحيحة.ShowLabel - عرض / إخفاء التسمية المربوطة.TagExt - علامة ممتدة. حاليا فقط لدلفي .
على غرار TJppEdit ، ولكن لديه أيضا القدرة على تحديد الألوان الحدودية.
طرق الرسم الحدودية على أساس TFlatEdit من حزمة Flatstyle https://sourceforge.net/projects/flatstyle/

TCustomMemo سليل.
خصائص إضافية:
AnchoredControlsAppearance - هنا يمكنك تعيين الخلفية واللون الخط لأربع حالات: العادية والساخنة والمركزة والمعوقة.BoundLabel - التسمية الداخليةFlash - FlashColor ، FlashCount ، FlashInterval . لتشغيل وميض ، اتصل بالطريقة FlashBackground . يمكن استخدام هذه الوظيفة للإشارة إلى مستخدم قيمة غير صحيحة.ShowLabel - عرض / إخفاء التسمية المربوطة.Text - سهولة الوصول إلى Lines.TextTagExt - علامة ممتدة. على غرار TJppMemo ، ولكن لديه أيضا القدرة على تحديد ألوان الحدود.
طرق الرسم الحدودية تستند إلى TFlatMemo من حزمة Flatstyle https://sourceforge.net/projects/flatstyle/

TCheckBox قياسي مع دعم TagExt و AnchoredControls .
TRadioButton قياسي مع دعم TagExt و AnchoredControls .
TDateTimePicker قياسي مع دعم BoundLabel ، TagExt و AnchoredControls .
Windows فقط
لازاروس ودلفي X2 أو الأحدث.
محدد نمط GDI+ Hatch قابل للتخصيص مع BoundLabel و AnchoredControls .

مربع التحرير والسرد القابل للتخصيص مع قائمة أنماط الفرشاة.

يمكن قراءة/تعيين النمط الحالي باستخدام الخاصية Selected .
يمكن تغيير اسم عرض نمط الفرشاة في معالج أحداث OnGetDisplayName .
يحتوي TJppBrushstyleCombox على ملصق مدمج ( BoundLabel ).
مربع التحرير والسرد القابل للتخصيص مع قائمة أنماط القلم.

يمكن قراءة/تعيين النمط الحالي باستخدام الخاصية Selected .
يمكن تغيير اسم عرض نمط القلم في معالج أحداث OnGetDisplayName .
يحتوي TJppPenStyleCombobox على ملصق مدمج ( BoundLabel ).
مكون قياسي TTimer مع بعض الخصائص والأساليب الإضافية:
RepeatCountLimit الخاصية. هنا يمكنك تعيين عدد المرات التي يمكن الوصول فيها إلى الفاصل الزمني المحدد في خاصية Interval . القيمة 0 تعني عدم وجود حد.Counter الممتلكات. في كل مرة تنتهي صلاحية الفاصل الزمني المحدد في خاصية Interval ، يتم زيادة خاصية Counter بمقدار 1. عندما يصل Counter إلى قيمة RepeatCountLimit ، يتم إيقاف الموقت ويتم تشغيل معالج الأحداث OnRepeatCountLimitReached (إذا تم تعيينه).ClearCounterOnStart Property. إذا تم تعيينه على True ، فإن طريقة Start تعيد ضبط Counter .Start الطريقة. مجموعات Enabled إلى True . إذا تم ضبط ClearCounterOnStart على True ، فإن Start تقوم بتعيين خاصية Counter على 0 .Stop . يضع Enabled إلى False .OnRepeatCountLimitReached - تم إطلاقه عندما يصل Counter إلى قيمة RepeatCountLimit . مثال: عرض العداد كل ثانية واحدة. عرض الرسالة بعد 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 .
لتشكيل عناصر التجميع في الكود ، يمكنك استخدام خاصية 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 ، يجب عليك أولاً تثبيت الحزم التالية:
إذا قمت بتثبيت مكونات PNG باستخدام GetIt Package Manager ، فربما يتعين عليك تغيير الاسم PngComponents إلى PngComponentsD في ملف jppack.dpk .
في مجلد الحزم ، يمكنك العثور على حزم التثبيت لجميع إصدارات Delphi من Delphi 2009 إلى 10.4 Sydney . انتقل إلى المجلد الفرعي مع اسم إصدار Delphi الخاص بك (على سبيل المثال Delphi_XE7 لإصدار XE7) وافتح ملف JPPack.dproj أو JPPack.dpk . في مدير المشروع ، انقر بزر الماوس الأيمن فوق ملف JPPack.bpl ، ثم حدد Install في القائمة المنبثقة. بعد فترة زمنية قصيرة ، يجب أن تظهر الرسالة تعرض معلومات حول التثبيت الصحيح للحزمة ومع قائمة المكونات المثبتة حديثًا. جميع المكونات التي يمكنك العثور عليها في صفحة jppack في لوحة الأدوات .
يمكنك أيضًا تجميع حزمة الهدف Win64 .
بعد تثبيت الحزمة ، من الأفضل إضافة مجلد source إلى مسار المكتبة :
Tools القائمة -> Options .Environment Options -> Delphi Options -> Library .; (Semicolon) والمسار إلى دليل source . أولاً ، قم بتثبيت حزمة JPLIB من https://github.com/jackdp/jplib
على Windows ، قم أيضًا بتثبيت IgDiplusmod من https://github.com/jackdp/igdiplusmod
افتح ملف الحزمة ( packagesLazarusjppacklcl.lpk ) في Lazarus IDE. انقر فوق زر Compile ثم Use -> Install وإعادة بناء IDE. جميع المكونات التي يمكنك العثور عليها في صفحة jppacklcl في لوحة المكونات .
قم بتثبيت حزمة JPLIB من https://github.com/jackdp/jplib
على Windows ، قم أيضًا بتثبيت IgDiplusmod من https://github.com/jackdp/igdiplusmod
افتح ملف الحزمة ( packagesCodeTyphonjppacklcl.ctpkg ) في Typhon IDE. انقر فوق زر Compile package (زر 2-ND على شريط الأدوات) ثم انقر فوق الزر الثالث ، حدد Install وإعادة بناء IDE. جميع المكونات التي يمكنك العثور عليها في صفحة jppacklcl في لوحة المكونات .
ترخيص عملي: المجال العام. يمكنك أن تفعل مع الكود الخاص بي كل ما تريد دون أي قيود.
ولكن ، في بعض الوحدات ، أستخدم التعليمات البرمجية من مشاريع مفتوحة المصدر الأخرى ، لذلك يجب عليك إلقاء نظرة على ملفات مصدر PAS وترخيص مؤلفي هذه المشاريع لمزيد من المعلومات.