Eine Sammlung von VCL/LCL -Komponenten für Delphi 2009 - 11.0 Alexandria und Lazarus
JPPACK ist eine kleine Sammlung von VCL -Komponenten für Delphi- und LCL -Komponenten für Lazarus und Codetyphon.
Unterstützte Delphi -Versionen: 2009 , 2010 , XE , XE2 , XE3 , XE4 , XE5 , XE6 , XE7 , XE8 , 10,0 Seattle , 10,1 Berlin , 10,2 Tokio , 10,3 Rio , 10,4 Sydney , 11,0 Alexandria .
Lazarus : Erforderliche FPC -Version 3.0.4 3.2.0 oder neuer (getestet auf Lazarus 2.0.10 + FPC 3.2.0, Lazarus 2.2.0 + FPC 3.2.2 und Lazarus 2.2.2 + FPC 3.2.2). Codetyphon : getestet auf Codetyphon 7.7 R2202141933 mit FPC 3.3.1 R2202141933

Diese Komponenten wurden innerhalb weniger Jahre erstellt, sie wurden wiederholt modifiziert, verbessert und mit den Funktionen erweitert, die für die Umsetzung bestimmter Projekte erforderlich waren. Im Allgemeinen gibt es ein kleines Chaos, aber ich denke, alles funktioniert in Ordnung (ich hoffe!).
Ich bin kein Experte für das Schreiben von VCL -Komponenten und habe mir geholfen, indem ich die Quellcodes (und die Verwendung von Fragmenten) verschiedener freier Delphi -Komponenten, insbesondere Cindy -Komponenten und PNGComponenten, analysiere.
Einige der Funktionen und Verfahren zur Grafikverarbeitung wurden aus den Cindy -Komponenten übernommen. Die Gradientenbezogenen Routinen wurden fast ausschließlich aus diesem Paket ( VCL.cyGraphics.pas -Datei) entnommen.
Der Autor der Cindy Component S ist Júlio Maurício Antunes Piao. Die Quellen sind unter https://sourceforge.net/projects/tcycomponents/ verfügbar in den Quelldateien, in denen ich von Júlio geschriebene Funktionen verwende, habe ich relevante Informationen mit einem Link zu seiner Seite hinzugefügt.
Nach langen und heftigen Schlachten mit verschiedenen Schaltflächen aus verschiedenen Komponentenpaketen für Delphi (kommerziell und kostenlos) habe ich schließlich eine gefunden, die die PNG -Dateien korrekt anzeigt - TPNGBitBtn und TPNGSpeedButton aus dem PNGComponents -Paket. Ich hatte nie Probleme mit ihnen, im Gegensatz zu vielen, vielen anderen. Aus diesem Grund habe ich mich bei der Implementierung meiner Schaltflächen entschlossen, mich auf den Code aus diesem Paket zu verlassen.
Der ursprüngliche Autor des PngComponents -Pakets ist Martijn Salt ( www.thany.org ). Das Projekt wird derzeit von Uwe Raabe unterhalten. Quellen finden Sie unter https://github.com/uweraabe/pngcomponents
Im Ordner 3rd-Party finden Sie die ZIP-Datei mit den pngcomponents ver. 1.4.1. Dies ist die neueste Version der PNGComponents, die beim Schreiben dieses Dokuments verfügbar sind, und es funktioniert gut mit dem JPPACK .
2020.08.31 - Die Version von Github funktioniert auch gut.
Jede visuelle Komponente im JPPACK -Paket unterstützt die Verankerung externer Komponenten mithilfe der Eigenschaft AnchoredControls .
Sie können externe Komponenten an jeder Kante verankern. Wenn Sie die Größe oder Position der Hauptkomponente ändern, wird die Position der verankerten Komponenten automatisch aktualisiert.

