Klingt logisch. Muss ich heute Abend probierenwp_xyz hat geschrieben: So 10. Aug 2025, 12:04 Daher ist der zu verschiebende Tab bereits bekannt als JvTabBar.SelectedTab
Gehirnakrobatik rund um TPageControl
-
- Beiträge: 1138
- 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: Gehirnakrobatik rund um TPageControl
-
- Beiträge: 1138
- 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: Gehirnakrobatik rund um TPageControl
Hab ich einen Knoten in meinen Gehirnwindungen?
Es lässt sich kein Tab in den fixierten Bereich schieben, aber es lässt sich ein Tab aus dem fixierten Tab in den offenen Bereich schieben.
Sehe ich den Wald vor lauter Bäumen nicht , oder ???
Code: Alles auswählen
procedure TMainForm.JvTabBar1TabMoving(Sender: TObject; DestTab: TJvTabBarItem;
var AllowMove: Boolean);
//var
// a,b:boolean;
begin
//// Do now allow to move a tab FROM fixed Tabs.
//a := JvTabBar1.SelectedTab.Index > piFixedTabs -1;
//
//// Do now allow to move a tab INTO fixed Tabs. - das klappt
//AllowMove := DestTab.Index > piFixedTabs-1;
//
//AllowMove:= a and b;
if JvTabBar1.SelectedTab.Index > piFixedTabs -1 then
AllowMove:=false
else
AllowMove:= DestTab.Index > piFixedTabs-1;
end;
Es lässt sich kein Tab in den fixierten Bereich schieben, aber es lässt sich ein Tab aus dem fixierten Tab in den offenen Bereich schieben.
Sehe ich den Wald vor lauter Bäumen nicht , oder ???
-
- Beiträge: 294
- Registriert: Mo 24. Aug 2020, 14:16
- OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
- CPU-Target: i386
Re: Gehirnakrobatik rund um TPageControl
Yep, zunächst mal setzt du AllowMove auf False, obwohl du gerade noch geschrieben hast, dass diese Bedingung ein True zur Folge haben soll.
Code: Alles auswählen
//a := JvTabBar1.SelectedTab.Index > piFixedTabs -1;
//AllowMove:= a and b;
-
- Beiträge: 1138
- 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: Gehirnakrobatik rund um TPageControl
Nein, soll sie nicht.
gegeben sind n Tabs auf den Tabreitern. die linken zwei sollen fix bleiben (Tab1 und Tab2) und weder nach rechts geschoben werden können (in den Bereich Tab3 bis Tab5) noch andere tabs in den Bereich der fixierten hineingeschoben werden können.
Dazu habe ich:
die Anzahl der fixierten Tabs: piFixedTabs
den Index des aktuell selektierten Tabs: JvTabBar1.SelectedTab.Index
den index des Zieltabs: DestTab.Index
AllowMove soll in allen erlaubten "Moves" true sein, und in allen nicht erlaubten Fällen false.
ich habe schon einige Varianten versucht und es gelingt mir immer irgendwie einen fixierten Tab aus der fixierten Zone heraus zu schieben
Re: Gehirnakrobatik rund um TPageControl
Ich denke, bei mir funktioniert's:
AllowMove muss man nicht auf true setzen, das ist ja der Standardwert, andernfalls würde das Verschieben ohne OnTabMoving-Handler nicht funktionieren, und das macht die Logik etwas einfacher.
Code: Alles auswählen
procedure TForm1.JvTabBar1TabMoving(Sender: TObject; DestTab: TJvTabBarItem;
var AllowMove: Boolean);
begin
if (JvTabBar1.SelectedTab.Index in [0..1]) or (DestTab.Index in [0..1]) then
AllowMove := false;
end;
- Dateianhänge
-
jvTabBar_TabMoving.zip
- (2.16 KiB) 97-mal heruntergeladen
-
- Beiträge: 1138
- 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: Gehirnakrobatik rund um TPageControl
Heureka -- wieder eine Kuh vom Eis-- THX