mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-07 18:55:56 +02:00
cody: fixed deleting diagram item
git-svn-id: trunk@40060 -
This commit is contained in:
parent
1158e7e27a
commit
b25736005c
@ -65,6 +65,7 @@ type
|
|||||||
procedure SetSize(AValue: single);
|
procedure SetSize(AValue: single);
|
||||||
procedure UpdateLayout;
|
procedure UpdateLayout;
|
||||||
public
|
public
|
||||||
|
Data: Pointer; // free to use by user
|
||||||
constructor Create(TheCategory: TCircleDiagramCategory);
|
constructor Create(TheCategory: TCircleDiagramCategory);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
property Category: TCircleDiagramCategory read FCategory;
|
property Category: TCircleDiagramCategory read FCategory;
|
||||||
@ -83,7 +84,7 @@ type
|
|||||||
FDiagram: TCustomCircleDiagramControl;
|
FDiagram: TCustomCircleDiagramControl;
|
||||||
FEndDegree16: single;
|
FEndDegree16: single;
|
||||||
FMinSize: single;
|
FMinSize: single;
|
||||||
fItems: TObjectList; // list of TCircleDiagramItem
|
fItems: TFPList; // list of TCircleDiagramItem
|
||||||
FSize: single;
|
FSize: single;
|
||||||
FStartDegree16: single;
|
FStartDegree16: single;
|
||||||
function GetItems(Index: integer): TCircleDiagramItem;
|
function GetItems(Index: integer): TCircleDiagramItem;
|
||||||
@ -94,8 +95,10 @@ type
|
|||||||
procedure Invalidate;
|
procedure Invalidate;
|
||||||
procedure InternalRemoveItem(Item: TCircleDiagramItem);
|
procedure InternalRemoveItem(Item: TCircleDiagramItem);
|
||||||
public
|
public
|
||||||
|
Data: Pointer; // free to use by user
|
||||||
constructor Create(TheDiagram: TCustomCircleDiagramControl);
|
constructor Create(TheDiagram: TCustomCircleDiagramControl);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
procedure Clear;
|
||||||
function InsertItem(Index: integer; aCaption: string): TCircleDiagramItem;
|
function InsertItem(Index: integer; aCaption: string): TCircleDiagramItem;
|
||||||
function AddItem(aCaption: string): TCircleDiagramItem;
|
function AddItem(aCaption: string): TCircleDiagramItem;
|
||||||
property Diagram: TCustomCircleDiagramControl read FDiagram;
|
property Diagram: TCustomCircleDiagramControl read FDiagram;
|
||||||
@ -356,6 +359,7 @@ procedure TCustomCircleDiagramControl.DoSetBounds(ALeft, ATop, AWidth,
|
|||||||
AHeight: integer);
|
AHeight: integer);
|
||||||
begin
|
begin
|
||||||
inherited DoSetBounds(ALeft, ATop, AWidth, AHeight);
|
inherited DoSetBounds(ALeft, ATop, AWidth, AHeight);
|
||||||
|
UpdateLayout;
|
||||||
UpdateScrollBar;
|
UpdateScrollBar;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -514,6 +518,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Invalidate;
|
||||||
WriteDebugReport('TCustomCircleDiagramControl.UpdateLayout');
|
WriteDebugReport('TCustomCircleDiagramControl.UpdateLayout');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -629,6 +634,7 @@ end;
|
|||||||
|
|
||||||
procedure TCircleDiagramCategory.InternalRemoveItem(Item: TCircleDiagramItem);
|
procedure TCircleDiagramCategory.InternalRemoveItem(Item: TCircleDiagramItem);
|
||||||
begin
|
begin
|
||||||
|
Item.FCategory:=nil;
|
||||||
fItems.Remove(Item);
|
fItems.Remove(Item);
|
||||||
UpdateLayout;
|
UpdateLayout;
|
||||||
end;
|
end;
|
||||||
@ -637,7 +643,7 @@ constructor TCircleDiagramCategory.Create(
|
|||||||
TheDiagram: TCustomCircleDiagramControl);
|
TheDiagram: TCustomCircleDiagramControl);
|
||||||
begin
|
begin
|
||||||
FDiagram:=TheDiagram;
|
FDiagram:=TheDiagram;
|
||||||
fItems:=TObjectList.Create(true);
|
fItems:=TFPList.Create;
|
||||||
FMinSize:=DefaultCategoryMinSize;
|
FMinSize:=DefaultCategoryMinSize;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -645,10 +651,25 @@ destructor TCircleDiagramCategory.Destroy;
|
|||||||
begin
|
begin
|
||||||
if Diagram<>nil then
|
if Diagram<>nil then
|
||||||
Diagram.InternalRemoveCategory(Self);
|
Diagram.InternalRemoveCategory(Self);
|
||||||
|
Clear;
|
||||||
FreeAndNil(fItems);
|
FreeAndNil(fItems);
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCircleDiagramCategory.Clear;
|
||||||
|
begin
|
||||||
|
if Count=0 then exit;
|
||||||
|
if Diagram<>nil then
|
||||||
|
Diagram.BeginUpdate;
|
||||||
|
try
|
||||||
|
while Count>0 do
|
||||||
|
Items[Count-1].Free;
|
||||||
|
finally
|
||||||
|
if Diagram<>nil then
|
||||||
|
Diagram.EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCircleDiagramCategory.InsertItem(Index: integer; aCaption: string
|
function TCircleDiagramCategory.InsertItem(Index: integer; aCaption: string
|
||||||
): TCircleDiagramItem;
|
): TCircleDiagramItem;
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user