Übersicht über die verfügbaren Komponenten

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Übersicht über die verfügbaren Komponenten

Beitrag von braunbär »

Gibt es so etwas irgendwo? Ich habe gesucht und leider nichts gefunden.

Mit FPC/Lazarus kommen eine Riesenzahl an verschiedenen Komponenten, viele werden mit der Defaultinstallation automatisch eingebunden, aber wohl gar nicht alle.

In der LCL Hilfe sind zwar die verschiedenen Komponenten alphabetisch aufgelistet, aber es steht nirgends, wozu die Komponente dienen, was sie genau machen, und bei ähnlichen Komponenten, was die verschiedenen Komponenten (z.B. die verschiedenen Buttontypen) voneinander unterscheidet. Gibt es da etwas, dass man nicht alle Komponenten durchprobieren muss, um einen Überblick darüber zu bekommen, was es gibt.

Ich plane jetzt ein komplettes Redesign meines von Delphi portierten Entwicklungsframeworks, und ich vermute, dass es für einige Aufgaben Komponenten geben wird, die besser sind als das, was ich derzeit verwende.

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Übersicht über die verfügbaren Komponenten

Beitrag von MacWomble »

Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Übersicht über die verfügbaren Komponenten

Beitrag von Warf »

Siehe den post von MacWomble, aber es gibt leider keine vollständige oder auch aktuelle Liste.

Sonderlich detailliert ist es meistens auch nicht. Dokumentationstechnisch ist Lazarus eine ziemliche Katastrophe. Du findest meist nur Sachen wenn du weißt wonach du suchen musst

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: Übersicht über die verfügbaren Komponenten

Beitrag von braunbär »

Danke für diese Links, die sind sehr interessant und hilfreich, auch wenn es nicht ganz das ist, wonach ich fragen wollte. Da gibt es wirkich eine ganze Menge Sachen zum Stöbern.

Was ich mir gewünscht hätte, wäre eine kurze Beschreibung aller Komponenten (und eventuell auch sonstigen Klassen), die im standardmäßigen Lazarus Download inkludiert sind. Mehr oder weniger das, was man in der LCL.chm findet, aber eben mit einer brauchbaren Textbeschreibung der Komponenten.

Warf hat geschrieben:Dokumentationstechnisch ist Lazarus eine ziemliche Katastrophe.

Tja, ich fürchte, da wird es dann nicht viel mehr geben als das extrem dürre LCL.CHM. Schade, weil schon einiges interessant sein könnte, aber es einen beträchtlichen Aufwand braucht, um herauzufinden, wozu die Dinge überhaupt gut sind - z.B. die TCoolBar. In der Doku findet sich nur die Liste der Properties und der Ableitungsbaum. Damit kann ich nicht viel anfangen. Müsste also ein Demoprojekt mit einer TCoolbar erstellen, aber dann brauche ich vermutlich noch TCoolBand und TCoolBands, und allein das Zusammenspiel der Komponenten zu erforschen, wäre ein etwas mühsames Ratespiel. Und das ist nur eine unter vielen derartigen Komponenten.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Übersicht über die verfügbaren Komponenten

Beitrag von wp_xyz »

Kennst du diese wiki-Seite: http://wiki.lazarus.freepascal.org/LCL_Components? Da findest du zumindest mehr über die meisten Komponenten auf den Paletten, auch wenn es oft auch nur ein Satz ist.

