Komponenten Samlng für Lazarus.

Zur Vorstellung von Komponenten und Units für Lazarus
pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Komponenten Samlng für Lazarus.

Beitrag von pluto »

Hallo,
ich möchte hier meine eigene Komponenten samlung vorstellen.
Zum Runterladen gibt es noch nix, da ich erst noch weitere Komponenten hinzufügen wollte.
Geplant sind folgende:
01 - Playlisten
02 - MediaPlayer(wie in Delphi), basieren auf XINE
03 - Favoriten Liste
04 - FileComboBox
05 - DirComboBox
06 - Link Label

TPLFileListBox
Da die Lazarus Eigene "File Listbox" nicht richtig geht, habe ich eine eigene geschrieben.

Die FileListBox stellt zuerst Verzeichnisse, dann Dateien dar.
Es kann gefilter werden, welche Datei Typen angezeigt werden sollen.

Die TPLFileListBox ist von der normalen ListBox Komponenten abgeleitet, die leider einige BUGS aufweis.
Mir Bekannte bug bei der FileListBox:
Wenn mit Enter das verzeichniss geändert werden soll kommt aus welchen grund auch immer eine
AV.

Die TPLFileListBox, kann mit einer TPLFileEdit und einem Label Komponenten verbunden werden.

TPLDirectoryListBox
Die TPLDirectoryListBox ist von der TPLFileListBox abgeleitet und stlelt nur Verzeichnisse dar.
Wird die FileListBox eigenschaft zugeweisen wird in der zugewisenden Komponente nur noch Dateien angezeigt.

TPLFileEdit
Wenn die TPLFileEdit mit einer TPLDirectoryListBox verbunden ist, kann ein verzeichnis eingeben werden,
dann enter drücken. Wenn sie mit einer TPLFileListBox verbunden ist passiert da das gleiche,
Hier kann man auch Datei Masken in der Form: *.zip*.rar eingeben werden.
.* es werden nur Dateien angezeigt *. nur Verzeichnise.

TPLExtList
Von der Combobox abgeleitet Komponente, welche mit einer TPLFileListBox verbunden werden kann/sollte.
Der Zweck sollte eigentlich klar sein. Im Moment kann man noch nicht im OI die einträge hinzufügen.
Das muss über die Procedure AddExt(const aExt, aValue:String); passieren.

TPlFileTree
Die TPLFileTree stellt wie der Name schon sagt alles in einem Baum dar und zwar in einer TreeView.

Im Packte sind im Moment folgende Komponenten drin:
01 - TPLBrushStyleComboBox
02 - TPLBrushStyleListBox
03 - TPLColorComboBox
04 - TPlColorFehld
05 - TPlColorListBox
06 - TPLDirectoryListBox
07 - TPLFontComboBox
08 - TPLFontListBox
09 - TPLPenStyleListBox
10 - TPLFileListBox
11 - TPLFileEdit
12 - TPLExtList
13 - TPLDirectoryListBox
14 - TPLFileTree(nutzt intern eine Treeview)

Leider sind die ICONS noch sehr einfach. Da ich keine lust hatte mir welche aus dem Internet oder sonwo zu suchen.
Habe ich sehr eifnach selbst gemacht. Die aber eigentlich nicht passend sind.

Alle 13 Komponenten haben ICONS.

Wenn ihr noch wünsche oder Vorschläge habt nur her damit.

Evlt. füge ich später noch einige Screenshots ein mal sehen

Edit01: Samstag den 19.April.2008
Lizenz weiß ich jetzt im Moment nicht, die Komponenten sind auf jeden Fall Freeware und dürfen frei verändert werden. Aber der Header sollte nicht gelöscht oder geändert werden.

Wenn ihr die Komponenten ICONS seht wiest ihr was ich meine *G*

Ich hoffe das ich alle Dateien beisammen habe, die Option Projekt veröffentlichen habe ich einige male zwar verwendet aber einmal leider falsch so wurden mein Projekt Verzeichnis gelöscht. Warum die Funktion einen nicht vorwarnt weiß ich allerdings nicht. Also gibt niemals das Projekt Verzeichnis an wenn ihr keine Backups habt.
Das Verzeichnis sollte leer sein !

