單位1;
介面
用途
Windows,Messages,Sysutilils,變體,類,圖形,控件,表單,表單,
對話,comctrls,stdctrls,extctrls,網格,日曆,計量儀,jpeg;
類型
tform1 = class(tform)
Shape1:福特;
Shape2:潮汐;
Shape3:相反;
Shape4:對於潮汐;
shape5:tabs;
Shape6:潮汐;
Shape7:對於潮汐;
Shape8:相反;
shape9:對於潮汐;
Shape10:休息一下;
Shape11:相反;
Shape12:Formore;
patictictext1:tstatictext;
patictictext2:tstatictext;
pattictext3:tstatictext;
pattictext4:tstatictext;
patictictext5:tstatictext;
pattictext6:tstatictext;
patictictext7:tstatictext;
edit1:tedit;
edit2:titit;
edit3:tedit;
edit4:titit;
edit5:titit;
edit6:titit;
Edit7:Teded;
edit8:titit;
edit9:titit;
edit10:titit;
Edit11:Teded;
Edit12:Tedit;
edit13:titit;
Edit16:Tedit;
edit15:titit;
Edit16:Tedit;
edit17:titit;
Edit18:Tedit;
Edit19:Tedod;
Edit20:Teded;
Edity21:titit;
edit22:teep;
edit23:titit;
Edit24:Tedit;
edit25:titit;
edit26:titit;
edit27:titit;
edit22:titit;
Button 1:Tbutton;
Edit2T2:列為;
timer1:timtimer;
timer2:時間;
ListBox1:tlistbox;
儀表1:tgauge;
Gauge2:Tgauge;
Gauge3:Tgauge;
Gauge4:TGG;
標籤1:tlabel;
Label2:tlabel;
標籤3:tlabel;
Label4:tlabel;
Edit30:TEDIT;
Image1:司法燈;
標籤5:tlabel;
Button2:tbutton;
timer3:快
Button4:Tbutton;
鈕扣5:tbutton;
Button3:Tbutton;
Label6:tlabel;
按鈕6:tbutton;
TIMER:TIMER;
過程Timer1Stimer(發件人:tobject);
過程button1Click(發件人:tobject);
過程Timer2Timer(發件人:tobject);
過程button2Click(發件人:tobject);
過程Timer33Timer(發件人:tobject);
過程button3Click(發件人:tobject);
過程button4Click(發件人:tobject);
過程button5Click(發件人:tobject);
過程FormCreate(發送者:tobject);
過程button6click(發件人:tobject);
過程Timer4Timer(發件人:tobject);
私人的
{私人聲明}
民眾
{公開聲明}
結尾;
類型
PCB =記錄
名稱:字符串;
ARV:整數;
SVT:整數;
STT:整數;
FNT:整數;
ZZSJ:整數;
DQSJ:真實;
fnhflflg:bool;
sttflg:boob;
結尾;
PCB的PCBX =陣列[1.4];
var
nullflag:bol = false;
forword:bol = false;
subemp:integer = 0;
J:Integer = 1;
OpenFlg:bolo = true;
tempid:integer = 1;
fnehnum:integer = 0;
PCBUM:Integer = 0;
ntp:bol = false;
tempok:bol = false;
標誌:bol = false;
form1:tform1;
顯示:tdateTime;
計數:integer = -1;
Pro:Integer = 0;
// pcbad:integer = 1;
writflg:integer = 0;
PCB:PCBX;
雖然,Min,Sec,MSEC:Word;
方法:整數= 1;
執行
使用Unit3;
{$ r * .dfm}
過程tform1.timer1p1.timer1timer(發件人:tobject);
var
W:整數;
F:整數;
開始
如果flag = true和nullflag = false,則false遠為true
開始
計數:= count + 1;
ListBoxes1.Items.Add(inttoStr(count);
對於W:= 1至4做
開始
如果PCB [W] .ARV = Counten
開始
timer2.Nabled:= false;
pcbum:= pcbnum + 1;
timer2.enabled:= true;
結尾;
結尾;
如果openflg = false,則
開始
如果計數(count = pcbs [tempid] .stt + pcbs [tempid] .svt)然後
開始
PCB [tempid] .fnhflg:= true;
fnehnum:= fnehre + 1;
如果fnehnum = 4,則
開始
標誌:= false;
PCB [1] .fnt:= PCB [1] .STT + PCB [1] .svt;
PCB [1] .zzzSJ:= PCBS [1] .FNT-PCBB [1] .ARV;
PCB [1] .DQSJ:= PCBS [1] .ZZSJ /(PCBS [1] .lnt);
PCB [2] .fnt:= PCBS [2] .STT + PCB [2] .svt;
PCB [2] .zzzSJ:= PCBS [2] .FNT-PCBS [2] .ARV;
PCB [2] .DQSJ:= PCBS [2] .ZZSJ /(PCBS [2] .ltt);
PCB [3] .fnt:= PCBS [3] .STT + PCB [3] .svt;
PCB [3] .zzzSJ:= PCB [3] .FNT-PCBS [3 .ARV;
PCB [3] .DQSJ:= PCBS [3] .ZZSJ /(PCBS [3] .ltt);
PCB [4] .fnt:= PCBS [4] .STT + PCB [4] .SVT;
PCB [4] .zzzSJ:= PCBS [4] .FNT-PCBS [4] .ARV;
PCB [4] .DQSJ:= PCB [4] .zzsj/(PCBS [4] .TT);
edit13.text:= inttoStr(pcbs [1] .tt);
edit14.text:= inttoStr(PCBS [1] .STT + PCB [1] .svt);
edit15.Text:= inttoStr(pcbs [1] .zzsj);
edit16.text:= flattoStr(PCBS [1] .DQSJ);
editi7.text:= inttoStr(pcbs [2] .stt);
editi.text:= inttoStr(PCBS [2] .STT + PCB [2] .svt);
edit19.Text:= inttoStr(PCBS [2] .zzsj);
edit20.text:= flattoStr(PCBS [2] .DQSJ);
edit21.text:= inttoStr(pcbs [3] .tt);
edit22.Text:= inttoStr(PCBS [3] .STT + PCB [3 .svt);
edit23.Text:= inttoStr(PCBS [3] .zzsj);
edit24.text:= flattoStr(PCBS [3] .DQSJ);
edit25.Text:= inttoStr(PCBS [4] .TT);
edit26.text:= inttoStr(PCBS [4] .STT + PCB [4] .svt);
edit27.text:= inttoStr(PCBS [4] .zzsj);
edit22.Text:= flofoStr(PCBS [4] .DQSJ);
結尾;
OpenFlg:= true; //改!!!!!!!
tempok:= false;
結尾;
結尾;
f:= 1至4 do
開始
if(count = pcbs [f] .stt + pcbs [f] .svt)和pcbsvt1
listbr.idds.add(PCB [F] .NAME +'完成!!!!');
結尾; // 為了
結束; // flag = ture
如果openflg = false,則
開始
案例tempid
1:開始
ifcls [1] .svt = 1
開始
GAUGE1.MAXVALUE:= 2;
gauge1.progress:= 2;
結尾
別的
開始
GAUGE1.MAXVALUE:= PCBS [1] .svt;
gauge1.progress:= count-pcbs [1] .stt;
結尾;
結束; // 1;
2:開始
GAUGE2.MAXVALUE:= PCBS [2] .svt;
gauge2.progress:= count-pcbs [2] .stt;
結束; // 2;
3:開始
Gauge3.maxValue:= PCB [3] .svt;
gauge3.progress:= count-pcbs [3] .stt;
結束; // 3;
4:開始
Gauge4.maxValue:= PCB [4] .svt;
gauge4.progress:= count-pcbs [4] .tt;
結尾; // 4;
結束
結束; //如果Openflg = false
如果PCB [1] .fnhflg = true,則
gauge1.progress:= PCB [1] .svt;
如果PCB [2] .fnhflg = TUE,則
gauge2.progress:= PCB [2] .svt;
如果PC [3] .fnhflg = TUE,則
Gauge3.progress:= PCB [3] .svt;
IFF PC [4] .fnhflg = true然後
Gauge4.progress:= PCB [4] .svt;
結束; //程序
過程tform1.button1Click(發件人:tobject);
開始
button2.Enabled:= false;
timer3.enabled:= false;
timer2.enabled:= true;
timer1.enabled:= true;
timer4.enabled:= false;
嘗試
標誌:= true;
PCB [1] .NAME:= EDIT1.ORTHTATEXT;
PCB [1] .ARV:= strtint(edit2.text);
PCB [1] .svt:= strtouch(edit3.text);
PCB [1]。
PCB [1] .fnhflg:= false;
PCB [2] .NAME:= edit4.text;
PCB [2] .ARV:= strtint(editt5.text);
PCB [2] .svt:= strtouch.text);
PCB [2] .sttflg:= false;
PCB [2] .fnhflg:= false;
PCB [3] .NAME:= edit7.text;
PCB [3] .ARV:= strtint(edit8.text);
PCB [3] .svt:= strtouch(edit9.text);
PCB [3] .sttflg:= false;
PCB [3] .fnhflg:= false;
PCB [4] .NAME:= EDIT10.TEXT;
PCB [4] .ARV:= strtint(edit11.text);
PCB [4] .svt:= strtoot(edit12.text);
PCB [4]。
PCB [4] .fnhflg:= false;
nullflag:= false;
除了
nullflag:= true;
展示('請將數據填完整');
結尾;
結尾;
過程tform1.timer2timer(發件人:tobject);
var
我:整數;
開始
如果fnehnum <pcbox,則
開始
如果(openflg = true)和(pcbumd> 0)))))))
開始
對於i:= 1 to pcbruc攪拌
開始
如果PCB [i] .fnhflg = false
開始
如果tempok = false,則
開始
suremp:= tempid;
tempid:= i;
tempok:= true;
結尾;
如果PCB [i] .svt <PCB [tempid] .svt然後
開始
//timer1.enabled:/false;
tempid:= i;
//timer1.enabled:lue;
結束; //如果PCB [i] .svt <pcs [tempid]。
結束;
結尾;
OpenFlg:= false;
PCB [tempid] .stt:= count;
PCB [tempid] .sttflg:= true;
//listbox1.idd.add('進程' + pcbs [subtem] .name +'fnh');
ListBoxes.atms.Add('進程' + PCB [tempid] .name +'被調度');
end; // if(openflg = true和phbumt> 0)
結束; //如果fnhnum <pcbnum
結尾; // 程式
過程tform1.button2Click(發件人:tobject);
開始
button1.enabled:= false;
timer1.enabled:= false;
timer2.Nabled:= false;
timer3.enabled:= true;
timer4.enabled:= true;
嘗試
標誌:= true;
PCB [1] .NAME:= EDIT1.ORTHTATEXT;
PCB [1] .ARV:= strtint(edit2.text);
PCB [1] .svt:= strtouch(edit3.text);
PCB [1] .sttflg:= true;
PCB [1] .fnhflg:= false;
PCB [2] .NAME:= edit4.text;
PCB [2] .ARV:= strtint(editt5.text);
PCB [2] .svt:= strtouch.text);
PCB [2] .sttflg:= false;
PCB [2] .fnhflg:= false;
PCB [3] .NAME:= edit7.text;
PCB [3] .ARV:= strtint(edit8.text);
PCB [3] .svt:= strtouch(edit9.text);
PCB [3] .sttflg:= false;
PCB [3] .fnhflg:= false;
PCB [4] .NAME:= EDIT10.TEXT;
PCB [4] .ARV:= strtint(edit11.text);
PCB [4] .svt:= strtoot(edit12.text);
PCB [4]。
PCB [4] .fnhflg:= false;
nullflag:= false;
除了
nullflag:= true;
展示('請將數據填完整');
結尾;
結尾;
過程tform1.timer3timer3timerter(發件人:tobject);
var
M:整數;
開始
如果(flag = true)和(ntp = false)和(nullflag = false))然後
開始//如果falg = true然後
計數:= count + 1;
ListBoxes1.Items.Add(inttoStr(count);
對於M:= 1至4DO
開始//對於m:= 1至5 do
如果((PCB [M] .STTFG = TRUE)和(PCBS [M] .fnhflg = false))
開始// if(pcb [m] .sttflg = true和pcb [m] .fnhflg = false)
如果計數= PCB [M] .STT + PCBS [M] .svt然後
開始// if(count = pcbs [m] .stt + pcbs [m] .svt)然後
PCB [m] .fnhflg:= true;
//timer4.enportdi:= false;
pro:= 0;
//timer4.enportd:= true;
ListBox1.itms.add('進程:' + PCB [m] .name +'完成!!!!');
如果m <4,則
開始//如果m <4,則
// PCBS LOSM+1 of.stttlg:= true;
// PCBS LOSM+1 of.stt:= count;
forword:= true;
結束; //如果m <4
PCB [m] .fnt:= count;
PCB [m] .zzzSJ:= PCBS [m] .fnt-pcbs [m] .arv;
PCB [M] .DQSJ:= PCBS [M] .ZZSJ /(PCBS [m] .ldt);
結束;
結束;
結束; //對於M:= 1至5
IFF PC [4] .fnhflg = true然後
開始
ntp:= true;
edit13.text:= inttoStr(pcbs [1] .tt);
edit14.text:= inttoStr(PCBS [1] .STT + PCB [1] .svt);
edit15.Text:= inttoStr(pcbs [1] .zzsj);
edit16.text:= flattoStr(PCBS [1] .DQSJ);
editi7.text:= inttoStr(pcbs [2] .stt);
editi.text:= inttoStr(PCBS [2] .STT + PCB [2] .svt);
edit19.Text:= inttoStr(PCBS [2] .zzsj);
edit20.text:= flattoStr(PCBS [2] .DQSJ);
edit21.text:= inttoStr(pcbs [3] .tt);
edit22.Text:= inttoStr(PCBS [3] .STT + PCB [3 .svt);
edit23.Text:= inttoStr(PCBS [3] .zzsj);
edit24.text:= flattoStr(PCBS [3] .DQSJ);
edit25.Text:= inttoStr(PCBS [4] .TT);
edit26.text:= inttoStr(PCBS [4] .STT + PCB [4] .svt);
edit27.text:= inttoStr(PCBS [4] .zzsj);
edit22.Text:= flofoStr(PCBS [4] .DQSJ);
結尾;
對於m:= 1至4做
開始
如果(count> = pcbs [m] .arv)和(pcbs [m] .sttfg = false))然後
如果forword = true,則
開始
PCB [M] .sttfg:= true;
PCB [m] .stt:= count;
forword:= false;
結束; // 3和3
結束; //對於M:= 1至4
GAUGE1.MAXVALUE:= PCBS [1] .svt;
GAUGE2.MAXVALUE:= PCBS [2] .svt;
Gauge3.maxValue:= PCB [3] .svt;
Gauge4.maxValue:= PCB [4] .svt;
如果PCB [1] .sttflg = true和PCB [1] .fnhflg = false
開始
//gauge1.progressive:= gaugh1.maxvalue:= PCBS CES1可用。
gauge1.progress:= count-pcbs [1] .stt;
end // iffbs [1] .sttflg = true and pcbs [1] .fnhflg = false
否則iff pc [1] .fnhflg = true然後
gauge1.progress:= PCB [1] .svt;
如果PCS [2] .sttfg = true和PCB [2] .fnhflg = false
開始
gauge2.progress:= count-pcbs [2] .stt;
end // iffbs [1] .sttflg = true and pcbs [1] .fnhflg = false
elee如果PCB [2] .fnhflg = TUE然後
gauge2.progress:= PCB [2] .svt;
如果PC [3] .sttfg = true和PCB [3 .fnhflg = false
開始
gauge3.progress:= count-pcbs [3] .stt;
end // iffbs [1] .sttflg = true and pcbs [1] .fnhflg = false
ELEE如果PCB [3] .fnhflg = TUE然後
Gauge3.progress:= PCB [3] .svt;
如果PC [4] .sttflg = true和PCB [4] .fnhflg = false
開始
gauge4.progress:= count-pcbs [4] .tt;
end // iffbs [1] .sttflg = true and pcbs [1] .fnhflg = false
ELEE如果PCB [4] .fnhflg = TUE然後
Gauge4.progress:= PCB [4] .svt;
結尾; //如果falg = true,則
結束; //程序
過程tform1.button3click(發件人);
開始
form1.close;
//end.//do結束
結尾;
過程tform1.button4Click(發件人:tobject);
開始
forword:= false;
subemp:= 0;
J:= 1;
OpenFlg:= true;
tempid:= 1;
fnehnum:= 0;
PCBUM:= 0;
ntp:= false;
tempok:= false;
標誌:= false;
gauge1.progress:= 0;
gauge2.progress:= 0;
gauge3.progress:= 0;
Gauge4.progress:= 0;
button2.enported:= true;
button1.enabled:= true;
計數:= -1;
pro:= 0;
// pcbad:integer = 1;
writflg:= 0;
標誌:= false;
nullflag:= false;
edit1.text:=';
edit2.text:=';
edit3.text:=';
edit4.text:=';
edit5.text:=';
edit6.text:=';
edit7.text:=';
edit8.text:=';
edit9.text:=';
edit9.text:=';
edit11.text:=';
edit12.text:=';
edit13.text:='系統填寫';
edit14.text:='系統填寫';
edit15.text:='系統填寫';
edit16.text:='系統填寫';
editian.text:='系統填寫';
editi.text:='系統填寫';
edit19.text:='系統填寫';
edit20.text:='系統填寫';
edit21.text:='系統填寫';
edit22.text:='系統填寫';
edit23.text:='系統填寫';
edit24.text:='系統填寫';
edit25.text:='系統填寫';
edit26.text:='系統填寫';
edit27.text:='系統填寫';
edit22.text:='系統填寫';
PCB [1] .fnhflg:= false;
PCB [1]。
PCB [2] .fnhflg:= false;
PCB [2] .sttflg:= false;
PCB [3] .fnhflg:= false;
PCB [3] .sttflg:= false;
PCB [4] .fnhflg:= false;
PCB [4]。
結尾;
過程tform1.button5Click(發件人:tobject);
開始
form3.show;
結尾;
過程tform1.field:反對);
開始
form100fieldstyle:= fssStsyOntop;
EposateWindow(Handle,2000,AW_Center);
form100 formstyle:= fsnormal;
結尾;
過程tform1.button6click(發件人:tobject);
開始
edit1.text:='a';
edit2.text:='0';
edit3.text:='3';
edit4.text:='b';
edit5.text:='5';
edit6.text:='2';
edit7.text:='c';
edit8.text:='5';
edit9.text:='3';
edit19.text:='d';
edit11.text:='5';
edit12.text:='2';
結尾;
過程tform1.timer4timer4timer(發件人:tobject);
開始
如果((PCB [1] .ARV = Count)和(PCB [1] .sttflg = false))然後
開始
forword:= true;
結尾;
結尾;
結尾。
單位2;
介面
用途
Windows,Messages,Sysutilils,變體,類,圖形,控件,表單,表單,
對話,jpeg,extctrls,stdctrls;
類型
tform2 = class(tform)
Image1:司法燈;
標籤1:tlabel;
Label2:tlabel;
標籤3:tlabel;
私人的
{私人聲明}
民眾
{公開聲明}
結尾;
類型
PCB =記錄
名稱:字符串;
ARV:整數;
SVT:整數;
STT:整數;
FNT:整數;
ZZSJ:整數;
DQSJ:真實;
fnhflflg:bool;
sttflg:boob;
結尾;
PCB的PCBX =陣列[1.4];
var
form2:tform2;
PCB:PCBX;
執行
使用Unit1;
{$ r * .dfm}
結尾。
單位3;
介面
用途
Windows,Messages,Sysutilils,變體,類,圖形,控件,表單,表單,
對話,stdctrls,comctrls,jpeg,extctrls;
類型
tform3 = class(tform)
Richedit1:Trichit;
私人的
{私人聲明}
民眾
{公開聲明}
結尾;
var
form3:tform3;
執行
{$ r * .dfm}
結尾。