亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rvproj.pas

?? 本系統為病歷管理系統
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
                  SetIncluded(TPersistent(O1),false);
                end else if O1 is TRaveComponentList then begin
                  for I2 := 0 to TRaveComponentList(O1).Count - 1 do begin
                    CheckComponent(TComponent(TRaveComponentList(O1)[I2]).Owner);
                    CheckComponent(TComponent(TRaveComponentList(O1)[I2]));
                  end; { for }
                end else if O1 is TRavePersistentList then begin
                  for I2 := 0 to TRavePersistentList(O1).Count - 1 do begin
                    SetIncluded(TPersistent(TRavePersistentList(O1)[I2]),false);
                  end; { for }
                end; { else }
              end; { if }
            end; { if }
          end; { for }
        finally
          FreeMem(PropList,Count * SizeOf(pointer));
        end; { tryf }
      end; { if }

      if DoOwned and (Item is TComponent) then begin
        for I1 := 0 to TComponent(Item).ComponentCount - 1 do begin
          SetIncluded(TComponent(Item).Components[I1],true);
        end; { for }
      end; { if }
    end; { if }
  end;  { SetIncluded }

begin { ReportToStream }
// Include all other project items that it references
  ClearProjectItems(ReportList);
  ClearProjectItems(GlobalPageList);
  ClearProjectItems(DataObjectList);
  Included := true;
  AReport.Included := true;
  SetIncluded(AReport,false);

// Create ExportList
  ExportList := TList.Create;
  ExportList.Add(AReport);
  AddProjectItems(GlobalPageList);
  AddProjectItems(DataObjectList);

// Write out items to stream
  StreamHelper := TStreamHelper.Create(AStream);
  with StreamHelper do try
    CompressMethod := NoCompression;
    SaveToStreamHelper(StreamHelper);
  finally
    Free;
  end; { with }
  FreeAndNil(ExportList);
end;  { ReportToStream }

procedure TRaveProjectManager.Clear;
begin { Clear }
  ClearObjectList(ReportList);
  ClearObjectList(GlobalPageList);
  ClearObjectList(DataObjectList);
end;  { Clear }

procedure TRaveProjectManager.DefineProperties(Filer: TFiler);
begin { DefineProperties }
  inherited DefineProperties(Filer);
  Filer.DefineProperty({Trans-}'Params', ReadParamValues, WriteParamValues,
   StreamParamValues and (Params.Count > 0));
end;  { DefineProperties }

procedure TRaveProjectManager.ReadParamValues(Reader: TReader);
var
  ParamBuf: string;
  ParamPtr: PChar;
  ParamName: string;
  ParamData: string;
begin { ReadParamValues }
  ParamBuf := Reader.ReadString;
  if ParamBuf <> '' then begin
    ParamPtr := @ParamBuf[1];
    while ParamPtr^ <> #0 do begin
      ParamName := AnsiExtractQuotedStr(ParamPtr,'"');
      Inc(ParamPtr); { Skip comma }
      ParamData := AnsiExtractQuotedStr(ParamPtr,'"');
      SetParam(ParamName, ParamData);
      Inc(ParamPtr); { Skip semicolon }
    end; { while }
  end; { else }
end;  { ReadParamValues }

procedure TRaveProjectManager.WriteParamValues(Writer: TWriter);
var
  ParamBuf: string;
  I1: integer;
begin { WriteParamValues }
  ParamBuf := '';
  for I1 := 0 to (Params.Count - 1) do begin
    ParamBuf := ParamBuf + AnsiQuotedStr(Params.Names[I1], '"') + ',' +
     AnsiQuotedStr(Params.Values[Params.Names[I1]] ,'"') + ';';
  end; { for }
  Writer.WriteString(ParamBuf);
end;  { WriteParamValues }

procedure TRaveProjectManager.LoadFromStreamHelper(StreamHelper: TStreamHelper);
var
  TagKind: TTagKind;
  Item: TRaveProjectItem;
  ItemName: string;
  I1: integer;
  RaveReport: TRaveReport;
  TestSig: string;