Ansonsten bleibt mir nur, Werbung in eigener Sache zu machen. Ich habe für das demnächst erscheinende Buch "Lazarus Handbook" ein Kapitel über die Komponenten-Palette geschrieben und für jede Standard-Palette "Sinn und Zweck" sowie die Haupt-Properties und Methoden erläutert und bei den nicht direkt zugänglichen Komponenten auch eigens ein Demo-Projekt beigefügt (https://www.blaisepascalmagazine.eu/laz ... t-palette/).

Aber die nicht installierten Komponenten sind auch da nicht beschrieben. Der Quellcode steht im Ordner "Components" der Lazarus-Installation. Mit etwas Glück findest du ein Readme.txt o.ä., z.B. in googleapis, paradox, oder vlc, und/oder zumindest ein aussagekräftiges Demo.

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: Übersicht über die verfügbaren Komponenten

Beitrag von braunbär »

Die Seite könnte schon was sein - wenn sie denn funktionieren würde. Keine Ahnung, ob bei mir oder auf Sourceforge etwas kaputt ist. Jeder Link auf der Seite führt zur gleichen Fehlermeldung:

Code: Alles auswählen

An error has been encountered in accessing this page.
 
1. Server: lazarus-ccr.sourceforge.io
2. URL path: /docs/lcl/menus/tmainmenu.html
3. Error notes: NONE
4. Error type: 403
5. Request method: GET
6. Request query string: NONE
7. Time: 2018-09-08 22:23:40 UTC (1536445420)
 
Reporting this problem: The problem you have encountered is with a project web site hosted by SourceForge.net. This issue should be reported to the SourceForge.net-hosted project (not to SourceForge.net).
 
If this is a severe or recurring/persistent problem, please do one of the following, and provide the error text (numbered 1 through 7, above):
 
    Contact the project via their designated support resources.
    Contact the project administrators of this project via email (see the upper right-hand corner of the Project Summary page for their usernames) at user-name@users.sourceforge.net
 
If you are a maintainer of this web content, please refer to the Site Documentation regarding web services for further assistance.
 
NOTE: As of 2008-10-23 directory index display has been disabled by default. This option may be re-enabled by the project by placing a file with the name ".htaccess" with this line:
 
Options +Indexes
 


Wann kommt übrigens das Buch heraus? Wirst du das hier im Forum bekanntgeben?

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Übersicht über die verfügbaren Komponenten

Beitrag von wp_xyz »

Oh, da ist wieder das übliche Chaos... Leider finde ich den richtigen "Oberlink" nicht, aber dieser Link hat am Ende diese große mit "Component Palette" überschriebene Tabelle, die für die meisten Komponenten einen Querverweis zum Wiki (nicht zu der, wie du richtig gefunden hast, momentan defekten Online-Version der chm-Datei).

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: Übersicht über die verfügbaren Komponenten

Beitrag von braunbär »

Danke, das hilft schon sehr weiter, auch wenn die Information zu manchen Punkten sehr dürr ist - speziell dort, wo sich Komponenten ähnlich sind, wäre es hilfreich, wenn die Unterschiede klar angesprochen würden. Vielleicht gibt es das ja dann in dem Lazarus-Buch, das neu herauskommt ;)

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Übersicht über die verfügbaren Komponenten

Beitrag von wp_xyz »

Ich habe jetzt einiges an Arbeit in die Seiten reingesteckt und viele Lücken ausgefüllt.

Eine Seite zu Bookmarken ist http://wiki.lazarus.freepascal.org/Component_Palette. Über die lange Tabelle in Querformat ganz oben kommt man zu den einzelnen Paletten, die jeweils die Komponenten zusammen mit Icon und Kurzbeschreibung in einer Tabelle zusammenfassen; dabei ist mit den Haupt-Wiki-Eintrag jeder Komponente verlinkt, sowie mit der Online-Hilfe in der letzten Spalte (die z.Zt. allerdings nicht funktioniert).

Oder man geht über den Link http://wiki.lazarus.freepascal.org/LCL_Components rein. Hier sind die Paletten aufgeführt und die darauf enthaltenen Komponenten. Klick auf den Paletten-Namen und auf den Komponentennamen für auf dieselben Seiten wie schon erwähnt. Die bisher vorhandenen Links zur Online-Hilfe habe ich gegen die wiki-Links ausgetauscht.

braunbär hat geschrieben:Danke, das hilft schon sehr weiter, auch wenn die Information zu manchen Punkten sehr dürr ist - speziell dort, wo sich Komponenten ähnlich sind, wäre es hilfreich, wenn die Unterschiede klar angesprochen würden.

