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

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

?? mainunit.~pas

?? 發(fā)射臺 控制臺 dephi編寫 大家可以隨便可看看, 可以做dephi入門實例學習
?? ~PAS
?? 第 1 頁 / 共 5 頁
字號:
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, xmldom, XMLIntf, msxmldom, XMLDoc, ExtCtrls,
  Menus, Grids, Buttons, StrUtils, PWUnit, SetUnit;

type
  TKValue = Record
    value1 : array of integer;
    value2 : array of integer;
    value3 : array of integer;
    value4 : array of integer;
    value5 : array of integer;
  end;

type
  TKDetails = Record
    TName : string;
    AList : Tstrings;
    Value : TKValue;
  end;

type
  TFrmMain = class(TForm)
    DTSwitch: TDateTimePicker;
    Label1: TLabel;
    GroupBox1: TGroupBox;
    BoxA1: TComboBox;
    Label4: TLabel;
    Label5: TLabel;
    GroupBox2: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    BoxA2: TComboBox;
    GroupBox3: TGroupBox;
    Label6: TLabel;
    Label7: TLabel;
    BoxA3: TComboBox;
    GroupBox4: TGroupBox;
    Label8: TLabel;
    Label9: TLabel;
    BoxA4: TComboBox;
    GroupBox5: TGroupBox;
    Label10: TLabel;
    Label11: TLabel;
    BoxA5: TComboBox;
    GroupBox6: TGroupBox;
    Label12: TLabel;
    Label13: TLabel;
    BoxA6: TComboBox;
    BtnAdd: TButton;
    BtnModify: TButton;
    BtnDelete: TButton;
    XMLDocument1: TXMLDocument;
    BtnKey: TButton;
    Timer1: TTimer;
    PopupMenu1: TPopupMenu;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    DateTimePicker1: TDateTimePicker;
    StringGrid1: TStringGrid;
    BtnOK: TButton;
    BtnCancel: TButton;
    NSet: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BtnKeyClick(Sender: TObject);
    procedure BtnAddClick(Sender: TObject);
    procedure BoxA1Click(Sender: TObject);
    procedure BoxA2Click(Sender: TObject);
    procedure BoxA3Click(Sender: TObject);
    procedure BoxA4Click(Sender: TObject);
    procedure BoxA5Click(Sender: TObject);
    procedure BoxA6Click(Sender: TObject);
    procedure BtnModifyClick(Sender: TObject);
    procedure BtnDeleteClick(Sender: TObject);
    procedure BtnCancelClick(Sender: TObject);
    procedure BtnOKClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DTSwitchClick(Sender: TObject);
    procedure StringGrid1Click(Sender: TObject);
    procedure NSetClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    RunMapFileName, ChartFileName ,CurWorkDir : string;
    TKDB : array[0..5] of TKDetails;
    AInUseList : TStrings;
    DTArr : array of TDateTime;
    IndexInFile : array[0..5] of array of integer;     //warning!!此處index從1開始,為了與integer默認初始化值0相區(qū)分
    Locked : boolean;
    OperateType : integer;   //0:增加;1:修改;2:刪除
    procedure InitDBValue();
    procedure FreeDB();
    procedure InitRunMapFile();  //初始化保存運行圖的文件
    procedure RefreshDBGrid();
    function GetTIndex(TName : string) : integer; //根據(jù)發(fā)射機名,獲得此發(fā)射機的索引號
    procedure RefreshAInUseList();
    procedure RefreshComBoxList(nowBox : integer);
    function JudgeIsInUse(AName : string; Index : integer) : boolean;
//    function JudgeIsInGroup(AName : string; nowBox, CompareBox : integer) : boolean;
    procedure SystemLocked(IsLocked : boolean);
    procedure BtnStateSwitch(OperateBtnState : boolean);
    procedure RefreshChartFile();     //必須在RefreshDBGrid之后調用
    function TimeDefference(t1, t2 : TDateTime) : integer;   //將時間的差異換算成差的秒數(shù), t2 > t1
    function JudgeTimeIsInUse(dt : TDateTime) : boolean;
    procedure ClearComBox();  //使combox中選中的值均為‘未使用’
  public
    { Public declarations }
    SetFileName : string;
    pw : string;
    SleepTimeLimit : integer;
    IsPWCorrect : integer;  //-1:未確定;0:錯誤;1:正確
   function FindSInSList(s : string; sList : TStrings) : integer;
  end;

