Komponenten TabControl organisieren

Für Fragen rund um die Ide und zum Debugger
Antworten
Groffy
Beiträge: 50
Registriert: Fr 23. Nov 2012, 13:27
OS, Lazarus, FPC: Win10/Linux Mint - Lazarus 2.2/trunk
CPU-Target: 32/64Bit

Komponenten TabControl organisieren

Beitrag von Groffy »

Hallo,

gibt es eine Möglichkeit in der Lazarus IDE die Anzahl der Tabs der Komponentenpalette und die Anordnung der Komponenten/Controls auf diesen nach eigenen Wünschen anzuordnen/zu konfigurieren? Ich hab mir schon mal die Lazarus XML-Konfigurationsdateien angeschaut, konnte aber diesbezüglich nichts entdecken.

Vielen Dank und beste Grüße - Ulrich

Socke
Lazarusforum e. V.
Beiträge: 3158
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: Komponenten TabControl organisieren

Beitrag von Socke »

Bisher gibt es keine Möglichkeit dazu. Das Package educationlaz ermöglicht es, einzelne Komponenten auszublenden, nicht aber diese neu zu organisieren.

Dazu ein Package zu schreiben sollte nicht allzu schwierig sein.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Groffy
Beiträge: 50
Registriert: Fr 23. Nov 2012, 13:27
OS, Lazarus, FPC: Win10/Linux Mint - Lazarus 2.2/trunk
CPU-Target: 32/64Bit

Re: Komponenten TabControl organisieren

Beitrag von Groffy »

Es würde mir schon reichen die Reihenfolge der Tabs ändern zu können. Ich erkenne da momentan nicht die Systematik in welcher Reihenfolge die Tabs erstellt werden.

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Beitrag von Komoluna »

Stimmt, mir ist auch schon aufgefallen, dass die Tabs scheinbar zufällig geordnet sind...
man müsste mal in den IDE Units suchen...

MFG Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Socke
Lazarusforum e. V.
Beiträge: 3158
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: Komponenten TabControl organisieren

Beitrag von Socke »

Groffy hat geschrieben:Es würde mir schon reichen die Reihenfolge der Tabs ändern zu können. Ich erkenne da momentan nicht die Systematik in welcher Reihenfolge die Tabs erstellt werden.

Ich vermute, das liegt daran, in welcher Reihenfolge die einzelnen Komponenten registriert werden. Das hängt wiederum davon ab, in welcher Reihenfolge die Units bzw. Packages in Lazarus eingebunden werden.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Komponenten TabControl organisieren

Beitrag von corpsman »

Also wenn sich tatsächlich jemand erbarmt die "Tabsortiert" komponente für Lazarus zu machen, so möge es bitte hier posten. Dann könnte man die "uninteressanten" Rubriken schön weit nach Rechts sortieren *g*.
--
Just try it

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Komponenten TabControl organisieren

Beitrag von mse »

Eine einfache Lösung wäre, die tab-Reiter und die Komponenten in den tabpages mittels Maus-drag-and-drop verschiebbar zu machen und die aktuellen Positionen im Projekt abzuspeichern. Dies hat sich in MSEide gut bewährt. Vielleicht kann das Lazarus bereits?

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

Re: Komponenten TabControl organisieren

Beitrag von theo »

mse hat geschrieben:Eine einfache Lösung wäre, die tab-Reiter und die Komponenten in den tabpages mittels Maus-drag-and-drop verschiebbar zu machen und die aktuellen Positionen im Projekt abzuspeichern. Dies hat sich in MSEide gut bewährt. Vielleicht kann das Lazarus bereits?


Das wäre wahrscheinlich machbar. Die Tabs der Editordateien sind auch per D&D verschiebbar.
Nice to have. Ich selber finde es nicht extrem wichtig. Der Schnellzugriff auf die Komponenten läuft bei mir eher mit
View -> Components, bzw. Ctrl+Alt+P (Siehe Anhang)
Dateianhänge
components.png

Groffy
Beiträge: 50
Registriert: Fr 23. Nov 2012, 13:27
OS, Lazarus, FPC: Win10/Linux Mint - Lazarus 2.2/trunk
CPU-Target: 32/64Bit

Re: Komponenten TabControl organisieren

Beitrag von Groffy »

Sicherlich ist eine Option für Sortierung/Anordnung der Tabs und der darauf dargestellten Componenten/Controls nicht essentiell wichtig. Bin halt von der Delphi7 Oberfläche verwöhnt, und da kam bei mir die generelle Frage auf wie die Lazarus IDE das wohl organisiert, da die geladenen Packages ja bei der Installation "einkompiliert" werden und nicht dynamisch geladen werden. Ich benutze Packages die ihre Controls teilweise über mehrere Tabs verteilen, und diese Tabs dann aber auch nicht alle nebeneinander angeordnet sind sondern irgendwie verteilt. Extrem ist es mir aufgestoßen als ich testweise das Indy package installiert hatte, da ging wirklich alles wild durcheinander. Das empfinde ich einfach als unübersichtlich.