Die meisten Komponenten im JPPACK -Paket haben die TagExt -Eigenschaft. Hier können Sie einen Ganzzahlwert ( IntValue ), String ( StrValue ), Float -Nummer ( RealValue ), Zeiger ( PointerValue ) und Datum ( DateValue ) speichern. Die ersten drei Werte sind beim Objektinspektor und im Code die letzten beiden verfügbar - nur im Code.
Standardwerte:
| Eigentum | Standardwert |
|---|---|
TagExt.IntValue | 0 |
TagExt.StrValue | '' (leere Zeichenfolge) |
TagExt.RealValue | 0 |
TagExt.PointerValue | nil |
TagExt.DateValue | Now |
Ein hochpassbares Panel. TCustomPanel -Nachkomme. Es wurde auf der Grundlage eines der im Cindy -Komponenten -Paket enthaltenen Panels geschrieben (ich erinnere mich jedoch nicht genau, welches).

Das Panel ist in zwei Teile unterteilt - obere und untere. Für jeden von ihnen können Sie Farben (Gradient oder Feste) getrennt definieren.
Alle Panelgrenzen werden separat konfiguriert. Sie können unterschiedliche Farbe, Dicke, Stil und Sichtbarkeit für jeden Rand einstellen.
Das Panel hat eine integrierte Unterstützung für die unbegrenzte Sammlung von Bildunterschriften. Jede Bildunterschrift hat eine eigene Eigenschaftsschrift Font: TFont und kann relativ zu den Ecken des Panels zentriert oder positioniert werden.
Darüber hinaus bietet das TJppPanel eine integrierte Unterstützung für die unbegrenzte Sammlung horizontaler Linien, vertikalen Linien und horizontalen Balken.
Weitere Informationen ...
Eine verkürzte Version des TJppPanel . Es gibt keine integrierten Sammlungen von Bildunterschriften, vertikalen Linien, horizontalen Linien und horizontalen Balken.
Eine verkürzte Version des TJppBasicPanel . Es hat nur einen Gradienten, alle Grenzen haben die gleiche Farbe ( Appearance.BorderColor ), aber jeder Rand kann versteckt/gezeigt werden ( Appearance : DrawTopBorder , DrawBottomBorder , DrawLeftBorder , DrawRightBorder ).
Dieses Panel eignet sich hervorragend zum Erstellen eines grundlegenden UI -Layouts.
Hochpassbares zusammenklappbares Panel basierend auf dem TJvRollOut Panel aus dem JVCL-Paket https://github.com/project-jedi/jvcl/blob/master/jvcl/run/jvrolout.pas
Originallizenz: MPL 1.1
Meine Modifikationen: öffentlich -Domäne

Sie können Top-ausgerichtete Panels in die ScrollBox einstellen, um CategoryPanelGroup von Delphi zu simulieren.
TCustomPanel -Nachkomme
Standardpanel mit Komponentenverankerungsunterstützung.
Derzeit nur für Delphi .
TJppPngButton ist eine erweiterte TPngBitBtn -Taste aus dem PngComponents -Paket.

Die Taste kann in einem von fünf Zuständen sein: normal , heiß , unten (gedrückt), fokussiert und behindert . Für jeden Zustand können Sie einen ganzen Bereich von Anzeigeparametern festlegen: oberer und unterer Gradienten/Festkörperfarbe (ähnlich wie TJppPanel ), Randfarbe, Stil und Breite, Schriftartparameter (Farbe, Name, Größe, Stil).
Wenn Sie möchten, dass die Schaltfläche in Systemfarben angezeigt wird, setzen Sie Appearance.DefaultDrawing der Eigenschaften. DefaultDrawing to True (alle benutzerdefinierten Farben, die im Appearance.<STATES> wird dann ignoriert).
Die Anzahl aller Farben für alle Button-Zustände ist wirklich groß. Daher habe ich beschlossen, die angezeigten Farben mithilfe von Farbschemata (Farbkarten) einfacher zu verwalten.
Ich habe 36 verschiedene Farbschemata für TJppPngButton erstellt. Um das aktive Farbschema zu ändern, wählen Sie eines der in der Eigenschaft ColorMapType verfügbaren Systeme im Objektinspektor aus.
Farbschemata können mit dem TJppPngButton Color Maps Designer -Programm bearbeitet werden, das sich im Repository im demos -Verzeichnis befindet.
Weitere Informationen ...
Derzeit nur für Delphi .
Diese Taste ist eine leicht abgeschnittene Version des TJppPngButton . Es hat nur einen Gradienten für jeden Knopfstatus und unterstützt keine Farbschemata.
Derzeit nur für Delphi .
Ähnlich wie TJppBasicPngButton , aber mit Unterstützung für die Unterkaption.

