在unit FR_Class中更改这个过程就行了 procedure TfrEMFPages.ObjectsToPage(Index: Integer); var p: PfrPageInfo; b: Byte; t: TfrView; s: String; begin p := FPages[Index]; with p^ do begin // if Page <> nil then // Page.Free; if Page = nil then begin Page := TfrPage.Create(pgSize, pgWidth, pgHeight, pgBin, pgOr); Page.pgMargins := pgMargins; Page.UseMargins := UseMargins; CurPage := Page; Stream.Position := 0; Stream.Read(frVersion, 1); while Stream.Position < Stream.Size do begin Stream.Read(b, 1); if b = gtAddIn then s := ReadString(Stream) else s := ''; t := frCreateObject(b, s); t.StreamMode := smFRP; t.LoadFromStream(Stream); t.StreamMode := smFRF; if (t is TfrMemoView) and ((t.Flags and flAutoSize) <> 0) then t.Draw(TempBmp.Canvas); //////在这里判断并更改,偶已经实现了 Page.Objects.Add(t); end; end; end; end;
procedure TfrEMFPages.ObjectsToPage(Index: Integer);
var
p: PfrPageInfo;
b: Byte;
t: TfrView;
s: String;
begin
p := FPages[Index];
with p^ do
begin
// if Page <> nil then
// Page.Free;
if Page = nil then
begin
Page := TfrPage.Create(pgSize, pgWidth, pgHeight, pgBin, pgOr);
Page.pgMargins := pgMargins;
Page.UseMargins := UseMargins;
CurPage := Page;
Stream.Position := 0;
Stream.Read(frVersion, 1);
while Stream.Position < Stream.Size do
begin
Stream.Read(b, 1);
if b = gtAddIn then
s := ReadString(Stream) else
s := '';
t := frCreateObject(b, s);
t.StreamMode := smFRP;
t.LoadFromStream(Stream);
t.StreamMode := smFRF;
if (t is TfrMemoView) and ((t.Flags and flAutoSize) <> 0) then
t.Draw(TempBmp.Canvas);
//////在这里判断并更改,偶已经实现了
Page.Objects.Add(t);
end;
end;
end;
end;