mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-30 02:38:32 +02:00
Many fixes for design time support of TCDPageControl
git-svn-id: trunk@32998 -
This commit is contained in:
parent
1b56619503
commit
95e470df61
@ -438,7 +438,6 @@ type
|
|||||||
|
|
||||||
TCDCustomTabSheet = class(TCustomControl)
|
TCDCustomTabSheet = class(TCustomControl)
|
||||||
private
|
private
|
||||||
FIndex: integer;
|
|
||||||
CDTabControl: TCDCustomTabControl;
|
CDTabControl: TCDCustomTabControl;
|
||||||
FTabVisible: Boolean;
|
FTabVisible: Boolean;
|
||||||
public
|
public
|
||||||
@ -530,7 +529,6 @@ type
|
|||||||
property Caption;
|
property Caption;
|
||||||
property Color;
|
property Color;
|
||||||
property Font;
|
property Font;
|
||||||
property Index: integer read FIndex write FIndex;
|
|
||||||
property TabVisible: Boolean;
|
property TabVisible: Boolean;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2269,9 +2267,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
2:
|
2:
|
||||||
begin // Delete Page
|
begin // Delete Page
|
||||||
|
//WriteLn('Delete 1');
|
||||||
NewPage := PControl.ActivePage;
|
NewPage := PControl.ActivePage;
|
||||||
if NewPage = nil then Exit;
|
if NewPage = nil then Exit;
|
||||||
PControl.RemovePage(NewPage.Index);
|
//WriteLn('Delete 2');
|
||||||
|
PControl.RemovePage(PControl.PageIndex);
|
||||||
|
Hook.PersistentDeleting(NewPage);
|
||||||
end;
|
end;
|
||||||
3:
|
3:
|
||||||
begin // Next Page
|
begin // Next Page
|
||||||
@ -2326,7 +2327,7 @@ begin
|
|||||||
ParentMenuItem.Enabled := PControl.PageCount > 0;
|
ParentMenuItem.Enabled := PControl.PageCount > 0;
|
||||||
for i := 0 to PControl.PageCount - 1 do
|
for i := 0 to PControl.PageCount - 1 do
|
||||||
begin
|
begin
|
||||||
TabPage := TCDTabSheet(PControl.Tabs.Objects[i]);
|
TabPage := PControl.GetPage(i);
|
||||||
NewMenuItem := TMenuItem.Create(ParentMenuItem);
|
NewMenuItem := TMenuItem.Create(ParentMenuItem);
|
||||||
NewMenuItem.Name := 'ShowPage' + IntToStr(i);
|
NewMenuItem.Name := 'ShowPage' + IntToStr(i);
|
||||||
NewMenuItem.Caption := TabPage.Name + ' "' + TabPage.Caption + '"';
|
NewMenuItem.Caption := TabPage.Name + ' "' + TabPage.Caption + '"';
|
||||||
@ -2363,16 +2364,18 @@ begin
|
|||||||
PositionTabSheet(NewPage);
|
PositionTabSheet(NewPage);
|
||||||
|
|
||||||
FTabs.AddObject(S, NewPage);
|
FTabs.AddObject(S, NewPage);
|
||||||
NewPage.FIndex := FTabs.Count - 1;
|
|
||||||
|
|
||||||
SetActivePage(NewPage);
|
SetActivePage(NewPage);
|
||||||
|
|
||||||
Result := NewPage;
|
Result := NewPage;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCDPageControl.GetPage(aIndex: integer): TCDTabSheet;
|
function TCDPageControl.GetPage(AIndex: integer): TCDTabSheet;
|
||||||
begin
|
begin
|
||||||
Result := TCDTabSheet(FTabs.Objects[AIndex]);
|
if (AIndex >= 0) and (AIndex < FTabs.Count) then
|
||||||
|
Result := TCDTabSheet(FTabs.Objects[AIndex])
|
||||||
|
else
|
||||||
|
Result := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCDPageControl.InsertPage(aIndex: integer; S: string): TCDTabSheet;
|
function TCDPageControl.InsertPage(aIndex: integer; S: string): TCDTabSheet;
|
||||||
@ -2391,7 +2394,6 @@ begin
|
|||||||
PositionTabSheet(NewPage);
|
PositionTabSheet(NewPage);
|
||||||
|
|
||||||
FTabs.InsertObject(AIndex, S, NewPage);
|
FTabs.InsertObject(AIndex, S, NewPage);
|
||||||
NewPage.Index := AIndex;
|
|
||||||
|
|
||||||
SetActivePage(NewPage);
|
SetActivePage(NewPage);
|
||||||
Result := NewPage;
|
Result := NewPage;
|
||||||
@ -2399,13 +2401,14 @@ end;
|
|||||||
|
|
||||||
procedure TCDPageControl.RemovePage(aIndex: integer);
|
procedure TCDPageControl.RemovePage(aIndex: integer);
|
||||||
begin
|
begin
|
||||||
if AIndex < 0 then Exit;
|
if (AIndex < 0) or (AIndex >= FTabs.Count) then Exit;
|
||||||
if FTabIndex = AIndex then Inc(FTabIndex);
|
|
||||||
if FTabIndex >= FTabs.Count then Dec(FTabIndex, 2);
|
|
||||||
|
|
||||||
Application.ReleaseComponent(TComponent(FTabs.Objects[AIndex]));
|
Application.ReleaseComponent(TComponent(FTabs.Objects[AIndex]));
|
||||||
|
|
||||||
FTabs.Delete(aIndex);
|
FTabs.Delete(aIndex);
|
||||||
|
if FTabIndex >= FTabs.Count then Dec(FTabIndex);
|
||||||
|
|
||||||
|
Invalidate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCDPageControl.FindNextPage(CurPage: TCDTabSheet;
|
function TCDPageControl.FindNextPage(CurPage: TCDTabSheet;
|
||||||
@ -2416,7 +2419,7 @@ begin
|
|||||||
if FTabs.Count <> 0 then
|
if FTabs.Count <> 0 then
|
||||||
begin
|
begin
|
||||||
//StartIndex := FPages.IndexOfObject(CurPage);
|
//StartIndex := FPages.IndexOfObject(CurPage);
|
||||||
TempStartIndex := CurPage.Index;
|
TempStartIndex := FTabs.IndexOfObject(CurPage);
|
||||||
if TempStartIndex = -1 then
|
if TempStartIndex = -1 then
|
||||||
if GoForward then
|
if GoForward then
|
||||||
TempStartIndex := FTabs.Count - 1
|
TempStartIndex := FTabs.Count - 1
|
||||||
@ -2524,10 +2527,11 @@ end;
|
|||||||
|
|
||||||
procedure TCDPageControl.PositionTabSheet(ATabSheet: TCDTabSheet);
|
procedure TCDPageControl.PositionTabSheet(ATabSheet: TCDTabSheet);
|
||||||
var
|
var
|
||||||
lTabHeight: Integer;
|
lTabHeight, lIndex: Integer;
|
||||||
begin
|
begin
|
||||||
// ATabSheet.SetBounds(1, 32 + 1, Width - 3, Height - 32 - 4);
|
// ATabSheet.SetBounds(1, 32 + 1, Width - 3, Height - 32 - 4);
|
||||||
lTabHeight := TCDCustomTabControlDrawer(FCurrentDrawer).GetTabHeight(ATabSheet.Index);
|
lIndex := FTabs.IndexOfObject(ATabSheet);;
|
||||||
|
lTabHeight := TCDCustomTabControlDrawer(FCurrentDrawer).GetTabHeight(lIndex);
|
||||||
ATabSheet.BorderSpacing.Top := lTabHeight;
|
ATabSheet.BorderSpacing.Top := lTabHeight;
|
||||||
ATabSheet.BorderSpacing.Left := 2;
|
ATabSheet.BorderSpacing.Left := 2;
|
||||||
ATabSheet.BorderSpacing.Right := 3;
|
ATabSheet.BorderSpacing.Right := 3;
|
||||||
@ -2537,10 +2541,7 @@ end;
|
|||||||
|
|
||||||
function TCDPageControl.GetActivePage: TCDTabSheet;
|
function TCDPageControl.GetActivePage: TCDTabSheet;
|
||||||
begin
|
begin
|
||||||
if (FTabIndex > 0) then
|
Result := GetPage(FTabIndex);
|
||||||
Result := TCDTabSheet(FTabs.Objects[FTabIndex])
|
|
||||||
else
|
|
||||||
Result := nil;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCDPageControl.GetPageCount: integer;
|
function TCDPageControl.GetPageCount: integer;
|
||||||
|
Loading…
Reference in New Issue
Block a user