Edit02: Sontag den 20.April.2008
[highlight=red]Hineweis[/highlight]
Ich weiß nicht ob die Datei Komponenten auch unter Windows Gehen.

Ich habe jetzt ein beispiel Projekt hinzugefügt und zwei Bilder

Edit03: Mittwoch den 12.Juni.2008
Habe jetzt ein neue File Komponente hinzugefügt. Die FileBar. Die ist auch schon fast fertig*freu*

Die Filebar habe ich mir bei "Windows Vista" abgeschaut die Idee gefiel mir eigentlich recht gut.
Somit habe ich gestern mit der Entwicklung angefangen. In einigen Tagen kann ich sie evlt. schon hochladen.

Als nächstes möchte ich mein FileEdit erweitert bzw. eine FileCombobox erstellen.
Wenn ich z.b. bei irgendeinen Datei Manger unter Linux ein Verzeichnis eingebe und eine Zeitlang warte popup doch so eine Liste auf mit allen möglichen Einträgen. Sowas möchte ich auch erstellen. Das Prinzip ist eigentlich recht einfach glaube ich.

Ich werden meine Komponenten Sammlung in den Nächsten Tagen updaten. Ein Ziel ist es auch noch die Icons zu ändern und eine passende Beschreibungen zu den einzelnen Komponenten zu erstellen. Mal sehen womit und wie ich das machen werde.
Dateianhänge
Beispiel Anwendung für Linux
Beispiel Anwendung für Linux
Demo_Sonstige.png
DemoPlutoKomponent.zip
Version 0.0 Alpha
(13.66 KiB) 138-mal heruntergeladen
Plutoskomponenten.zip
(30.67 KiB) 189-mal heruntergeladen
Zuletzt geändert von pluto am Do 12. Jun 2008, 13:38, insgesamt 7-mal geändert.
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Eigentlich währe die Sammlung jetzt soweit das ich sie veröffentlichen könnte. Aber die
ICONS sind noch mist. Wenn mir jemand evlt. für die einzelnen Komponenten ICONS vorschlagen könntet. Währe das toll.

Weil die Komponenten sind zwar noch nicht 100% Fertig z.b. die Lezte die TPLFileTree aber
sie können schon genutzt werden.
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

TPLColorComboBox coooooool so was suche ich schon lange.

PS: Icons sind zwar schön, aber nicht soooo wichtig
Wenn die Kompos funktionieren, dann nur her damit.

PPS: Unter welcher Lizenz eigentlich?
Kann man sie auch in Freeware verwenden?

PPPS: Was für Abhängigkeiten haben die Kompos?
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

alexander hat geschrieben:TPLColorComboBox coooooool so was suche ich schon lange.

Wo suchst du denn?
Lazarus hat eine TColorBox im Additional Tab und ein TColorButton in Misc.
Oder meinst du was anderes?

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

theo hat geschrieben:
alexander hat geschrieben:TPLColorComboBox coooooool so was suche ich schon lange.

Wo suchst du denn?
Lazarus hat eine TColorBox im Additional Tab und ein TColorButton in Misc.
Oder meinst du was anderes?
Ehmmm ich meine eine Listbox/Combobox, die normale Einträge hat nur farbig...
Ich hoffe pluto meint so etwas und nicht noch eine FarbauswahlBox

Vielleicht ist es auch die TPLPenStyleListBox....

Pluto? Ist die Komponente dabei die ich meine?
Zuletzt geändert von alexander am Sa 19. Apr 2008, 19:42, insgesamt 1-mal geändert.
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Eine ComboBox ist eine Combobox ...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Stimmt eine ColorBox gibt es schon allerdings nur mit den Standard Farben und den System Farben meine hingegen nutzt die Farben aus meiner Unit das sind über 600. Gut! ich werde die Komponenten mal hochladen.

Und was die Abhängigkeiten angeht ich denke da sollte es keine geben. Da alle Komponenten auf Standard Komponenten Basieren.