begin { LoadFromStreamHelper }
  with StreamHelper do begin
    SetLength(TestSig,4);
    Stream.Read(TestSig[1],4);
    if TestSig <> Signature then begin
      RaveError(Trans('Invalid Project Format'));
      Exit;
    end; { if }
    Stream.Read(FVersion,SizeOf(FVersion));

  { Read project header information }
    TagKind := TTagKind(ReadByte); { Should be tkProject }
    if TagKind <> tkProject then begin
      RaveError(Trans('Invalid Project Header Code'));
      Exit;
    end; { if }

  { Read in library modules }
    if Version >= 40005 then begin
      ModuleManager.LoadModules(StreamHelper);
    end; { if }

    if Importing then begin
    { Absorb and ignore project header }
      ReadString; { Absorb LastActivePage }
      with TRaveReader.Create(StreamHelper) do try
        MasterProject := self.FMasterProject;
        ReadComponent(self,self).Free;
      finally
        Free;
      end; { with }
    end else begin
    { Read in project header }
      LastActiveReport := ReadString;
      with TRaveReader.Create(StreamHelper) do try
        MasterProject := self.FMasterProject;
        ReadIntoComponent(self);
      finally
        Free;
      end; { with }
    end; { else }

  { Read in ProjectItem blocks }
    repeat
      TagKind := TTagKind(ReadByte);
      ItemName := ReadString;
      if Importing then begin
        Item := FindRaveComponent(ItemName, TRaveProjectManager(Project)) as TRaveProjectItem;
        if Assigned(Item) then begin
          if Assigned(FOnImportConflict) then begin
            FOnImportConflict(Item,ItemName);
          end else begin
            if ImportReplace then begin { Delete and replace old item }
              DeleteItem(Item,false);
            //!!! Need to make it so that links to this item or components on
            //!!! this item are preserved.
            end else begin { Get new name }
              ItemName := GetUniqueName(ItemName, TRaveProjectManager(Project), false);
            end; { else }
          end; { else }
        end; { if }
      end; { if }

      case TagKind of
        tkDataView: begin // Only used to load pre 4.0 projects
          Item := TRaveDataView.Create(self);
          DataObjectList.Add(Item);
        end;
        tkDataObject: begin
          Item := TRaveDataObjectClass(FindClass(ReadString)).Create(self);
          DataObjectList.Add(Item);
        end;
        tkPage: begin
          Item := TRavePage.Create(self);
          GlobalPageList.Add(Item);
        end;
        else begin { tkReport }
          Item := TRaveReport.Create(self);
          ReportList.Add(Item);
          FActiveReport := Item as TRaveReport;
        end;
      end; { case }
      Item.Parent := self;
      if ItemName <> '' then begin
        Item.Name := ItemName;
        AddComponent(Item);
      end; { if }
      StartReadBlock;
      Item.LoadFromStreamHelper(StreamHelper);
      FinishReadBlock;
      FActiveReport := nil;
      if ItemName = '' then begin
        case TagKind of
          tkDataView,tkDataObject: DataObjectList.Remove(Item);
          tkPage: GlobalPageList.Remove(Item);
          else ReportList.Remove(Item);
        end; { case }
        Item.Free;
      end; { if }
    until Empty;
  end; { with }
  FreeForwardRefs;

{ Activate report }
  RaveReport := nil;
  for I1 := 0 to ReportList.Count - 1 do begin
    TRaveReport(ReportList[I1]).ProcessLoaded;
    if (LastActiveReport <> '') and
     (TRaveReport(ReportList[I1]).Name = LastActiveReport) then begin
      RaveReport := TRaveReport(ReportList[I1]);
    { Break; Don't break since we need to call ProcessLoaded for each report }
    end; { if }
  end; { for }

  if Assigned(RaveReport) then begin
    ActivateReport(RaveReport);
  end else if ReportList.Count > 0 then begin
    ActivateReport(TRaveReport(ReportList[0]));
  end; { else }
  FreeForwardRefs;
  PostLoad;
  ClearChanged;
  Saved := true;
end;  { LoadFromStreamHelper }

procedure TRaveProjectManager.SaveToStreamHelper(StreamHelper: TStreamHelper);

  procedure WriteListNames(List: TList;
                           TagKind: TTagKind);

  var
    I1: longint;

  begin { WriteListNames }
    with StreamHelper do begin
      for I1 := 0 to (List.Count - 1) do begin
        if Assigned(ExportList) then begin { Look for item in list }
          if ExportList.IndexOf(List[I1]) < 0 then Continue; { Don't export item }
        end; { if }
        WriteByte(Ord(TagKind));
        WriteString(TRaveProjectItem(List[I1]).Name);
        if TagKind = tkDataObject then begin
          WriteString(TRaveDataObject(List[I1]).ClassName);
        end; { if }
        StartWriteBlock;
        TRaveProjectItem(List[I1]).SaveToStreamHelper(StreamHelper);
        FinishWriteBlock;
      end; { for }
    end; { with }
  end;  { WriteListNames }

begin { SaveToStreamHelper }
  StreamHelper.WriteBuf(Signature[1],4);
  FVersion := RaveVersion;
  StreamHelper.WriteBuf(FVersion,SizeOf(FVersion));

  StreamHelper.WriteByte(Ord(tkProject));
  ModuleManager.SaveModules(StreamHelper);
  StreamHelper.WriteString(LastActiveReport);
  with TRaveWriter.Create(StreamHelper) do try
    WriteComponent(self,false);
  finally
    Free;
  end; { with }
  WriteListNames(DataObjectList,tkDataObject);
  WriteListNames(GlobalPageList,tkPage);
  WriteListNames(ReportList,tkReport);
  if not Assigned(ExportList) then begin
    ClearChanged;
    Saved := true;
  end; { if }
end;  { SaveToStreamHelper }

procedure TRaveProjectManager.LoadFromStream(Stream: TStream);
var
  StreamHelper: TStreamHelper;
begin { LoadFromStream }
  StreamHelper := TStreamHelper.Create(Stream);
  with StreamHelper do try
    LoadFromStreamHelper(StreamHelper);
  finally
    Free;
  end; { with }
end;  { LoadFromStream }

procedure TRaveProjectManager.SaveToStream(Stream: TStream);
var
  StreamHelper: TStreamHelper;
begin { SaveToStream }
  StreamHelper := TStreamHelper.Create(Stream);
  with StreamHelper do try
    SaveToStreamHelper(StreamHelper);
  finally
    Free;
  end; { with }
end;  { SaveToStream }

procedure TRaveProjectManager.SetCategories(Value: TStrings);
begin { SetCategories }
  FCategories.Assign(Value);
end;  { SetCategories }

procedure TRaveProjectManager.Changing(OldItem: TRaveComponent;
                                       NewItem: TRaveComponent);
begin { Changing }
  inherited Changing(OldItem,NewItem);
  if Assigned(SecurityControl) and (OldItem = SecurityControl) then begin
    SecurityControl := NewItem as TRaveBaseSecurity;
  end; { if }
end;  { Changing }

procedure TRaveProjectManager.SetDepth(Control: TRaveComponent;
                                       Adjustment: integer);
var
  I1: integer;
  I2: integer;
  ChildList: TList;
begin { SetDepth }
  if Control is TRaveReport then begin
    ChildList := ReportList;
  end else if Control is TRavePage then begin
    ChildList := GlobalPageList;
  end else if Control is TRaveDataObject then begin
    ChildList := DataObjectList;
  end else begin
    Exit;
  end; { else }

  with ChildList do begin
    I1 := IndexOf(Control);
    case Adjustment of
      1: I2 := 0;           { 1: Send to back }
      2: I2 := I1 - 1;      { 2: Move behind }
      3: I2 := I1 + 1;      { 3: Move forward }
      else I2 := Count - 1; { 4: Bring to front }
    end; { case }
    if (I1 >= 0) and (I2 >= 0) and (I2 < Count) and (I1 <> I2) then begin
      Delete(I1);
      Insert(I2,Control);
      if Control is TRaveControl then begin
        TRaveControl(Control).Invalidate;
      end; { if }
    end; { if }
  end; { with }
end;  { SetDepth }

function TRaveProjectManager.FindRaveComponent(Name: string;
                                               DefRoot: TRaveComponent): TRaveComponent;
var
  I1: integer;
  I2: integer;
  P1: TRavePage;
  Item: TRaveProjectItem;
  ObjectName: string;
  Root: TRaveComponent;
begin { FindRaveComponent }
//TODO: Add capability to process Owner.Owner.Component strings
  I1 := AnsiPos('.',Name);
  if I1 > 0 then begin
  { Find owner }
    ObjectName := MBCSCopy(Name,1,I1 - 1); { Owner portion }

  { Look for owner in ActiveReport pages }
    Root := nil;
    if Assigned(ActiveReport) then begin
      with ActiveReport do begin
        for I2 := 0 to ChildCount - 1 do begin
          if Child[I2] is TRavePage then begin
            P1 := TRavePage(Child[I2]);
            if AnsiCompareText(P1.Name,ObjectName) = 0 then begin
              Root := P1;
              Break;
            end; { if }
          end; { if }
        end; { for }
      end; { with }
    end; { if }

  { Look for owner in ProjectItems (Reports/Global Pages/Data Views) }
    if not Assigned(Root) then begin
      for I2 := 0 to ChildCount - 1 do begin
        Item := TRaveProjectItem(Child[I2]);
        if AnsiCompareText(Item.Name,ObjectName) = 0 then begin
          Root := Item;
          Break;
        end; { if }
      end; { for }
    end; { if }

  { Second half is object's name on Root }
    if Assigned(Root) then begin
      ObjectName := MBCSCopy(Name,I1 + 1,Length(Name) - I1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区视频在线播放| 日本韩国视频一区二区| 成人毛片在线观看| 欧美电影一区二区| 亚洲男同1069视频| 国产一区91精品张津瑜| 欧美色偷偷大香| 中文字幕在线观看一区二区| 免费成人在线网站| 欧美色成人综合| 专区另类欧美日韩| 国产在线不卡视频| 日韩三级电影网址| 视频一区欧美日韩| 欧美性受xxxx黑人xyx性爽| 中文子幕无线码一区tr| 精品夜夜嗨av一区二区三区| 欧美日本在线播放| 亚洲综合视频在线观看| 97se狠狠狠综合亚洲狠狠| 精品国产乱码久久| 麻豆久久久久久| 欧美日韩和欧美的一区二区| 亚洲图片你懂的| 北条麻妃一区二区三区| 久久天天做天天爱综合色| 日本美女一区二区三区| 日本久久电影网| 国产精品综合av一区二区国产馆| 在线播放/欧美激情| 亚洲一区二区四区蜜桃| 色素色在线综合| 亚洲欧美在线高清| 成人黄色在线网站| 中文字幕一区日韩精品欧美| 大桥未久av一区二区三区中文| 久久久久国产一区二区三区四区| 国产精品中文字幕日韩精品| 久久久91精品国产一区二区精品| 久久国产日韩欧美精品| 日韩一区二区视频| 国产一区久久久| 国产欧美综合在线| 99re66热这里只有精品3直播| 国产精品久久久久久久午夜片| 成人免费视频视频| 亚洲视频综合在线| 在线观看亚洲精品| 性久久久久久久久久久久| 欧美日本一区二区| 久久精品99国产精品| 久久亚洲综合av| 懂色av噜噜一区二区三区av| 中文无字幕一区二区三区| 成人av动漫在线| 亚洲国产精品久久一线不卡| 日韩欧美成人激情| 丁香亚洲综合激情啪啪综合| 日韩一区欧美一区| 欧美三级中文字幕| 国产盗摄女厕一区二区三区| 亚洲码国产岛国毛片在线| 欧美老肥妇做.爰bbww| 国内国产精品久久| 亚洲丝袜另类动漫二区| 欧美精品1区2区| 国产高清成人在线| 一区二区在线免费| 日韩免费观看2025年上映的电影| 高清beeg欧美| 调教+趴+乳夹+国产+精品| 午夜在线成人av| 精品少妇一区二区| 91麻豆精品视频| 免费看欧美美女黄的网站| 欧美国产日韩精品免费观看| 色噜噜久久综合| 精品无人区卡一卡二卡三乱码免费卡| 国产欧美精品一区aⅴ影院| 欧洲精品一区二区| 国产成人免费在线观看| 天天操天天色综合| 欧美国产日韩亚洲一区| 69成人精品免费视频| 成人aaaa免费全部观看| 免费日本视频一区| 亚洲影院免费观看| 国产精品视频看| 欧美精品一区二区蜜臀亚洲| 91浏览器在线视频| 国产成人精品三级麻豆| 日韩成人一级大片| 亚洲国产日日夜夜| 亚洲日本在线天堂| 国产人成一区二区三区影院| 91精品福利在线一区二区三区| 色婷婷综合久久久| 波多野结衣在线aⅴ中文字幕不卡| 免费看欧美女人艹b| 午夜精品在线视频一区| 日韩一区日韩二区| 国产精品理论在线观看| 久久综合九色综合欧美亚洲| 91精品国产综合久久久久| 欧美在线一区二区| 日本韩国精品在线| 色综合久久中文综合久久97| 成人免费精品视频| 成人精品亚洲人成在线| 国产精品白丝av| 国产精品资源在线看| 久久精品国产第一区二区三区| 一本高清dvd不卡在线观看| 成人h动漫精品一区二| 国产精品夜夜爽| 国产精品一区久久久久| 成人午夜免费视频| 成人免费高清在线| av福利精品导航| 91视频精品在这里| 欧美色成人综合| 制服丝袜成人动漫| 欧美变态口味重另类| 久久综合九色综合欧美亚洲| 久久综合九色综合欧美98| 久久久激情视频| 国产精品天干天干在线综合| 欧美激情一区不卡| 亚洲欧洲综合另类| 五月天丁香久久| 久久电影网站中文字幕| 国产在线精品一区在线观看麻豆| 国产伦精品一区二区三区视频青涩 | 在线亚洲人成电影网站色www| 97精品国产97久久久久久久久久久久| 99久久婷婷国产综合精品| 欧美影院一区二区| 91精品国产91综合久久蜜臀| 欧美精品一区二区久久婷婷| 国产欧美日韩亚州综合| 亚洲人成精品久久久久久 | 中文字幕一区在线观看| 亚洲国产aⅴ天堂久久| 免费成人av在线播放| 成人丝袜18视频在线观看| 91久久精品一区二区三区| 欧美一区二区视频在线观看| 国产视频911| 亚洲一区二区精品视频| 国精产品一区一区三区mba桃花 | 欧美一区二区在线观看| 国产无人区一区二区三区| 亚洲精品综合在线| 久久se精品一区二区| 9i在线看片成人免费| 欧美精品一级二级| 国产精品视频yy9299一区| 爽爽淫人综合网网站 | 国产麻豆9l精品三级站| 在线一区二区视频| 久久在线观看免费| 亚洲成人在线免费| 成人午夜视频网站| 69堂成人精品免费视频| 成人欧美一区二区三区黑人麻豆| 日韩高清一级片| 99国产欧美久久久精品| 精品国产三级电影在线观看| 亚洲一本大道在线| www.日韩大片| 久久这里只有精品6| 日韩不卡一区二区| 色欲综合视频天天天| 国产亚洲福利社区一区| 强制捆绑调教一区二区| 色偷偷88欧美精品久久久| 国产亚洲精品aa午夜观看| 视频一区视频二区在线观看| 色一情一伦一子一伦一区| 国产精品久久久久久久裸模| 国内精品伊人久久久久av影院| 欧美羞羞免费网站| 日韩毛片视频在线看| 国产91精品欧美| 精品国产免费视频| 免费在线观看日韩欧美| 正在播放一区二区| 午夜精品久久久久久久| 在线看日本不卡| 亚洲乱码中文字幕| 99re视频这里只有精品| 国产午夜精品理论片a级大结局 | 久久久美女毛片| 蜜臀av在线播放一区二区三区| 欧美日韩国产另类一区| 亚洲综合色在线| 欧美性一级生活| 午夜精品福利视频网站| 精品视频在线免费观看| 亚洲第一成年网|