Classes Stammbaum

Für Fragen rund um die Ide und zum Debugger
Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Classes Stammbaum

Beitrag von Mathias »

Kann man irgendwo auflisten lassen, wo man sieht, wie eine Classe vererbt ist ?
ZB: TLabel > TCustomLabel > TGraphicControll > TControll > ... > TObject.
Zuletzt geändert von Mathias am Fr 8. Mai 2020, 23:12, insgesamt 2-mal geändert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Classen Stambaum

Beitrag von wp_xyz »

Wenn du auf TLabel im Quelltext (nicht auf dem Label im Formular-Editor) die Hilfetaste drückst (F1, bzw. Ctrl-F1 beim klassichen Tastaturlayout), dann siehst du die Abstammung, wenn du im LHelp-Bildschirm nach unten scrollst:
Dateianhänge
lhelp-tlabel.jpg
lhelp-tlabel.jpg (139.61 KiB) 3243 mal betrachtet

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Classen Stambaum

Beitrag von Mathias »

Danke, das hatte ich gesucht.

Noch eine Frage, muss ich bei der Trunk noch eine Package installieren ?
Bei mir geht es nur mit der Stable von Lazarus
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Classen Stambaum

Beitrag von af0815 »

Die Hilfe mus instaliert sein. Bei fpcupdeluxe ist das im normalfall abgschaltet, weil es nur viel Daten und Zeit benötigt. Kann man im Setup+ umschalten.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

TSchnuckenbock
Beiträge: 69
Registriert: Do 20. Jul 2017, 23:47
OS, Lazarus, FPC: Win7 und Win10
CPU-Target: xxBit
Wohnort: Südheide (Schnuckenland)

Re: Classen Stambaum

Beitrag von TSchnuckenbock »

Bei mir fehlten die chm-Dateien. Ich habe diese dann als zip von

https://sourceforge.net/projects/lazaru ... mentation/

wie in

https://wiki.freepascal.org/Installing_Help_in_the_IDE

heruntergeladen und entzippt nach

c:\lazarus_2.0.6\lazarus\docs\chm\

geschoben. Anschließend funktionierte der Tip von wp_xyz problemlos.
(Zur Info: Ich hatte das Lazarus auch mit fpcdelux installiert)

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Classen Stambaum

Beitrag von Mathias »

wp_xyz hat geschrieben:
Do 7. Mai 2020, 16:15
Wenn du auf TLabel im Quelltext (nicht auf dem Label im Formular-Editor) die Hilfetaste drückst (F1, bzw. Ctrl-F1 beim klassichen Tastaturlayout), dann siehst du die Abstammung, wenn du im LHelp-Bildschirm nach unten scrollst:
Wie sieht es mit Classen aus, welche man selbst gebaut hat, kann man da auch irgendwo den Stammbaum holen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Classen Stambaum

Beitrag von Winni »

Hi!

Auch in einer unordentlichen Festplatte findet sich nach einigem Suchen Alles wieder:

Anbei die Klassenhierarchie von RTL und LCL - etwas älter. Ist aus dem Jahr 2013 und ich hab die PDF von der fpc/Lazarus-Seite runterladen.

Etwas sperrig - gerne für größere Bildschirme.

Winni
ClassChart3.pdf
(89.66 KiB) 137-mal heruntergeladen

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2634
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Classen Stambaum

Beitrag von m.fuchs »

Mathias hat geschrieben:
Do 7. Mai 2020, 18:00
Wie sieht es mit Classen aus, welche man selbst gebaut hat, kann man da auch irgendwo den Stammbaum holen ?
Da kannst du dir fix selber was schreiben:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
var
  o: TClass;
begin
  o := TMemo;
  Edit1.Text := o.ClassName;
  o := o.ClassParent;
  while Assigned(o) do begin
    Edit1.Text := Edit1.Text + ' -> ' + o.ClassName;
    o := o.ClassParent;
  end;
end;
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

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

Re: Classen Stambaum

Beitrag von wp_xyz »