Diese Taste ist TJppBasicPngButton sehr ähnlich, basiert jedoch auf TGraphicControl , sodass sie nicht den Fokus nimmt (sie hat keinen fokussierten Zustand).
TCustomComboBox -Nachkommen.
Zusätzliche Eigenschaften:
AnchoredControlsBoundLabel - interne Etikett.Flash - Blitzoptionen. Rufen Sie die FlashBackground -Methode im Code auf, um das Blinken einzuschalten.ShowLabel - Zeigen / Hide Bound Label.TagExt TCustomComboBoxEx -Nachkomme.
Der Fehler der Elementhöhe in älteren Delphi -Versionen behoben.

Zusätzliche Eigenschaften:
AnchoredControlsBoundLabel - interne Etikett.Flash - Blitzoptionen. Rufen Sie die FlashBackground -Methode im Code auf, um das Blinken einzuschalten.ShowLabel - Zeigen / Hide Bound Label.TagExtItemIndexDerzeit nur für Delphi .
Hoch anpassbarer Combobox basierend auf dem TFlatComboBox
https://github.com/jackdp/flatstyle/blob/master/source/tflatcomboboxunit.pas

Ein hochpassbares Combobox , das eine Liste vordefinierter und/oder benutzerdefinierter Farben anzeigt.