var
  FrmMain: TFrmMain;
  Mutex: hWnd;    // Mutexhandle
  function CreateMutex: Boolean;
  procedure DestroyMutex;

implementation

{$R *.dfm}

function CreateMutex: Boolean;
var
  PrevInstHandle: THandle;
  AppTitle: PChar;
begin
  AppTitle := StrAlloc(100);
  StrPCopy(AppTitle, Application.Title);
  Result := True;
  Mutex := Windows.CreateMutex(nil, False, AppTitle);
  if (GetLastError = ERROR_ALREADY_EXISTS) or (Mutex = 0) then begin
    Result := False;
    SetWindowText(Application.Handle, '');
    PrevInstHandle := FindWindow(nil, AppTitle);
    if PrevInstHandle <> 0 then begin
     if IsIconic(PrevInstHandle) then
        ShowWindow(PrevInstHandle, SW_RESTORE)
      else
       BringWindowToTop(PrevInstHandle);
       SetForegroundWindow(PrevInstHandle);
    end;
    if Mutex <> 0 then
      Mutex := 0;
  end;
  StrDispose(AppTitle);
end;

procedure DestroyMutex;
begin
  if Mutex <> 0 then
    CloseHandle(Mutex);
end;


procedure TFrmMain.FormCreate(Sender: TObject);
var
//  tmpBuf : array[0..255] of char;
  tmpList : TStrings;
begin
  //取當前路徑
//  GetCurrentDirectory(SizeOf(tmpBuf), tmpBuf);
  CurWorkDir := 'c:';
  RunMapFileName := CurWorkDir + '\runmap.xml';
  ChartFileName := CurWorkDir + '\Chart.csv';
  SetFileName := CurWorkDir + '\Set.dat';
  //初始化庫
  try
    InitDBValue();
  except
    ShowMessage('初始化庫失敗!');
    exit;
  end;

  tmpList := TStringList.Create;
  if FileExists(SetFileName) = false then
    begin
      tmpList.Add('123');
      tmpList.Add('60000');
      tmpList.SaveToFile(SetFileName);
    end else
    begin
      tmpList.LoadFromFile(SetFileName);
    end;
  SleepTimeLimit := StrToInt(tmpList.Strings[1]);
  self.Timer1.Interval := SleepTimeLimit;
  self.pw := tmpList.Strings[0];
  tmpList.Free;

  InitRunMapFile();
  RefreshDBGrid();
  RefreshChartFile;

  AInUseList := TStringList.Create;
  AInUseList.Add('未使用');
  AInUseList.Add('未使用');
  AInUseList.Add('未使用');
  AInUseList.Add('未使用');
  AInUseList.Add('未使用');
  AInUseList.Add('未使用');
  RefreshComBoxList(100);
  self.BoxA1.ItemIndex := 0;
  self.BoxA2.ItemIndex := 0;
  self.BoxA3.ItemIndex := 0;
  self.BoxA4.ItemIndex := 0;
  self.BoxA5.ItemIndex := 0;
  self.BoxA6.ItemIndex := 0;
  RefreshAInUseList();

  IsPWCorrect := -1;
  locked := false;
end;

procedure TFrmMain.BitBtn1Click(Sender: TObject);
begin
  self.StringGrid1.Cells[0,0] := 'abcd';
end;

procedure TFrmMain.FreeDB;
var
  i : integer;
begin
  for i := 0 to 5 do
    begin
      TKDB[i].AList.Free;
      SetLength(TKDB[i].Value.value1, 0);
      SetLength(TKDB[i].Value.value2, 0);
      SetLength(TKDB[i].Value.value3, 0);
      SetLength(TKDB[i].Value.value4, 0);
      SetLength(TKDB[i].Value.value5, 0);
    end;
end;

procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
var
  i : integer;
begin
  FreeDB();

  AInUseList.Free;

  for i := 0 to 5 do
    begin
      SetLength(IndexInFile[i], 0);
    end;

  SetLength(DTArr, 0);
