patch1
This commit is contained in:
parent
20a343f501
commit
c92fd3b638
|
|
@ -7,6 +7,7 @@ public
|
||||||
function Append(data: any): boolean;
|
function Append(data: any): boolean;
|
||||||
function Insert(data: any): boolean;
|
function Insert(data: any): boolean;
|
||||||
function InsertAfter(data: any; pos_data: any);
|
function InsertAfter(data: any; pos_data: any);
|
||||||
|
function InsertBefore(data: any; pos_data: any);
|
||||||
function Get(name: string; index: integer);
|
function Get(name: string; index: integer);
|
||||||
function GetElements(include_removed: boolean): array of tslobj;
|
function GetElements(include_removed: boolean): array of tslobj;
|
||||||
|
|
||||||
|
|
@ -17,7 +18,7 @@ private
|
||||||
bucket_: array of LinkList;
|
bucket_: array of LinkList;
|
||||||
child_: array of string;
|
child_: array of string;
|
||||||
current_index_: integer;
|
current_index_: integer;
|
||||||
min_index_; integer;
|
min_index_: integer;
|
||||||
max_index_: integer;
|
max_index_: integer;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -28,6 +29,7 @@ public
|
||||||
function Add(data: any);
|
function Add(data: any);
|
||||||
function Delete(data: any): boolean;
|
function Delete(data: any): boolean;
|
||||||
function InsertAfter(data: any; pos_data: any): boolean;
|
function InsertAfter(data: any; pos_data: any): boolean;
|
||||||
|
function InsertBefore(data: any; pos_data: any): boolean;
|
||||||
function Name(): string;
|
function Name(): string;
|
||||||
function Size(): integer;
|
function Size(): integer;
|
||||||
function First(): Node;
|
function First(): Node;
|
||||||
|
|
@ -194,10 +196,20 @@ begin
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TSOfficeContainer.InsertBefore(data: any; pos_data: any);
|
||||||
|
begin
|
||||||
|
for i:=0 to current_index_ do
|
||||||
|
begin
|
||||||
|
obj := bucket_[i];
|
||||||
|
if ifObj(obj) then
|
||||||
|
if obj.InsertBefore(data, pos_data) then break;
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
function TSOfficeContainer.GetElements(include_removed: boolean = true): array of tslobj;
|
function TSOfficeContainer.GetElements(include_removed: boolean = true): array of tslobj;
|
||||||
begin
|
begin
|
||||||
arr := array();
|
arr := array();
|
||||||
for i:=min_index_ to current_index_ do
|
pf := function(arr, i)
|
||||||
begin
|
begin
|
||||||
obj := bucket_[i];
|
obj := bucket_[i];
|
||||||
if ifObj(obj) then
|
if ifObj(obj) then
|
||||||
|
|
@ -211,6 +223,10 @@ begin
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
for i:=0 to current_index_ do
|
||||||
|
##pf(arr, i);
|
||||||
|
for i:=min_index_ to -1 do
|
||||||
|
##pf(arr, i);
|
||||||
return arr;
|
return arr;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -329,6 +345,28 @@ begin
|
||||||
return false;
|
return false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function LinkList.InsertBefore(data: any; pos_data: any): boolean;
|
||||||
|
begin
|
||||||
|
node := {self.}First();
|
||||||
|
prev := nil;
|
||||||
|
while ifObj(node) do
|
||||||
|
begin
|
||||||
|
if node.data = pos_data then
|
||||||
|
begin
|
||||||
|
new_node := new Node();
|
||||||
|
new_node.data := data;
|
||||||
|
new_node.next := node;
|
||||||
|
if ifnil(prev) then head_.next := new_node;
|
||||||
|
else prev.next := new_node;
|
||||||
|
size_++;
|
||||||
|
return true;
|
||||||
|
end
|
||||||
|
prev := node;
|
||||||
|
node := node.next;
|
||||||
|
end
|
||||||
|
return false;
|
||||||
|
end;
|
||||||
|
|
||||||
function LinkList.Delete(data: any): boolean;
|
function LinkList.Delete(data: any): boolean;
|
||||||
begin
|
begin
|
||||||
node := {self.}First();
|
node := {self.}First();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue