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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dlcontrol.~pas

?? 此代碼是關(guān)于mapgis的在
?? ~PAS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
unit DLControl;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DB, ADODB;

type
  TDotState=(dsLink, dsBreak);
  TLineState=(lsUnknown, lsOn, lsOff);
  
  TLineList=class;
  
  TDot = class
  private
    FDotState: TDotState;
    FDotId: Integer;
    FBDSDot: Boolean;
    FLinkedLines: TLineList;
  protected
    Checked:Boolean;
  public
    constructor Create;
    destructor Destroy;override;
    procedure Assign(aDot:TDot);
    procedure SaveToStream(Stream:TStream);
    procedure LoadFromStream(Stream:TStream);
    property LinkedLines:TLineList read FLinkedLines;
    {節(jié)點(diǎn)編號(hào)}
    property DotId:Integer read FDotId write FDotId;
    {是否為變電所}
    property BDSDot:Boolean read FBDSDot write FBDSDot;
    {節(jié)點(diǎn)狀態(tài)}
    property DotState:TDotState read FDotState write FDotState;
  end;

  TDotList = class
  private
    FList:TList;
    FOwnerRec:Boolean;
    function GetItemCount:Integer;
    function GetItem(Index:Integer):TDot;
  public
    constructor Create(const bOwnerRec:Boolean);
    destructor Destroy;override;
    procedure Assign(Source:TDotList);
    procedure Remove(aDot:TDot);
    procedure Add(Value:TDot);overload;
    function Add:TDot;overload;
    procedure Insert(const Index:Integer;Value:TDot);overload;
    function Insert(const Index:Integer):TDot;overload;
    procedure Delete(const Index:Integer);
    procedure Clear;
    function IndexOf(const DotId:Integer):Integer;
    function FindDot(const DotId:Integer):TDot;
    procedure LoadFromFile(const FileName:string);
    procedure SaveToFile(const FileName:string);
    procedure LoadFromStream(Stream:TStream);
    procedure SaveToStream(Stream:TStream);
    property ItemCount:Integer read GetItemCount;
    property Items[Index:Integer]:TDot read GetItem;
    property OwnerRec:Boolean read FOwnerRec;
  end;

  TLine = class
  private
    FLineId: Integer;
    FCurState: TLineState;
    FLinkedDots: TDotList;
    FOldState: TLineState;
  public
    constructor Create;
    destructor Destroy;override;
    procedure Assign(aLine:TLine);
    procedure SaveToStream(Stream:TStream);
    procedure LoadFromStream(Stream:TStream);
    procedure GetDLFromDots(List:TDotList);
    procedure SaveState;
    function StateChanged:Boolean;
    property LineId:Integer read FLineId write FLineId;
    property OldState:TLineState read FOldState write FOldState;
    property CurState:TLineState read FCurState write FCurState;
    property LinkedDots:TDotList read FLinkedDots write FLinkedDots;
  end;

  TLineList = class
  private
    FList:TList;
    FOwnerRec:Boolean;
    function GetItemCount:Integer;
    function GetItem(Index:Integer):TLine;
  public
    constructor Create(const bOwnerRec:Boolean);
    destructor Destroy;override;
    procedure Assign(Source:TLineList);
    procedure Add(Value:TLine);overload;
    function Add:TLine;overload;
    procedure Insert(const Index:Integer;Value:TLine);overload;
    function Insert(const Index:Integer):TLine;overload;
    procedure Delete(const Index:Integer);
    procedure Clear;
    function IndexOf(const LineId:Integer):Integer;
    function FindLine(const LineId:Integer):TLine;
    procedure LoadFromFile(const FileName:string);
    procedure SaveToFile(const FileName:string);
    procedure LoadFromStream(Stream:TStream);
    procedure SaveToStream(Stream:TStream);
    property ItemCount:Integer read GetItemCount;
    property Items[Index:Integer]:TLine read GetItem;
    property OwnerRec:Boolean read FOwnerRec;
  end;

  TDLControl=class
  private
    FDots: TDotList;
    FLines: TLineList;
    FUnitID: Integer;
  protected
    {分析一條線上一個(gè)端點(diǎn)的狀態(tài),如果該端點(diǎn)的狀態(tài)為dsBreak,則證明該端點(diǎn)無法
    給該線路供電,該線路也無法給和該端點(diǎn)相連的其它線路供電,該線路的供電,通
    過其它端點(diǎn)控制,如果所有其它端點(diǎn)都為}
    procedure AnalyzeDot(aDot:TDot; const bInput:Boolean);
  public
    constructor Create;
    destructor Destroy;override;
   {從數(shù)據(jù)庫(kù)加載整個(gè)網(wǎng)絡(luò),包括節(jié)點(diǎn)和線路}
    procedure LoadFromDataBase(aQuery:TADOQuery);
    {改變一個(gè)開關(guān)的狀態(tài)}
    procedure SetDotState(aDot:TDot; aState:TDotState;
      const bApply:Boolean);
    {保存狀態(tài)到數(shù)據(jù)庫(kù)}
    procedure SaveState(aDot:TDot; aQuery:TADOQuery);
    {變電所是否被分析過}
    function BDSNetWorkIsAnalyzed(aBDSDot:TDot):Boolean;
    {取得所有變電所}
    procedure GetBDSDots(List:TDotList);
    {分析狀態(tài)}
    procedure AnalyzeState;
    property UnitID:Integer read FUnitID write FUnitID;
    property Dots:TDotList read FDots;
    property Lines:TLineList read FLines;
  end;
  
