完善range
This commit is contained in:
@@ -11,6 +11,7 @@ private
|
||||
color_;
|
||||
|
||||
public
|
||||
// Properties
|
||||
property BackgroundPatternColor read ReadBackgroundPatternColor write WriteBackgroundPatternColor;
|
||||
property BackgroundPatternColorIndex read ReadBackgroundPatternColorIndex write WriteBackgroundPatternColorIndex;
|
||||
property ForegroundPatternColor read ReadForegroundPatternColor write WriteForegroundPatternColor;
|
||||
|
||||
@@ -3,6 +3,7 @@ Uses TSDocxEnumerations;
|
||||
|
||||
public
|
||||
Function Init(rangeObj);
|
||||
Function Apply();override;
|
||||
|
||||
private
|
||||
Function GetShadingObjectByNode(node);
|
||||
@@ -36,6 +37,11 @@ Begin
|
||||
class(TSDocxShading).Init(nil);
|
||||
End;
|
||||
|
||||
Function TSDocxShadingRange.Apply();override;
|
||||
Begin
|
||||
CallFunction(ThisFunction(class(TSDocxShading).Apply), nil);
|
||||
End;
|
||||
|
||||
Function TSDocxShadingRange.SplitRun();
|
||||
Begin
|
||||
range_obj_.SplitRangeRun();
|
||||
@@ -44,14 +50,14 @@ End;
|
||||
|
||||
Function TSDocxShadingRange.GetShading(arr, hash);
|
||||
Begin
|
||||
if arr["entirety"] then
|
||||
if arr.Entirety then
|
||||
begin
|
||||
if not ifnil(hash[arr["entirety"]]) then nil;
|
||||
hash[arr["entirety"]] := true;
|
||||
shading := GetShadingObjectByNode(arr["entirety"]);
|
||||
if not ifnil(hash[arr.Entirety]) then nil;
|
||||
hash[arr.Entirety] := true;
|
||||
shading := GetShadingObjectByNode(arr.Entirety);
|
||||
end
|
||||
else begin
|
||||
trun := arr["trun"];
|
||||
trun := arr.TRun;
|
||||
if not ifObj(trun.Root()) then return nil;
|
||||
shading := new TSDocxShading(self.Application, self.Creator, self.Parent);
|
||||
shading.Init(trun.rPr.Shading);
|
||||
@@ -91,10 +97,9 @@ Begin
|
||||
// 这样设计是为了段落走走段落的shading,table走table的,cell走cell的
|
||||
SplitRun();
|
||||
hash := array();
|
||||
range_arr := rangeObj.GetInfo();
|
||||
for i:=0 to length(range_arr)-1 do
|
||||
for i:=0 to range_obj_.Size()-1 do
|
||||
begin
|
||||
shading := GetShading(range_arr[i], hash);
|
||||
shading := GetShading(range_obj_[i], hash);
|
||||
if ifnil(shading) then continue;
|
||||
pf := FindFunction(fname, shading);
|
||||
pf.Do(value);
|
||||
@@ -105,10 +110,9 @@ Function TSDocxShadingRange.CallFunction(fname);overload;
|
||||
Begin
|
||||
hash := array();
|
||||
ret := nil;
|
||||
range_arr := rangeObj.GetInfo();
|
||||
for i:=0 to length(range_arr)-1 do
|
||||
for i:=0 to range_obj_.Size()-1 do
|
||||
begin
|
||||
shading := GetShading(range_arr[i], hash);
|
||||
shading := GetShading(range_obj_[i], hash);
|
||||
if ifnil(shading) then continue;
|
||||
pf := FindFunction(fname, shading);
|
||||
r := pf.Do();
|
||||
|
||||
Reference in New Issue
Block a user