end;

procedure TFrmMain.InitRunMapFile;
var
  tmpList : TStrings;
begin
  if FileExists(RunMapFileName) then
    exit;
  tmpList := TStringList.Create;
  tmpList.Add('<RunMap>');
  tmpList.Add('</RunMap>');
  tmpList.SaveToFile(RunMapFileName);
  tmpList.Free;
end;

procedure TFrmMain.RefreshDBGrid;
var
  tmpDTArr : array of TDateTime;
  tmpTNameArr : array of string;
  tmpANameArr : array of string;
  tmpDT : TDateTime;
  AccessCount, i, j, k, n, m : integer;
  RootNode, CurNode : IXMLNode;
  myRect: TGridRect;
begin
  //FREE 各值
  for n := 0 to 5 do
    begin
      setlength(IndexInFile[n], 0);
    end;
  setlength(DTArr, 0);
  for i := 0 to 6 do
    begin
      self.StringGrid1.Rows[i].Clear;
    end;
  self.StringGrid1.ColCount := 3;
  self.StringGrid1.RowCount := 3;
  myRect.Left := 1;
  myRect.Top := 1;
  myRect.Right := 1;
  myRect.Bottom := 1;
  self.StringGrid1.Selection := myRect;

  if self.XMLDocument1.Active = true then
    begin
      self.XMLDocument1.Active := false;
    end;
  self.XMLDocument1.FileName := RunMapFileName;
  try
    self.XMLDocument1.Active := true;
    RootNode := self.XMLDocument1.DocumentElement;        //
    AccessCount := RootNode.ChildNodes.Count;      //


    for i := 0 to Length(TKDB)-1 do
      begin
        self.StringGrid1.RowCount := self.StringGrid1.RowCount + 1;
        self.StringGrid1.Cells[0, i+1] := TKDB[i].TName;
      end;

    //初始化StringGrid中第一行的數(shù)據(jù),時間值從小到大
    setlength(tmpDTArr, AccessCount);
    setlength(tmpTNameArr, AccessCount);
    setlength(tmpANameArr, AccessCount);
    for i :=0 to AccessCount - 1 do
      begin
        CurNode := RootNode.ChildNodes[i];
        tmpDTArr[i] := StrToDateTime(CurNode.Attributes['RunTime']);
        tmpTNameArr[i] := CurNode.Attributes['TName'];
        tmpANameArr[i] := CurNode.Attributes['AName'];
      end;

    j := 0;
    m := 0;
    while j<>AccessCount do
      begin
        tmpDT := tmpDTArr[0];
        for i := 0 to AccessCount -1 do
          begin
            if tmpDTArr[i] < tmpDT then
              begin
                tmpDT := tmpDTArr[i];
              end;
          end;
       self.StringGrid1.ColCount := self.StringGrid1.ColCount + 1;
       self.DateTimePicker1.DateTime := tmpDT;
       self.StringGrid1.Cells[m+1, 0] := TimeToStr(self.DateTimePicker1.Time);
       setlength(DTArr, m+1);
       DTArr[m] := tmpDT;
       for n := 0 to 5 do
         begin
           setlength(IndexInFile[n], m+1);
         end;
        for i := 0 to AccessCount -1 do
          begin
            if tmpDTArr[i] = tmpDT then
              begin
                k := GetTIndex(tmpTNameArr[i]);
                IndexInFile[k][m] := i+1;
                tmpDTArr[i] := StrToDateTime('2004-1-2 12:00:00');
                self.StringGrid1.Cells[m+1, k+1] := tmpANameArr[i];
                j := j + 1;
              end;
          end;
 //       j := j + 1;
        m := m + 1;
{        tmpDTArr[IndexInFile[j]] := StrToDateTime('2004-1-2 12:00:00');
         self.DateTimePicker1.DateTime := tmpDT;
       tmpStr := RootNode.ChildNodes.Get(IndexInFile[j]).Attributes['TName'];

        tmpStr := RootNode.ChildNodes.Get(IndexInFile[j]).Attributes['AName'];
        if (k >= 0) and (k <= 5) then
          begin
            self.StringGrid1.ColCount := self.StringGrid1.ColCount + 1;
            self.StringGrid1.Cells[j, 0] := TimeToStr(self.DateTimePicker1.Time);
            self.StringGrid1.Cells[j, k+1] := tmpStr;
          end;}
      end;
    SetLength(tmpDTArr, 0);
    SetLength(tmpTNameArr, 0);
    SetLength(tmpANameArr, 0);
  except
    ShowMessage('刷新運行圖失敗!');
    SetLength(tmpDTArr, 0);
    SetLength(tmpTNameArr, 0);
    SetLength(tmpANameArr, 0);
    exit;
  end;