Wenn du spezielle Punkte hast, die man klarer herausarbeiten sollte, kann du diese hier gerne ansprechen.

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: Übersicht über die verfügbaren Komponenten

Beitrag von braunbär »

wp_xyz hat geschrieben:Ich habe jetzt einiges an Arbeit in die Seiten reingesteckt und viele Lücken ausgefüllt.

Vielen Dank dafür!

wp_xyz hat geschrieben:Wenn du spezielle Punkte hast, die man klarer herausarbeiten sollte, kann du diese hier gerne ansprechen.

Auf Anhieb fallen mir zwei Dinge ein:
Sehr hilfreich wäre eine Gegenüberstellung der verschiedenen Buttonkomponenten. Da gibt es etliche, die sich alle ähnlich sehen, aber offenbar doch voneinander unterscheiden. Um die Unterschiede herauszufinden und dann den "optimalen" Button auszuwählen, muss man sich momentan wohl in den Code einlesen.

Die zweite Frage betrifft TSplitter und TPairSplitter. Können die beiden im Prinzip genau das selbe (nur etwas anders umgesetzt), oder sind die für jeweils andere Aufgaben gedacht?

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Übersicht über die verfügbaren Komponenten

Beitrag von wp_xyz »

braunbär hat geschrieben:Sehr hilfreich wäre eine Gegenüberstellung der verschiedenen Buttonkomponenten. Da gibt es etliche, die sich alle ähnlich sehen, aber offenbar doch voneinander unterscheiden. Um die Unterschiede herauszufinden und dann den "optimalen" Button auszuwählen, muss man sich momentan wohl in den Code einlesen.

Die zweite Frage betrifft TSplitter und TPairSplitter. Können die beiden im Prinzip genau das selbe (nur etwas anders umgesetzt), oder sind die für jeweils andere Aufgaben gedacht?

Ich habe die entsprechenden Beschreibungen in den Zusammenfassungen etwas ausführlicher gemacht. Vielleicht ist es jetzt klarer. Ansonsten:
  • TButton -- nur ein Button mit Caption
  • TBitBtn -- wie TButton, aber mit optionalem Icon
  • TSpeedButton - wie TBitBtn, kann aber nicht fokussiert werden. Ein mögliches Anwendungsgebiet wäre eine Eingabezeile (TEdit) mit einem TSpeedButton mit Icon daneben, der z.B. einen anderen Dialog öffnet. Hier ist TSpeedButton von Vorteil gegenüber TBitBtn, weil der Eingabefokus nicht vom TEdit genommen wird.
  • TToolButton -- nicht als separate Komponente verfügbar, da nur als Bestandteil einer TToolbar funktionsfähig.
  • TColorButton -- Spezialbutton, der nichts anderes kann als ein Farbauswahlfenster zu öffnen
  • TEditButton -- unglücklicher Name, gemeint ist ein TEdit mit integriertem SpeedButton.
  • TButtonPanel -- Panel im integrierten Standard-TBitBtn's.
  • TSplitter - nur der vertikale/hoizontale Streifen, den man mit der Maus anfassen muss, um die angrenzenden Controls in der Größe zu verändern.
  • TPairSplitter -- Zusätzlich zu dem Splitter sind schon die angrenzenden Panel-ähnlichen Controls vorhanden, auf denen man wiederum weitere Controls platzieren kann. Ist eher unüblich .Ich weiß nicht mehr genau, aber ich meine mich zu erinnern, dass diese Kombination nicht so flexibel ist wie wenn man einen TSplitter allein verwendet.

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: Übersicht über die verfügbaren Komponenten

Beitrag von braunbär »

Danke dir. Da stellen sich mir noch ein paar Fragen:

Wozu gibt es TButton und TBitBtn - Wenn ich im TBitBtn keine Graphik angebe, habe ich dann nicht einen TButton?
TToolbutton - Was ist der Vorteil, in einer Toolbar den TToolButton an Stelle des TButton (TBitBtn) zu verwenden? Was kann der mehr als der Tbutton?

Und noch was ist mir eingefallen: TToolbar und TCoolbar. TCoolbar scheint mehrzeilig zu können. Machen die Kompos davon abgesehen das Gleiche?

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Übersicht über die verfügbaren Komponenten

Beitrag von wp_xyz »

braunbär hat geschrieben:Wozu gibt es TButton und TBitBtn - Wenn ich im TBitBtn keine Graphik angebe, habe ich dann nicht einen TButton?
Weißt ich nicht. Die richtige Antwort ist wahrscheinlich: Weil's Delphi auch so macht... Und Delphi macht's so, weil's Windows so macht...

braunbär hat geschrieben:TToolbutton - Was ist der Vorteil, in einer Toolbar den TToolButton an Stelle des TButton (TBitBtn) zu verwenden? Was kann der mehr als der Tbutton?
TToolButton ist speziell für TToolbar gemacht. Bietet auch die Möglichkeit, einen Pfeil für ein Dropdown-Menü unterzubringen (Style = tbsDropdown). Die Frage ist wahrscheinlich eher: Warum überhaupt eine TToolbar, wenn man dasselbe auch mit einem Panel und SpeedButtons machen könnte? Das ginge auch, und würde wahrscheinlich gar nicht auffallen. Der Unterschied tritt zutage, wenn viele Buttons vorhanden sind: dann bricht TToolbar in eine neue Zeile um, das Panel würde die rechts über den Rand des Fenster hinausragenden Buttons gar nicht anzeigen.

Übrigens: einen TButton würde ich nicht in eine Toolbar setzen, weil nach dem Klick der Fokus auf dem Button ist. Stell dir vor, du schreibst in einem "TSuperEdit" einen Text und möchtest ab jetzt auf Fettschrift umschalten, wofür es einen TButton in der Toolbar gibt. Nach dem Klick auf dem Button könntest du im TSuperEdit nicht mehr weiterschreiben, weil nun der TButton fokussiert ist - du müsstest erst wieder ins TSuperEdit klicken. TToolbutton (und auch TSpeedButton) macht das nicht.

braunbär hat geschrieben:TToolbar und TCoolbar. TCoolbar scheint mehrzeilig zu können. Machen die Kompos davon abgesehen das Gleiche?

TCoolbar ist ein Container üblicherweise für Toolbars, man findet oft aber auch Comboboxen und andere Controls. In einer Coolbar erhält jedes Control sein eigenes Band mit einem Greifer links. Damit kann man das Band anfassen und an einen anderen Ort ziehen, evtl sogar auch abdocken und an einer anderen Stelle andocken. Insgesamt kann der Enduser damit die Oberfläche weitgehend umgestalten. Es gibt ein Demo im Ordner (lazarus)/examples/cooltoolbar.

Ähnlich zu TCoolbar ist TControlbar, bei dem sich die Bands über die ganze Windowbreite erstrecken (bei TCoolbar haben sie die Größe des Controls), und die etwas anders erzeugt werden.

TCoolbar und TControlbar waren lange Zeit bei Delphi extrem fehlerträchtig und nervig - ob es jetzt besser ist, weiß ich nicht. Bei Lazarus wurde TCoolbar ohne die Microsoft-Controls komplett neu geschrieben und erscheint mir stabiler, hat aber auch seine Macken. Generell solltest du dich auf viele Experimente gefasst machen, wenn du dich auf die Dinger einlassen willst.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Übersicht über die verfügbaren Komponenten

Beitrag von wp_xyz »

Einen der Buttons habe ich noch vergessen: Wenn man einen "einrastenden" Button benötigt, quasi als Checkbox-Ersatz, ist TToggleBox ganz nützlich - der bleibt nach dem Click gedrückt und löst sich erst wieder beim nächsten Klick.

Antworten