[Gelöst] TTabControl Resize selbst anpassen

Rund um die LCL und andere Komponenten
Antworten
charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

[Gelöst] TTabControl Resize selbst anpassen

Beitrag von charlytango »

Hi

Es war sehr leicht auf einem TTabControl zwei Speedbuttons zu verankern und die mittels Anchor-Einstellungen dazu zu bringen dass sie beim Resize des Forms an der richtigen Stelle bleiben. (Für die Funktionen "Tab hinzufügen" und "Tab löschen")

Ein TTabcontrol kann mehr Tabs haben als sich auf dem Formular ausgehen. Dann erscheinen zwei Buttons mit Pfeilen und man kann die Tabs scrollen (wie auf der Lazarus Komponentenpalette)

Mit den beiden Buttons rechts auf dem TTabcontrol müsste das Resize von anderen Werten ausgehen (nämlich korrigiert um die Buttonbreite plus Abständen). Außerdem schieben sich die Speedbuttons hinter die Tabs des TTabControls.

Ich hab nur keine Ahnung wie ich das einstellen oder angehen soll.

THX
Dateianhänge
project1.zip
(130.65 KiB) 54-mal heruntergeladen
Zuletzt geändert von charlytango am Sa 26. Jun 2021, 09:53, insgesamt 1-mal geändert.

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: TTabControl Resize selbst anpassen

Beitrag von Michl »

Habs mal probiert. Vielleicht ist es schon ein bisschen spät und es eine dumme Idee. Du könntest ein TTabControl zwischen Form Rand und den SpeedButtons verankern. Statt dem Client vom TTabControl was ja jetzt zu klein ist, könntest du ein TPanel darüber legen und nutzen.

Hab den Test mal angehangen.
Dateianhänge
TabControlResize.zip
(27.21 KiB) 55-mal heruntergeladen

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: TTabControl Resize selbst anpassen

Beitrag von charlytango »

Ganz im Gegenteil !
Weder zu spät und schon gar nicht dumm.

Genau das ist es was ich an dieser Commmunity so mag. Neben der ungeheuren Hilfsbereitschaft auch die Fachkompetenz.
Wir sind alle gewohnt Probleme mit dem zu lösen was wir haben, um Themen rum zu denken. Aber oft steckt man in seinen eigenen Bäumen fest und sieht den Wald nicht.
Dann ist es toll wenn es jemand anderer kann.
Danke.

Ach ja: Wird die Höhe des TTabcontrol so verringert dass nur mehr die Tabreiter sichtbar sind, dann ist das nur ein schmales Band und das darüber liegende Panel ist nicht mehr unbedingt nötig.

kirchfritz
Beiträge: 172
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 3.0 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

Re: [Gelöst] TTabControl Resize selbst anpassen

Beitrag von kirchfritz »

Und hier als Minimalbeispiel, nur mit ExtendedTabControl und ohne SpeedButtons
Viel Spaß damit
Dateianhänge
TabControlResize_2.0.zip
(28 KiB) 59-mal heruntergeladen

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: [Gelöst] TTabControl Resize selbst anpassen

Beitrag von charlytango »

kirchfritz hat geschrieben:
Sa 26. Jun 2021, 17:54
Und hier als Minimalbeispiel, nur mit ExtendedTabControl und ohne SpeedButtons
Viel Spaß damit
Danke.

Nur konnte ich bisher keine genaue Spezifikation finden inwiefern TExtendedTabControl sich von TTabControl unterscheidet (außer der aufgepfropften TToolBar). Und nach dem Hinweis die Speedbuttons und die TTabControl per AnchorEditor zu justieren komme ich zu einem identen Ergebnis ohne "Extended" TabControl.

Zudem bleibt das Problem des nicht ausgelösten OnChange-Events bestehen.
Es wird einfach nicht getriggert wenn man die Tabs wechselt.

Hab gerade noch getestet ob man auch eine TToolbar statt der SpeedButtons verwenden kann. Die Antwort ist JA. Lässt sich mit dem AnchorEditor leicht einstellen.

BTW: ecControls und bgraControls kann man entfernen, die sind für dein Beispiel nicht nötig.

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

Re: [Gelöst] TTabControl Resize selbst anpassen

Beitrag von wp_xyz »

charlytango hat geschrieben:
Sa 26. Jun 2021, 22:31
Zudem bleibt das Problem des nicht ausgelösten OnChange-Events bestehen.
Es wird einfach nicht getriggert wenn man die Tabs wechselt.
OnChanging kommt, OnChange nicht. Generell erscheint mir die Komponente einen sehr unfertigen Zustand zu haben. Eine "Suche in Dateien" zeigt auch, dass die Komponente, im Gegensatz zu den anderen auf der LazControls-Lasche, nirgendwo in der IDE verwendet wird... --> ich würde die Finger davon lassen.

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: [Gelöst] TTabControl Resize selbst anpassen

Beitrag von charlytango »

wp_xyz hat geschrieben:
Sa 26. Jun 2021, 23:22
ich würde die Finger davon lassen.
schon passiert -- ich komme mit TTabControl und zwei Speedbuttons mit Anchorlayout (da hast du mich übrigens infiziert, das benutze ich immer mehr) hervorragend zurecht.

Antworten