Besonders Toll finde ich die Datei Verwaltung Komponenten. Im Moment Listen sie halt nur Einträge auf also Datei und oder Verzeichnisse. Darunter finde ich die Möglichkeit diese zu Filtern praktisch und vorallem die TPLFileTree die ist aber noch nicht fertig.

Das Packet besteht aus zwei PAS Dateien und eine LPK Datei und natürlich eine lrz Datei....

Edit: Die Sammlung ist hochgeladen.
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

emmmm wo sind sie denn?
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Wie meinst du das ?
Einfach die lpk Datei Öffnen und Installieren.
Das Archiv runterladen und dann plutocompos.lpk Öffnen und Installieren.
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

ohh ok übersehen.... den 1. Post
sorry
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Und kannst du sie Installieren ? unter Windows gehen die noch nicht. weil ich / verwende und nicht \ bzw. das könnte ich ja mit einer Variable machen.
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

pluto hat geschrieben:Und kannst du sie Installieren ? unter Windows gehen die noch nicht. weil ich / verwende und nicht \ bzw. das könnte ich ja mit einer Variable machen.
directoryseparator ist die constante dafür. ;-) Selbst erst vor kurzem entdeckt... Ich nehme einfach mal an, dass Lazarus diese variable Plattformabhängig umstellt. Sonst wäre sie ja sinnlos...
Ja installieren kann ich sie, klappen auch... nur es ist halt die Listbox mit farbigen Einträgen nicht dabei, die suche.... Deshalb bingen sie mir nicht allzuviel (noch nicht). Aber wenn ich eine Kompo suche, weiß ich ja wo ich nachschauen kann.
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ja die kenne ich directoryseparator.

Die Listbox sollte dabei sein: TPLColorListBox. Läuft denn bei dir auch das Beispiel Programm ?
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

pluto hat geschrieben:Ja die kenne ich directoryseparator.
hmmm macht es es plattformunabhängig?

pluto hat geschrieben:Die Listbox sollte dabei sein: TPLColorListBox. Läuft denn bei dir auch das Beispiel Programm ?
Was für ein Beispiel programm?
hmmm die TPLColorListBox zeigt doch aber farben, oder? Soll jedenfalls, denn sie zeigt immer nur die obere an. (siehe screenshot) (genauso zur laufzeit)

Ich suche aber:
Ehmmm ich meine eine Listbox/Combobox, die normale Einträge hat nur farbig...
d.h. farbige schrift. Und Keine fraben auswählen.
Dateianhänge
Bildschirmfoto.png
Bildschirmfoto.png (6.1 KiB) 3295 mal betrachtet
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Beitrag von DiBo33 »

Kommt darauf an, woran du die unterschiedlichen Farben festmachst.

Code: Alles auswählen

procedure ColorList(aCanvas: TCanvas; aColor, eColor: TColor; Index: integer;
  State: TownerDrawState; aRect: TRect; aEntry: string);
var
  l, t: integer;
  c: TColor;
begin
  t := aRect.Top;
  t := t + ((aRect.Bottom - t - aCanvas.TextHeight('Qq')) SHR 1);
  l := aRect.Left + 2;
  if not (odSelected in State) then begin
    if odd(Index) then c := aColor else c := eColor;
    aCanvas.Brush.Color := c;
    aCanvas.Brush.Style := bsSolid;
  end;
  aCanvas.FillRect(aRect);
  aCanvas.Brush.Style := bsClear;
  aCanvas.TextRect(aRect, l, t, aEntry);
end;

Zeichnet bspw. abwechselnd unterschiedliche Hintergrundfarben.
Hierzu stellst du den Style der List-/ComboBox auf csOwnerDrawFixed und
rufst im DrawItem-Ereignis die Procedure auf

Code: Alles auswählen

ColorList(TListBox(Control).Canvas, FAltColor, TListBox(Control).Color, Index,
    State, ARect, TListBox(Control).Items[Index]);


Kannst dir natürlich auch eine eigene Combo ableiten und einbauen.

Antworten