Das TJppColorComboBox verfügt über 4 integrierte Komponenten: eine Etikett und 3 Schaltflächen zum Ändern, Kopieren und Einfügen von Farbe.
Farben können in drei Formaten angezeigt werden: RGB INT (z. B. 051.102.255), RGB -Hex (z. B. #3366ff) und BGR Hex (z. B. $ 00ff6633). Wenn Sie die Farbe in einem anderen Format anzeigen müssen, können Sie dies im Event -Handler OnGetColorStrValue -Event tun.
Zusätzlich zu Standardartikeln (Farbe) können Sie auch Separatoren und ChangeColor -Elemente hinzufügen.
Jede vom Benutzer ausgewählte Farbe, aber noch nicht in der Farbliste, kann automatisch zum Ende oder oben in der Liste hinzugefügt werden. Dank dessen hat der Benutzer Ihrer Anwendung Zugriff auf die Geschichte zuvor ausgewählter Farben.
Weitere Informationen ...
Ein hochpassbares Listbox mit einer Liste der vordefinierten und/oder benutzerdefinierten Farben.


Es ist TJppColorComboBox sehr ähnlich, hat aber keine integrierten Komponenten.
TJPPColorSwatch ist eine Komponente, die die Farbe und ihren Wert (Code) in zwei Formaten anzeigt.

Es besteht aus drei Teilen: einem Rechteck, das die Farbe (links) und zwei Rechtecke mit den Codes der ausgewählten Farbe anzeigt. Jeder Teil kann versteckt werden, sodass Sie beispielsweise nur ein Rechteck mit einer Farbe oder nur den Farbcode im ausgewählten Format anzeigen können.
Verfügbare Farbformate:
| Format | Beispiel |
|---|---|
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% |
Wenn Sie den Farbcode in einem anderen Format anzeigen möchten, können Sie dies im OnGetTopColorStrValue -Ereignishandler (für den oberen Farbcode) und OnGetBottomColorStrValue (für den Boden) tun.
Tjppcolorswatchex ist eine erweiterte Version der TJPPColorSwatch . Es verfügt über ein integriertes Etikett ( BoundLabel ) und drei Tasten: ButtonChangeColor , ButtonCopyColor und ButtonPasteColor .
BoundLabel ist eine Standardkennzeichnung ( TCustomLabel -Nachkommen) und kann links, rechts, über oder unterhalb der Komponente angezeigt werden. Die Schaltflächen werden aus der Klasse TJppBasicSpeedButton geerbt, sodass Sie die Farben für alle Tastenzustände (normal, heiß, unten, deaktiviert) und das PNG -Symbol frei einstellen können.
Eine hoch anpassbare Fortschrittsleiste, die auf JVSpecialProgress aus dem JVCL -Paket basiert, jedoch mit vielen meiner Modifikationen. https://github.com/project-jedi/jvcl/blob/master/jvcl/run/jvspecialprogress.pas

Meine Modifikationen:
Aussehen
Hier können Sie viele Parameter im Zusammenhang mit dem Erscheinungsbild der Steuerung ändern: Hintergrund- und Fortschrittsbalkenfarbe (solide oder gradienten), randfarbene Farbe und Größe, Schriftarten (für normalen und behinderten Zustand), Textausrichtung (oberster links, oberster Zentrum, obere rechte, links, Mitte ...), Präfix und Postfix, Textschatten und mehr. Im Gegensatz zum Standard -Fortschrittsbalken können Sie auch die Farben einstellen, die angezeigt werden, wenn die Komponente deaktiviert ist.
Endmarker - Ein Rechteck, das am Ende der Fortschrittsleiste gezogen wird.
TextDisplayMode - Position, Prozentsatz, Position in Pixel, Bildunterschrift oder keine.
Bühnen: Mittel und Finale - Sie können hier Farbkorrekturen vornehmen.
ProgressBarvisible - Hier können Sie die Fortschrittsleiste daran hindern, den Text anzuzeigen, und nur den Text anzeigen.
Ankored Controls
Sie können eine externe Steuerung (z. B. Tbutton, Tedit) an jede Kante einer Komponente festlegen.
BoundLabel - interne Etikett
UpdatePositionIfDisabled - Hier können Sie entscheiden, ob Sie die Fortschrittsleiste aktualisieren, wenn die Komponente deaktiviert ist.
Onprogramm
Ausgelöst, wenn sich die aktuelle Position ändert. Sie können hier einige zusätzliche Aktionen ausführen.
Tagext
Derzeit nur für Delphi .
Eine leichte HTML -Tippkomponente für Delphi (in Lazarus, die es kompiliert, aber nicht funktioniert).

Diese Komponente wurde durch Kombination von zwei Pascal -Einheiten erstellt:
TflathinIntunit.pas aus dem FlatStyle -Paket
https://github.com/jackdp/flatstyle/blob/master/source/tflathinsintunit.pas
Lizenz: kostenlos (keine zusätzlichen Informationen)
Htint.pas aus dem JVCL-Paket https://github.com/project-jedi/jvcl/blob/master/jvcl/install/jvclinstall/helpers/httint.pas
Lizenz: MPL 1.1
Lizenz für meine Modifikationen: Keine Lizenz (öffentlich zugänglich)
TJPPHTMLHINT ist keine HTML-Komponente mit vollem Funktionieren. Dies ist eine leichte und sehr einfache Komponente mit Unterstützung für einige HTML -Tags mit einer etwas ungewöhnlichen Syntax.
Unterstützte Tags:
B - <b>bold text</b>
I - <i>italic</i>
U - <u>underline</u>
S - <s>strike out</s>
C : Farbe - Textfarbe, zB: <c:clRed>text</cl> , <cl:Red>text</c> , <c:#FF0000>text</c> , <c:255,0,0>RGB color</c>
BG : Farbe - Hintergrundfarbe, z. <bg:clYellow>yellow background</bg>
IND : X - Eindrückung aus der Stromposition. eg. <ind:10>
Aind : x - Absolute Eindrückung, z. <aind:20>
FS : X - Schriftgröße, z. <fs:12>some text</fs> , <fs:+4>text</fs>
FN : Name - Schriftname, z. <fn:Verdana>text</fn> , <fn:Courier New>text</fn> , <fn:default>restore default font</fn>
Metakoloren (oder Modenfarben): Farben aus dem Appearance.DarkModeColors entnommen Appearance.LightModeColors
Beispiel: <c:mclDarkBlue><bg:mclLightGray>dark blue text on light gray background</bg></c>
HTML -Entitäten: Siehe Funktion ReplaceHtmlEntities in der Datei JPP.HtmlHint.pas .
TCustomLabel -Nachkommen.
Zusätzliche Eigenschaften: Verankerte Kontrolle, Tagext.
Basierend auf TJppLabel .
Zusätzliche Eigenschaften: Schatten für aktiviertes und deaktiviertes Zustand, Deaktivierte Bildunterschrift, Rand (Farbe, Größe, Stil), Polsterung.

TCustomLabel -Nachkommen.
Etikett mit zusätzlichen Schriftarten ( TFont ) für 5 Staaten: Normal , besucht-normal , heiß , besucht und behindert .
Nach dem Klicken kann die URL im Standardbrowser geöffnet, die Datei mit ShellExecute ausführen oder eine Aktion von TactionList ausführen.
Weitere Informationen ...
Eine Etikettenkomponente aus 3 Teilen:
Caption )RightCaption )Basierend auf TPEGTOPLINELABEL von PEGTOP Common Components von Jens Gruschel (http://www.pegtop.net/delphi/components/common/index.htm).



Meine Modifikationen:
Annex in RightCaption umbenanntJpp hinzugefügt Die RightCaption hat eine eigene Schriftart, Hintergrund- und Randfarbe. Die RightCaption kann durch RightCaptionPosDeltaY vertikal positioniert werden. Die Linie kann durch LinePosDeltaY vertikal positioniert werden. Die Länge der Linie kann durch LineSizeDeltaX1 und LineSizeDeltaX2 modifiziert werden. Wenn AutoHeight = True , wird die Höhe der Komponente automatisch berechnet und angewendet.
Eine einfache Etikettenkomponente aus 2 Bildunterschriften: links ( Caption ) und rechts (Eigenschaft RightCaption ).

Der Speicherplatz zwischen Bildunterschriften kann mithilfe der Spacing geändert werden. Basierend auf TJPPDoublelinelabel .
Eine von TCustomEdit abgeleitete Bearbeitungskomponente.

Zusätzliche Eigenschaften:
AnchoredControlsAppearance - Hier können Sie die Hintergrund- und Schriftfarbe für vier Zustände festlegen: normal, heiß, fokussiert, deaktiviert.BoundLabel - interne EtikettFlash - FlashColor , FlashCount , FlashInterval . Rufen Sie die FlashBackground -Methode an. Diese Funktion kann verwendet werden, um den Benutzer eines falschen Wertes anzuzeigen.ShowLabel - Zeigen / Hide Bound Label.TagExt - erweitertes Tag. Derzeit nur für Delphi .
Ähnlich wie bei TJppEdit , hat aber auch die Fähigkeit, Grenzfarben zu definieren.
Grenzzeichnungsmethoden basierend auf TFlatEdit aus dem FlatStyle -Paket https://sourceforge.net/projects/flatstyle/

TCustomMemo -Nachkomme.
Zusätzliche Eigenschaften:
AnchoredControlsAppearance - Hier können Sie die Hintergrund- und Schriftfarbe für vier Zustände festlegen: normal, heiß, fokussiert, deaktiviert.BoundLabel - interne EtikettFlash - FlashColor , FlashCount , FlashInterval . Rufen Sie die FlashBackground -Methode an. Diese Funktion kann verwendet werden, um den Benutzer eines falschen Wertes anzuzeigen.ShowLabel - Zeigen / Hide Bound Label.Text - Einfacher Zugriff auf Lines.TextTagExt - erweitertes Tag. Ähnlich wie TJppMemo , hat aber auch die Fähigkeit, Grenzfarben zu definieren.
Grenzzeichnungsmethoden basierend auf TFlatMemo aus dem FlatStyle -Paket https://sourceforge.net/projects/flatstyle/

Eine Standard TCheckBox mit TagExt und AnchoredControls -Unterstützung.
Ein Standard TRadioButton mit der Unterstützung TagExt und AnchoredControls .
Ein Standard TDateTimePicker mit der Unterstützung von BoundLabel , TagExt und AnchoredControls .
Nur Windows
Lazarus und Delphi X2 oder neuer.
Hochpassbarer GDI+ -Kuschstil -Selektor mit BoundLabel und AnchoredControls .

Eine hochpassbare Kombinationsbox mit einer Liste von Pinselstilen.

Der aktuelle Stil kann mit der Selected Eigenschaft gelesen/festgelegt werden.
Der Pinselstil -Anzeigenname kann im OnGetDisplayName -Event -Handler geändert werden.
Das TJPPBrushStylecombobox verfügt über ein integriertes Etikett ( BoundLabel ).
Eine hochpassbare Kombinationsbox mit einer Liste von Stiftstilen.

Der aktuelle Stil kann mit der Selected Eigenschaft gelesen/festgelegt werden.
Der Anzeigeame des Stiftstils kann im Event -Handler OnGetDisplayName geändert werden.
Das TJPPPenstylecombobox verfügt über ein integriertes Etikett ( BoundLabel ).
Eine Standard TTimer -Komponente mit einigen zusätzlichen Eigenschaften und Methoden:
RepeatCountLimit -Eigenschaft. Hier können Sie festlegen, wie oft das in der Interval angegebene Zeitintervall erreicht werden kann. Der Wert 0 bedeutet keine Grenze.Counter . Jedes Mal, wenn das in der Interval angegebene Zeitintervall ausgeht, wird die Counter durch 1. Wenn der Counter den Wert von RepeatCountLimit erreicht, wird der Timer gestoppt und der Ereignishandler von OnRepeatCountLimitReached wird ausgelöst (falls zugewiesen).ClearCounterOnStart -Eigenschaft. Wenn auf True eingestellt ist, setzt die Start den Counter zurück.Start . Setzt für True Enabled . Wenn ClearCounterOnStart auf True eingestellt ist, legt der Start die Counter auf 0 fest.Stop -Methode. Legt die Enabled auf False fest.OnRepeatCountLimitReached Ereignis - abgefeuert, wenn der Counter den Wert von RepeatCountLimit erreicht. Beispiel: Anzeige der Zähler jede ein Sekunde. Zeigen Sie die Nachricht nach 10 Sekunden an und schalten Sie den Timer aus.
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 ; Eine nicht-visuelle Komponente, die eine beliebige Anzahl von PNG-Bildern speichern kann. Kann einer externen Timage -Komponente zugeordnet werden.
Im Gegensatz zu Timagelist kann jedes Bild eine andere Größe haben. Die Bilder werden intern als PNG gespeichert, nicht als Bitmaps, wodurch die Größe der DFM -Datei reduziert wird. Natürlich werden die PNG -Bilder komprimiert.
PNG -Bilder können im Objektinspektor oder im Code mit AddPngImage , AddImageFromFile oder Items.Insert hinzugefügt werden.
...
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 ; Die AddPngImage -Methode fügt eine Kopie des PNG -Bildes hinzu, sodass Sie im obigen Beispiel für die Befreiung des Png -Objekts verantwortlich sind.
Um ein PNG -Bild aus einer Sammlung abzurufen, können Sie die Methoden verwenden: GetPngImage , GetPngImageByName oder Items[Index].PngImage .
In der Sammlung gibt es zusätzliche Eigenschaften, die jedem PNG -Bild zugeordnet sind:
Name : string;
Description: string;
Tag: integer;
Enabled: BooleanUnd lesen Sie nur Eigenschaften:
Width: integer;
Height: integer; Wichtig! Die TPNGImage -Objekte werden beim Erstellen von Sammelelementen automatisch erstellt. Wenn Sie überprüfen möchten, ob ein Element der Sammlung ein PNG -Bild zugewiesen ist, können Sie dies nicht mit NIL tun. Sie müssen die Methode TPngImage.Empty verwenden:
// Improperly
if JppPngCollection.Items[ 0 ].PngImage <> nil then ... // <-- Always returns True // Properly
if not JppPngCollection.Items[ 0 ].PngImage.Empty then ... // OK, image assigned TJppStorageCtrl ist eine nicht-visuelle Komponente, mit der Sie Informationen von verschiedenen Typen in der Sammlung speichern können. Jedes Element der Sammlung speichert die folgenden Daten:
Die Elemente sind vom Objektinspektor mithilfe StorageCollection -Eigenschaft übergreifbar. Die Werte jedes Elements der Sammlung, mit Ausnahme von Zeigern, können auch im Objektinspektor festgelegt werden. Zeigerwerte können nur im Code festgelegt werden und werden standardmäßig auf nil initialisiert.
Um die Sammelelemente im Code zu erheben, können Sie die Eigenschaften Items verwenden, z. B.:
JppStorageCtrl.Items[ 0 ].IntValue1 := 1 ;
JppStorageCtrl.Items[ 0 ].PointerValue1 := SomePointer; Da Items jedoch als Standardeigenschaft festgelegt sind, können Sie sie einfach schreiben:
JppStorageCtrl[ 0 ].IntValue1 := 1 ;
JppStorageCtrl[ 0 ].PointerValue1 := SomePointer;Diese Komponente kann nützlich sein, wenn Sie Zugriff auf einige globale Daten haben möchten und keine globalen Variablen erstellen möchten.
Manchmal verwende ich diese Komponente in den frühen Phasen des Schreibens von Anwendungen. In späteren Phasen besteht ein definitiv besserer Weg, um Daten zu speichern und zu verwalten, darin, spezielle Datensätze, Klassen, Arrays, Generika/Zeiger -Container usw. zu entwerfen.
Eine nicht-visuelle Komponente, mit der Sie die Sammlung von Zeichenfolgen mit zusätzlichen Daten speichern können. Jedes Element der Sammlung hat die folgenden Eigenschaften:
ItemName: string;
Value : string;
Enabled: Boolean;
Tag: integer;Vor der Installation des JPPACK -Pakets müssen Sie zunächst die folgenden Pakete installieren:
Wenn Sie die PNG -Komponenten mit dem GetIt -Paket -Manager installiert haben, müssen Sie wahrscheinlich den Namen PngComponents in PngComponentsD in der Datei jppack.dpk ändern.
Im Ordner Pakete finden Sie Installationspakete für alle Delphi -Versionen von Delphi 2009 bis 10.4 Sydney . Gehen Sie mit dem Namen Ihrer Delphi -Version (z. B. Delphi_XE7 für XE7 -Version) zum Unterordner und öffnen Sie die Datei JPPack.dproj oder JPPack.dpk . Klicken Sie im Projektmanager mit der rechten Maustaste auf die Datei JPPack.bpl und dann im Popup-Menü Install . Nach kurzer Zeit sollte eine Nachricht angezeigt werden, in der Informationen zur korrekten Installation des Pakets und mit der Liste der neu installierten Komponenten angezeigt werden. Alle Komponenten finden Sie auf der JPPACK -Seite in der Werkzeugpalette .
Sie können auch Paket für Win64 -Ziel kompilieren.
Nach der Installation des Pakets ist es am besten, den source zum Bibliotheksweg hinzuzufügen:
Tools -> Options .Environment Options -> Delphi Options -> Library .; (Semikolon) und der Weg zum source . Installieren Sie zunächst das JPLIB -Paket von https://github.com/jackdp/jplib
Installieren Sie unter Windows auch den Igdiplusmod von https://github.com/jackdp/igdiplusmod
Öffnen Sie die Paketdatei ( packagesLazarusjppacklcl.lpk ) in der IDE Lazarus. Klicken Sie auf die Schaltfläche Compile und Use Install verwenden Sie die IDE. Alle Komponenten finden Sie auf der Seite jppacklcl in der Komponentenpalette .
Installieren Sie das JPLIB -Paket unter https://github.com/jackdp/jplib
Installieren Sie unter Windows auch den Igdiplusmod von https://github.com/jackdp/igdiplusmod
Öffnen Sie die Paketdatei ( packagesCodeTyphonjppacklcl.ctpkg ) in der Typhon -IDE. Klicken Sie auf die Schaltfläche Compile package (2-ND-Schaltfläche in der Symbolleiste) und klicken Sie dann auf die Schaltfläche 3-RD, wählen Sie die IDE Install und Wiederaufbau. Alle Komponenten finden Sie auf der Seite jppacklcl in der Komponentenpalette .
Die Lizenz für meine Arbeit: gemeinfrei. Sie können mit meinem Code, was Sie wollen, ohne Einschränkungen tun.
In einigen Einheiten verwende ich jedoch Code von anderen Open -Source -Projekten, sodass Sie die PAS -Quelldateien und die Lizenz der Autoren dieser Projekte für weitere Informationen untersuchen.