end;

function TFrmMain.GetTIndex(TName: string): integer;
var
  s : string;
begin
  s := LeftStr(TName, 1);
  try
    result := StrToInt(s) - 1;
  except
    result := -1;
  end;
end;

procedure TFrmMain.InitDBValue;
begin
//1#發(fā)射機
  TKDB[0].TName := '1#發(fā)射機';                //發(fā)射機號
  TKDB[0].AList := TStringList.Create;
  TKDB[0].AList.Add('未使用');             //對應天線號
  TKDB[0].AList.Add('2#天線');             //對應天線號
  TKDB[0].AList.Add('4#天線');
  TKDB[0].AList.Add('6#天線');
  TKDB[0].AList.Add('7#天線');
  TKDB[0].AList.Add('9#天線');
  TKDB[0].AList.Add('11#天線');
  TKDB[0].AList.Add('13#天線');
  SetLength(TKDB[0].Value.value1, 8);
  SetLength(TKDB[0].Value.value2, 8);
  SetLength(TKDB[0].Value.value3, 8);
  SetLength(TKDB[0].Value.value4, 8);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产高清不卡二三区| 成人ar影院免费观看视频| xvideos.蜜桃一区二区| 欧美三级资源在线| 色欧美日韩亚洲| 色综合色综合色综合色综合色综合| 激情综合色播五月| 另类的小说在线视频另类成人小视频在线| 亚洲一区在线看| 亚洲午夜在线视频| 日韩精品1区2区3区| 欧美精品日韩精品| 欧美激情一二三区| 在线免费视频一区二区| 在线观看不卡一区| 欧美日韩国产在线观看| 91精品国产综合久久精品app| 在线播放欧美女士性生活| 日韩一区二区三区观看| 久久久亚洲精品石原莉奈| 国产精品久久久久婷婷二区次| 中文字幕亚洲精品在线观看| 亚洲成在线观看| 久久疯狂做爰流白浆xx| 北条麻妃一区二区三区| 欧美三级电影一区| 久久久.com| 亚洲综合小说图片| 国产精选一区二区三区| 97se亚洲国产综合自在线 | 欧美日韩高清影院| 欧美一区二区三区在线观看| 国产亚洲一区二区三区| 一区二区三区精品久久久| 免费人成黄页网站在线一区二区| 国产高清精品久久久久| 欧美最猛黑人xxxxx猛交| 精品少妇一区二区三区在线播放| 国产精品电影一区二区| 日本在线观看不卡视频| 福利电影一区二区| 91精品国产综合久久福利软件| 久久久久久久久久久黄色| 亚洲一线二线三线久久久| 国产一区二区影院| 欧美丰满少妇xxxxx高潮对白| 欧美国产日韩a欧美在线观看| 国产乱色国产精品免费视频| 色av综合在线| 国产精品久久国产精麻豆99网站 | 亚洲一区在线观看视频| 国产乱码精品一区二区三| 欧美高清一级片在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 视频在线观看91| 色婷婷亚洲精品| 国产精品区一区二区三区| 久久99精品久久久久久国产越南 | kk眼镜猥琐国模调教系列一区二区| 欧美精选午夜久久久乱码6080| 中文字幕免费不卡| 国产精品亚洲成人| 欧美成人三级在线| 日本伊人精品一区二区三区观看方式| 99精品国产99久久久久久白柏| 精品国产乱码久久久久久久久| 亚洲国产成人高清精品| 欧美亚洲国产一区二区三区| 最新热久久免费视频| 国产a视频精品免费观看| 久久在线观看免费| 精品一区二区日韩| 26uuu亚洲| 国产盗摄女厕一区二区三区| 欧美精品一区二区在线播放| 久久99国产精品尤物| 日韩欧美卡一卡二| 激情综合一区二区三区| 26uuu亚洲婷婷狠狠天堂| 国产一二精品视频| 久久综合九色综合欧美98| 经典三级一区二区| 国产肉丝袜一区二区| 粉嫩高潮美女一区二区三区| 中文字幕乱码久久午夜不卡| 成人一区二区视频| 国产精品久久久久久福利一牛影视| 不卡在线观看av| 亚洲综合激情网| 欧美精品乱人伦久久久久久| 久久精品国产99久久6| 日韩欧美国产不卡| 国产经典欧美精品| 综合亚洲深深色噜噜狠狠网站| 色婷婷av一区二区三区gif| 一区二区三区国产精华| 欧美日韩视频不卡| 国产精品一区二区免费不卡| 国产精品毛片高清在线完整版| 91亚洲精品久久久蜜桃| 亚洲 欧美综合在线网络| 日韩免费电影一区| 成人黄色软件下载| 五月天网站亚洲| 久久久久99精品国产片| 99免费精品在线观看| 亚洲6080在线| 国产片一区二区| 欧美四级电影网| 国产一区二区三区不卡在线观看| 国产精品另类一区| 欧美人体做爰大胆视频| 顶级嫩模精品视频在线看| 午夜精品久久久久久久久久| 久久久久久久综合日本| 欧美在线小视频| 国产**成人网毛片九色| 日韩精品一级二级| 国产精品久久久久影院| 欧美一区二区黄色| 91小宝寻花一区二区三区| 国产乱码字幕精品高清av| 午夜国产不卡在线观看视频| 国产精品网站一区| 日韩免费高清电影| 在线成人免费视频| 91碰在线视频| 国产精品亚洲第一| 人妖欧美一区二区| 亚洲一区二区不卡免费| 国产精品福利影院| wwwwww.欧美系列| 91精品国产一区二区人妖| 色综合激情五月| 国产91精品欧美| 亚洲最快最全在线视频| 国产成+人+日韩+欧美+亚洲| 亚洲成va人在线观看| 亚洲三级久久久| 久久久久久99久久久精品网站| 555夜色666亚洲国产免| 欧美综合色免费| 91在线视频官网| 91福利在线看| 色素色在线综合| 美脚の诱脚舐め脚责91| 色噜噜狠狠成人中文综合| 欧美三级三级三级| 国产成人综合视频| 国产一区二区影院| 久久66热re国产| 久久99国产精品尤物| 免费久久99精品国产| 日韩精品一卡二卡三卡四卡无卡| 亚洲福利一区二区| 亚洲国产视频一区二区| 亚洲一区二区精品3399| 亚洲高清中文字幕| 日韩主播视频在线| 久久精品99久久久| 国模冰冰炮一区二区| 国产99久久精品| 成人激情黄色小说| 色婷婷国产精品| 欧美精品三级日韩久久| 日韩视频免费观看高清完整版在线观看 | 国产亚洲精品bt天堂精选| 久久尤物电影视频在线观看| 国产午夜精品福利| 亚洲欧美综合网| 午夜激情一区二区| 国产在线精品免费av| 99精品黄色片免费大全| 色8久久精品久久久久久蜜| 色婷婷国产精品久久包臀| 欧美美女网站色| 欧美成人三级电影在线| 国产精品灌醉下药二区| 夜夜嗨av一区二区三区| 麻豆成人在线观看| av不卡在线播放| 欧美美女黄视频| 中文字幕免费不卡在线| 亚洲妇女屁股眼交7| 国产资源在线一区| 91久久国产最好的精华液| 在线播放国产精品二区一二区四区 | 99久久精品99国产精品| 欧美在线免费观看视频| 久久精品一区四区| 亚洲国产精品久久一线不卡| 国产九九视频一区二区三区| 在线观看视频一区二区| 久久天堂av综合合色蜜桃网| 亚洲欧美激情视频在线观看一区二区三区 | 欧美日韩国产成人在线91| 国产日产亚洲精品系列| 一区二区免费在线| 国产精品1区2区3区在线观看| 91蜜桃传媒精品久久久一区二区|