implementation

uses
  ADODBTools;

constructor TDotList.Create(const bOwnerRec:Boolean);
begin
  inherited Create;
  FList:=TList.Create;
  FOwnerRec:=bOwnerRec;
end;

destructor TDotList.Destroy;
begin
  Clear;
  FList.Free;
  inherited Destroy;
end;

function TDotList.GetItemCount:Integer;
begin
  Result:=FList.Count;
end;

function TDotList.GetItem(Index:Integer):TDot;
begin
  Result:=FList.Items[Index];
end;

procedure TDotList.Add(Value:TDot);
begin
  FList.Add(Value);
end;

function TDotList.Add:TDot;
begin
  if not FOwnerRec then
    raise Exception.Create('不能創(chuàng)建記錄對(duì)象,因?yàn)榱斜聿皇撬姓撸?#039;);
  Result:=TDot.Create;
  Add(Result);
end;

procedure TDotList.Insert(const Index:Integer;Value:TDot);
begin
  FList.Insert(Index,Value);
end;

function TDotList.Insert(const Index:Integer):TDot;
begin
  if not FOwnerRec then
    raise Exception.Create('不能創(chuàng)建記錄對(duì)象,因?yàn)榱斜聿皇撬姓撸?#039;);
  Result:=TDot.Create;
  FList.Insert(Index,Result);
end;

procedure TDotList.Delete(const Index:Integer);
begin
  if FOwnerRec then
    TDot(FList.Items[Index]).Free;
  FList.Delete(Index);
end;

procedure TDotList.Clear;
var
  i:Integer;
begin
  if FOwnerRec then
    for i:=0 to FList.Count-1 do
      TDot(FList.Items[i]).Free;
  FList.Clear;
end;

procedure TDotList.LoadFromFile(const FileName:string);
var
  Stream:TMemoryStream;
begin
  Stream:=TMemoryStream.Create;
  try
    Stream.LoadFromFile(FileName);
    LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
end;

procedure TDotList.SaveToFile(const FileName:string);
var
  Stream:TMemoryStream;
begin
  Stream:=TMemoryStream.Create;
  try
    SaveToStream(Stream);
    Stream.SaveToFile(FileName);
  finally
    Stream.Free;
  end;
end;

procedure TDotList.LoadFromStream(Stream:TStream);
var
  AObj:TDot;
begin
  Clear;
  Stream.Position:=0;
  while Stream.Position<Stream.Size do
  begin
    AObj:=Add;
    AObj.LoadFromStream(Stream);
  end;
end;

procedure TDotList.SaveToStream(Stream:TStream);
var
  i:Integer;
  AObj:TDot;
begin
  Stream.Size:=0;
  Stream.Position:=0;
  for i:=0 to FList.Count-1 do
  begin
    AObj:=Items[i];
    AObj.SaveToStream(Stream);
  end;
end;


{ TDot }

procedure TDot.Assign(aDot: TDot);
begin
  FDotState:=aDot.DotState;
  FDotId:=aDot.DotId;
  FBDSDot:=aDot.BDSDot;
  FLinkedLines.Assign(aDot.LinkedLines);  
end;

constructor TDot.Create;
begin
  inherited Create;
  FLinkedLines:=TLineList.Create(False);
end;

destructor TDot.Destroy;
begin
  FLinkedLines.Free;
  inherited Destroy;
end;

procedure TDot.LoadFromStream(Stream: TStream);
begin
  //請(qǐng)?jiān)诖颂帉懘a
end;

procedure TDot.SaveToStream(Stream: TStream);
begin
  //請(qǐng)?jiān)诖颂帉懘a
end;

constructor TLineList.Create(const bOwnerRec:Boolean);
begin
  inherited Create;
  FList:=TList.Create;
  FOwnerRec:=bOwnerRec;
end;

destructor TLineList.Destroy;
begin
  Clear;
  FList.Free;
  inherited Destroy;
end;

function TLineList.GetItemCount:Integer;
begin
  Result:=FList.Count;
end;

function TLineList.GetItem(Index:Integer):TLine;
begin
  Result:=FList.Items[Index];
end;

procedure TLineList.Add(Value:TLine);
begin
 FList.Add(Value);
end;

function TLineList.Add:TLine;
begin
  if not FOwnerRec then
    raise Exception.Create('不能創(chuàng)建記錄對(duì)象,因?yàn)榱斜聿皇撬姓撸?#039;);
  Result:=TLine.Create;
  Add(Result);
end;

procedure TLineList.Insert(const Index:Integer;Value:TLine);
begin
  FList.Insert(Index,Value);
end;

function TLineList.Insert(const Index:Integer):TLine;
begin
  if not FOwnerRec then
    raise Exception.Create('不能創(chuàng)建記錄對(duì)象,因?yàn)榱斜聿皇撬姓撸?#039;);
  Result:=TLine.Create;
  FList.Insert(Index,Result);
end;

procedure TLineList.Delete(const Index:Integer);
begin
  if FOwnerRec then
    TLine(FList.Items[Index]).Free;
  FList.Delete(Index);
end;

procedure TLineList.Clear;
var
  i:Integer;
begin
  if FOwnerRec then
    for i:=0 to FList.Count-1 do
      TLine(FList.Items[i]).Free;
  FList.Clear;
end;

procedure TLineList.LoadFromFile(const FileName:string);
var
  Stream:TMemoryStream;
begin
  Stream:=TMemoryStream.Create;
  try
    Stream.LoadFromFile(FileName);
    LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
end;

procedure TLineList.SaveToFile(const FileName:string);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品日产欧美久久久久| 亚洲视频中文字幕| jvid福利写真一区二区三区| 亚洲国产日韩精品| 日本一区二区电影| 日韩美女在线视频| 欧美三级中文字幕| bt欧美亚洲午夜电影天堂| 青椒成人免费视频| 一区二区三区四区中文字幕| 精品福利一区二区三区| 欧美视频在线不卡| 91麻豆福利精品推荐| 国产.欧美.日韩| 麻豆专区一区二区三区四区五区| 一区二区久久久| 中文字幕在线不卡| 国产亚洲人成网站| 日韩欧美视频一区| 欧美二区在线观看| 欧美日韩一区二区不卡| 一本色道久久综合亚洲91| 成人免费视频播放| 国产成人在线色| 国产麻豆视频一区| 激情文学综合网| 麻豆免费看一区二区三区| 亚洲成人激情社区| 亚洲无线码一区二区三区| 亚洲精品精品亚洲| 亚洲人成影院在线观看| 国产精品色噜噜| 国产精品麻豆视频| 亚洲国产高清不卡| 国产精品三级视频| 中文字幕中文字幕一区| 欧美国产乱子伦 | 欧美视频在线不卡| 色久优优欧美色久优优| 99精品欧美一区二区三区小说| jvid福利写真一区二区三区| av男人天堂一区| 99精品国产91久久久久久| 成人一区在线看| 91丨九色porny丨蝌蚪| 91免费国产在线观看| 91高清视频免费看| 欧美日本一区二区三区四区| 欧美日韩国产成人在线免费| 91精品国产综合久久福利软件| 欧美日韩在线观看一区二区| 欧美性大战久久久| 欧美一区二区三区视频免费播放| 6080日韩午夜伦伦午夜伦| 日韩视频免费观看高清完整版 | 日韩欧美国产一区二区三区| 精品久久久久久久久久久久包黑料| 日韩欧美在线1卡| 欧美精品一区二| 国产欧美一区在线| 国产精品伦理在线| 亚洲伊人色欲综合网| 蜜桃视频一区二区三区| 国产成人在线色| 在线亚洲免费视频| 欧美一区二区黄色| 久久精品欧美一区二区三区麻豆| 国产精品麻豆99久久久久久| 亚洲综合在线视频| 麻豆精品久久精品色综合| 国产成人鲁色资源国产91色综| 成人av网站在线观看免费| 在线观看免费视频综合| 日韩精品一区二区在线观看| 国产清纯白嫩初高生在线观看91 | 亚洲精品日韩一| 日韩不卡一区二区| 国产高清视频一区| 在线亚洲人成电影网站色www| 宅男噜噜噜66一区二区66| 久久精品视频网| 亚洲大片免费看| 国产精品一卡二卡在线观看| 在线观看日韩电影| 久久久一区二区| 亚洲黄一区二区三区| 久久精品国产秦先生| 97久久超碰国产精品| 日韩视频一区二区三区| 亚洲女同一区二区| 久久精品999| 在线欧美日韩国产| 久久久国产精品不卡| 亚洲午夜精品一区二区三区他趣| 国产精品996| 欧美一区二区三区视频免费播放 | 成人免费看的视频| 欧美一级高清片| 亚洲精品国产成人久久av盗摄| 久久99精品久久久久久久久久久久| 色婷婷av一区二区三区大白胸| 精品国产乱码久久久久久久| 亚洲成人免费影院| 99在线热播精品免费| 久久网站最新地址| 日欧美一区二区| 在线精品亚洲一区二区不卡| 国产精品三级久久久久三级| 久久福利视频一区二区| 欧美三日本三级三级在线播放| 国产精品剧情在线亚洲| 国模一区二区三区白浆| 91精品国产色综合久久不卡电影| 亚洲精品欧美在线| www.av精品| 国产精品色一区二区三区| 国产主播一区二区| 欧美一级片在线观看| 午夜精品福利一区二区蜜股av| 色综合久久久网| 亚洲视频在线观看三级| 北条麻妃一区二区三区| 国产亚洲欧美激情| 国产大陆a不卡| 久久久亚洲高清| 国产一区二区三区免费看 | av亚洲精华国产精华精华| 国产三级精品三级| 丰满放荡岳乱妇91ww| www激情久久| 精品一区二区三区蜜桃| 精品久久久久久久人人人人传媒 | 日韩精品一卡二卡三卡四卡无卡| 在线亚洲一区二区| 亚洲午夜久久久久久久久电影院| 在线观看国产日韩| 亚洲福利一区二区| 欧美男生操女生| 人人精品人人爱| 日韩一区二区视频| 国产在线播放一区| 国产亚洲va综合人人澡精品| 国产成人av一区二区| 国产精品久久久久桃色tv| 99久久99久久免费精品蜜臀| 一区二区三区中文在线观看| 欧美色综合影院| 肉色丝袜一区二区| 精品福利在线导航| 风间由美一区二区三区在线观看| 国产精品成人免费在线| 91视频91自| 亚洲成人免费视频| 欧美tk—视频vk| 国产精品一二三区| 中文字幕一区二区三区视频| 色噜噜狠狠一区二区三区果冻| 亚洲国产精品视频| 精品久久久久一区| 成人免费视频一区| 亚洲图片自拍偷拍| 久久综合色8888| 成人激情开心网| 一区二区三区四区激情| 欧美一区二区三区在线视频| 国产在线一区观看| **性色生活片久久毛片| 欧美日韩亚洲综合一区二区三区| 蜜臀久久99精品久久久画质超高清| 亚洲精品在线免费观看视频| thepron国产精品| 日日骚欧美日韩| 国产视频视频一区| 欧美三区在线视频| 国产成人精品一区二区三区四区 | 欧美不卡在线视频| jizz一区二区| 免费成人深夜小野草| 国产精品美女久久久久高潮| 欧美日韩国产高清一区二区三区 | 精品国精品国产| 91网站黄www| 精品一区二区三区日韩| 亚洲欧美日韩中文播放 | 激情六月婷婷久久| 亚洲欧美综合在线精品| 91精品国产一区二区三区香蕉| 国产成人精品影视| 日韩电影免费一区| 亚洲欧洲国产日本综合| 精品久久久久99| 欧美日韩性生活| 成人黄色大片在线观看| 欧美aaaaa成人免费观看视频| 中文字幕人成不卡一区| 精品国产百合女同互慰| 欧美日韩免费在线视频| 成人av综合在线| 九九视频精品免费| 天天av天天翘天天综合网|