Oder, um etwas mit dem wenig beklannten LvlGraphControl von der LazControls-Palette zu üben, kann man sich, z.B. für Dokumentationszwecke selbst mit ein paar Zeilen Code einen Klassenhierarchie-Baum zeichnen lassen.

Achtung: In dem Progrämmchen werden die Paletten-Icons von Lazarus verwendet. Damit diese gefunden werden muss die Konstante "ImageDir", gleich zu Beginn des Implementation-Abschnitts angepasst werden.

Ein Tutorial über LvlGraphControl findet man auf http://www.pp4s.co.uk/main/tu-form-level-graph.html.
Dateianhänge
class_tree.zip
(3.4 KiB) 120-mal heruntergeladen
ClassHierarchy.png
ClassHierarchy.png (14.06 KiB) 3166 mal betrachtet

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Classen Stambaum

Beitrag von Winni »

Hi!

Die Idee mit LvlGraphControl ist klasse.

Was kaum bekannt ist: Die Komponente wird auch bereits innerhalb der IDE
verwendet. Allerdings für einen anderen Zweck:

Unter "Package" findet man findet man den Menü-Punkt "Package Graph", der
die Abhängigkeiten der Pakete untereinander anzeigt, aber auch
die vom gerade geladenen Projekt.

Winni

TSchnuckenbock
Beiträge: 69
Registriert: Do 20. Jul 2017, 23:47
OS, Lazarus, FPC: Win7 und Win10
CPU-Target: xxBit
Wohnort: Südheide (Schnuckenland)

Re: Classen Stambaum

Beitrag von TSchnuckenbock »

"Class_Tree" ist wieder ein schönes Beispiel von "wp_xyz". Vielen Dank an dieser Stelle mal für deine vielen Beispiele.
Runterladen, entpacken, starten und gucken....

Bei dem Beispiel hätte ich noch anzumerken, daß ich die bei mir aktuellste Lazarus-Version nehmen mußte, die bei mir unter "trunk" läuft. Lazarus 2.0.6 hat nicht gereicht, weil wohl inzwischen die "lvlgraphctrl.pas" (umfangreich) erweitert wurde.

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

Re: Classen Stambaum

Beitrag von wp_xyz »

Richtig. Da ich normalerweise mit Lazarus-Trunk arbeite und Code für's Forum nicht sehr ausgiebig teste, ist mir das durch die Lappen gegangen. Aber man kann mit einer Versionsabfrage das Programm leicht auch für die Nicht-Entwickler-Versionen kompilierbar machen (sieht halt dann nicht so gut aus...). Da alle Properties des LvlGraphControl hier zur Laufzeit gesetzt werden, ist das möglich; über den Objektinspektor ginge das nicht, weil man in der lfm-Datei keine Versionsabfragen machen kann.
Dateianhänge
class_tree-v2.zip
(3.42 KiB) 113-mal heruntergeladen

martin_frb
Beiträge: 571
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Classen Stambaum

Beitrag von martin_frb »

Winni hat geschrieben:
Do 7. Mai 2020, 23:22
Unter "Package" findet man findet man den Menü-Punkt "Package Graph", der
Und unter "View" => Unit dependencies
Der 2 tab in dem Fenster.

Package wählen um Units zu sehen.

Rechte Maustaste für Optionen. (trunk)

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

Re: Classen Stambaum

Beitrag von theo »

Übrigens, wie wäre es mit ein bisschen deutsch, wenigstens beim Titel?

Classen gibt es nicht. Entweder Klassen oder Classes.
Und Stammbaum schreibt man mit zwei "m".
Da kriegt man ja Kopfweh von dem Titel. :wink:

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Classes Stammbaum

Beitrag von Winni »

@theo

Du hast ja recht.

Ich dachte beim ersten flüchtigen Lesen, dass die amerikanischen Genealogen jetzt auch hier zugeschlagen haben:

Clasen ist ein norddeutscher Name.

Ansonsten ist "Classen" ein wunderbare Beispiel für die Verhunz-Anglizismen.

Winni

Antworten