Hallo,
ich hätte zwei Fragen zum internen Aufbau der Lazarus IDE.
Zunächst würde mich interessieren, wie das Quelltextfenster und der Objektinspektor implementiert sind. Sind das einfach nur zwei Panels zwischen den denen umgeschaltet wird (durch Einblenden des einen und Ausblenden des anderen) oder wurden diese als eigenständige Formulare (MDIChild) entworfen?
Und dann gibt es im Objektinspektor ja die Tabelle zur Festlegung der verschiedenen Eigenschaften für eine ausgewählte Komponente. Ist das ein StringGrid oder ein ListView?
Und wie wird erreicht, dass man bei einigen Eigenschaften zwischen verschiedenen Werten (Aufzählung) umschalten kann? Wird dazu eine ComboBox oder was ähnliches in die Zelle eingebettet?
Und wie verhält es sich mit Buttons, also z.B. zum Öffnen des Font-Dialogs zur Schriftformatierung? In der Zelle steht ja immer (TFont) und dann ein Button. Wie ist das implementiert?
Würde mich echt mal interessieren...
Vielen Dank schonmal und viele Grüße,
Fragen zum internen Aufbau
Re: Fragen zum internen Aufbau
Zum Obj.Insp. gibt es ein Beispiel unter <lazarusdir>/examples/objectinspector/
Sonst kannst du dir auch die Quellen der IDE ansehen, die hast du ja unter <lazarusdir>/ide/
Sonst kannst du dir auch die Quellen der IDE ansehen, die hast du ja unter <lazarusdir>/ide/
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Fragen zum internen Aufbau
Das ist eine eigene Komponente. Siehe Theos Antwort.Kay hat geschrieben:Und dann gibt es im Objektinspektor ja die Tabelle zur Festlegung der verschiedenen Eigenschaften für eine ausgewählte Komponente. Ist das ein StringGrid oder ein ListView?
Die möglichen Werte ermittelt die IDE über Runtime Type Information (RTTI); von einer Combo-Box ist auszugehen. Zu bestimmten Datentypen wird ein Eigenschafts-Editor (ein zu diesem Zwecke entwickeltes Formular mit bestimmten Methoden) registriert. Dieser wird bei Anwahl einer entsprechenden Eigenschaft aufgerufen.Kay hat geschrieben:Und wie wird erreicht, dass man bei einigen Eigenschaften zwischen verschiedenen Werten (Aufzählung) umschalten kann? Wird dazu eine ComboBox oder was ähnliches in die Zelle eingebettet?
Und wie verhält es sich mit Buttons, also z.B. zum Öffnen des Font-Dialogs zur Schriftformatierung? In der Zelle steht ja immer (TFont) und dann ein Button. Wie ist das implementiert?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Fragen zum internen Aufbau
Ist der Hintergrund deiner Frage die Absicht, in einem StringGrid eine Combobox bzw. einen Button einzubetten? Hilfe dazu findest du im Wiki zu TStringGrid: http://wiki.lazarus.freepascal.org/Grid ... ll_Editors