@Theo : Kann mal das Auswahlfenster irgendwie sortieren ;-)

Beste Grüße - Ulrich

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

Re: Komponenten TabControl organisieren

Beitrag von theo »

Groffy hat geschrieben:@Theo : Kann mal das Auswahlfenster irgendwie sortieren ;-)


Glaube nicht, aber filtern.

Wenn du diese Features haben möchtest, dann implementiere sie doch für die Allgemeinheit.
Wäre doch ein schönes und vergleichsweise überschaubares Projekt.
So läuft das nun mal bei Lazarus. Alles ist von Freiwilligen gemacht. Nachteil: Jammern gilt nicht. :wink:

Groffy
Beiträge: 50
Registriert: Fr 23. Nov 2012, 13:27
OS, Lazarus, FPC: Win10/Linux Mint - Lazarus 2.2/trunk
CPU-Target: 32/64Bit

Re: Komponenten TabControl organisieren

Beitrag von Groffy »

theo hat geschrieben:
Wenn du diese Features haben möchtest, dann implementiere sie doch für die Allgemeinheit.
Wäre doch ein schönes und vergleichsweise überschaubares Projekt.
So läuft das nun mal bei Lazarus. Alles ist von Freiwilligen gemacht. Nachteil: Jammern gilt nicht. :wink:


Ich jammere doch nicht :-) Wühle mich bereits durch das IDEIntf package und hab mir

http://wiki.freepascal.org/Extending_the_IDE/de

durchgelesen. Ob ich das hin bekomme was ich mir vorstelle kann ich nicht versprechen, aber ich denke ich lerne eine Menge dabei :-)

Groffy
Beiträge: 50
Registriert: Fr 23. Nov 2012, 13:27
OS, Lazarus, FPC: Win10/Linux Mint - Lazarus 2.2/trunk
CPU-Target: 32/64Bit

Re: Komponenten TabControl organisieren

Beitrag von Groffy »

Habe mir mal einen ungefähren Eindruck verschafft wie die Tabs erzeugt und sortiert werden. Jeder Tab erhält eine Eigenschaft "ComponentPriority"

TComponentPriorityCategory = ( cpBase, cpRecommended, cpNormal, cpOptional );

und zusätzlich einen Integer Wert "Level". Die Klasse TBaseComponentPalette sortiert dann beim hinzufügen eines Tabs, diesen anhand dieser beiden Parameter ein. An welcher Stelle Prority und Level bestimmt, bzw. zugewiesen werden habe ich noch nicht entdeckt. Hier die komplette Logik zu ändern halte ich für übertrieben. Eine nachträgliche Reorganisation geht ziemlich fix und würde noch nicht einmal bemerkt. Die Klasse TBaseComponentPalette bietet aber nicht viel Funktionalität bezüglich einer Reorganisation der von ihr verwalteten Tabs. Da die Tabs intern in einer TList hinterlegt werden, die wiederum schon alle Funktionen die man zum sortieren, vertauschen von Elementen usw. braucht anbietet, wäre es sehr leicht diese Funktionen in der Klasse TBaseComponentPalette public zu machen, ohne die bestehende Funktionalität zu ändern. Jetzt die Frage : Wie werden solche Source Code Änderungen denn offiziell eingepflegt? Gibt es eine Instanz die entscheidet ob Modifikationen in den trunk einfließen?

theo hat geschrieben:So läuft das nun mal bei Lazarus.


Gut, dann bitte erklären wie das hier läuft ;-)

Beste Grüße - Ulrich

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

Re: Komponenten TabControl organisieren

Beitrag von theo »

Groffy hat geschrieben:Code Änderungen denn offiziell eingepflegt? Gibt es eine Instanz die entscheidet ob Modifikationen in den trunk einfließen?


Einen Patch in den Bugtracker posten.

Groffy
Beiträge: 50
Registriert: Fr 23. Nov 2012, 13:27
OS, Lazarus, FPC: Win10/Linux Mint - Lazarus 2.2/trunk
CPU-Target: 32/64Bit

Re: Komponenten TabControl organisieren

Beitrag von Groffy »

Lazarus trunk - revision 42574 :

IDE: New options page for re-ordering component palette entries. Requires define "EnableComponentPaletteOptions".


Der Patch ist zwar nicht von mir, aber tolle Sache :-)

(Nachtrag : Auch wenn der Editor momentan nichts anderes tut als abzustürzen...)

0liver
Beiträge: 4
Registriert: Mi 10. Apr 2013, 15:35

Re: Komponenten TabControl organisieren

Beitrag von 0liver »

Ich weiss nicht, ob das Thema überhaupt noch aktuell ist, ...bin nur durch Zufall draufgestossen.

Also bei mir funktioniert das Umsortieren der Komponentenpalette (Lazarus 1.6.4) ohne Probleme.
Geht zwar nicht per Drag and Drop, aber Rechtsklick auf die Tabs, Einstellungen wählen und schon kann man sortieren.

Antworten