Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Hat schon mal jemand TFormTabsBar verwendet? (https://www.delphipraxis.net/217329-hat-schon-mal-jemand-tformtabsbar-verwendet.html)

Codehunter 11. Jun 2025 09:18

Hat schon mal jemand TFormTabsBar verwendet?
 
Hallo!

Ich möchte eine Tabbed-Anwendung bauen. Jetzt könnte ich das klassisch machen mit Forms dynamisch erzeugen, in ein PageControl docken, dem PageControl umständlich beibringen, einen Close-Button auf den Tabs anzuzeigen usw.

Jetzt habe ich aber eine Componente namens TFormTabsBar entdeckt, die es anscheinend seit Delphi 12 neu gibt und all das schon von Haus aus können soll. Allerdings finde ich nirgends eine Anleitung, wie man das Ding verwendet. Hat hier schon jemand Erfahrung damit?

Grüße
Cody

Steku 11. Jun 2025 09:59

AW: Hat schon mal jemand TFormTabsBar verwendet?
 
Vielleicht hilft das für den Anfang (Mit Google Translate auf DE übersetzt...)

https://neftali-clubdelphi-com.trans...de&_x_tr_hl=en

Grüße
Steku

Codehunter 11. Jun 2025 10:30

AW: Hat schon mal jemand TFormTabsBar verwendet?
 
Das hat tatsächlich geholfen. Der entscheidende Kniff:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  VisualManager := FormTabsBar1;
end;

himitsu 11. Jun 2025 14:22

AW: Hat schon mal jemand TFormTabsBar verwendet?
 
Ja, wobei man das Property auch im FormDesigner/ObjectInspector setzen kann.

Keine Ahnung, warum sich diese Komponente dort nicht selbst zuweist,
vor allem, weil dieses Property namentlich ja rein garnichts mit dieser Komponente zu tun hat.

Ja, es steht natürlich in der Hilfe, aber das findet doch niemand.


Ähnliche Probleme gibt es auch beim TTitleBarPanel. :wall:



Im D12 wurde bezüglich MDI so einiges umgebaut/repariert/uvm.
So ist der FensterStyle nun auch endlich der "Aktuelle".

https://blogs.embarcadero.com/3-x-12...-in-delphi-12/
https://www.embarcadero.com/de/produ...w-in-12-athens
https://www.youtube.com/watch?v=ZIiV7Lp53X0
https://www.youtube.com/watch?v=xEyKSzs5Yuw

Codehunter 11. Jun 2025 19:30

AW: Hat schon mal jemand TFormTabsBar verwendet?
 
Zitat:

Zitat von himitsu (Beitrag 1549369)
Ja, wobei man das Property auch im FormDesigner/ObjectInspector setzen kann.

Hab ich jetzt nur für hier so gemacht, zur Auflösung der Frage.
Zitat:

Zitat von himitsu (Beitrag 1549369)
Ja, es steht natürlich in der Hilfe, aber das findet doch niemand.

Ähnliche Probleme gibt es auch beim TTitleBarPanel. :wall:

Insgesamt hat die Qualität der Dokumentation schon spürbar nachgelassen. Im Vergleich zu D7-Zeiten gab es zwar von allem viel weniger, also VCL usw. aber dafür war alles in der Hilfe und sogar lokalisiert. Heutzutage "verfügt Embarcadero zur Zeit über keine Informationen" an vielen Stellen der Hilfe.

Zitat:

Zitat von himitsu (Beitrag 1549369)
Im D12 wurde bezüglich MDI so einiges umgebaut/repariert/uvm.
So ist der FensterStyle nun auch endlich der "Aktuelle".

Kann aber auch für Ärger sorgen bei Altprojekten. Stichworte FontSize oder auch OldCreateOrder...

himitsu 11. Jun 2025 20:19

AW: Hat schon mal jemand TFormTabsBar verwendet?
 
Ja, in D10 (weiß nicht mehr seit wann), wurde OldCreateOrder nur ignoriert.
In Delphi 11 wird es nun direkt aus der DFM gelöscht, bzw. nicht neu gespeichert.

Was geil ist, wenn man z.B. noch gleichzeitig mit XEx und D11/D12 arbeiten möchte/muß,
weil dann XE denkt die DFM seit "uralt", da kein OldCreateOrder enthalten ist, und es somit dieses mit True wieder einfügt, was aber falsch ist.

Codehunter 12. Jun 2025 14:04

AW: Hat schon mal jemand TFormTabsBar verwendet?
 
Zitat:

Zitat von himitsu (Beitrag 1549382)
Ja, in D10 (weiß nicht mehr seit wann), wurde OldCreateOrder nur ignoriert.
In Delphi 11 wird es nun direkt aus der DFM gelöscht, bzw. nicht neu gespeichert.

Was geil ist, wenn man z.B. noch gleichzeitig mit XEx und D11/D12 arbeiten möchte/muß,
weil dann XE denkt die DFM seit "uralt", da kein OldCreateOrder enthalten ist, und es somit dieses mit True wieder einfügt, was aber falsch ist.

Das ist ein schönes Beispiel dafür, wie schwierig es sein kann, wenn man irgendwann mal einen Irrweg beschritten hat bei der Entwicklung und dann die Wahl hat ob man lieber auf ewig Altlasten mit sich rumschleppen will oder lieber ein Stück weit Rückwärtskompatibilität opfert. OldCreateOrder im DFM war so ein Irrweg.

himitsu 12. Jun 2025 15:06

AW: Hat schon mal jemand TFormTabsBar verwendet?
 
Das nun zu löschen ist per se kein schlechter Weg, weil man damit zukünftig auch das Fake-Property entfernen kann. (was dafür ist, damit jetzt DFMs geladen werden können, obwohl es das Property nicht mehr gibt, aber es noch in alten DFMs drin steht)

Uns hätte es aber keine Probleme bereitet, hätte man das Löschen deaktivieren können, damit es weiterhin mit alten Delphis keine Probleme gibt.

Während den Jahren der Umstellungsphase, mußten wir inzwischen doppelte Bugfixes einbauen,
einmal, damit das Alte im Neuen nicht knallt, aber auch das mit das Neue im Alten nicht knallt.

Codehunter 13. Jun 2025 06:15

AW: Hat schon mal jemand TFormTabsBar verwendet?
 
Zitat:

Zitat von himitsu (Beitrag 1549390)
Uns hätte es aber keine Probleme bereitet, hätte man das Löschen deaktivieren können, damit es weiterhin mit alten Delphis keine Probleme gibt.

Das ist bei uns zu einem echten Problem geworden. In unserer über 20 Jahre gewachsenen Anwendung haben wir inzwischen Unmengen an Konfigurationsmöglichkeiten und ein erheblicher Teil hat mit Rückwärtskompatibilität zu tun.

dummzeuch 13. Jun 2025 07:59

AW: Hat schon mal jemand TFormTabsBar verwendet?
 
Meine "Lösung" für das Problem war, allen Code aus FormCreate Events in eine Init-Methode zu verschieben und diese am Ende des Constructors aufzurufen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz