unidade de unidade1;
Interface
Usos
Janelas, mensagens, sysutilils, variantes, classes, gráficos, controles, formulários,
Diálogos, comctrls, stdctrls, extctrls, grades, calendário, medidores, jpeg;
tipo
Tform1 = classe (tform)
Shape1: Ford;
Shape2: para a maré;
Shape3: para o oposto;
Shape4: para a maré;
Shape5: guias;
Shape6: para a maré;
Shape7: para a maré;
Shape8: para o oposto;
Shape9: para a maré;
Shape10: para uma pausa;
Shape11: para o oposto;
Shape12: Formore;
StatictExt1: tstatictExt;
StatictExt2: tstatictExt;
StatictExt3: tstatictExt;
StatictExt4: tstatictExt;
StatictExt5: tstatictExt;
StatictExt6: tstatictExt;
StatictExt7: 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;
Button1: tbutton;
Edit2T2: Tited;
Timer1: Timtimer;
Timer2: tempo;
ListBox1: tlistBox;
Medidor1: tgauge;
Gauge2: tgauge;
Medidor3: tgauge;
Medidor4: TGG;
Label1: Tlabel;
Label2: tlabel;
Label3: Tlabel;
Label4: Tlabel;
Edit30: TEDIT;
Image1: Timage;
Label5: Tlabel;
Button2: tbutton;
Timer3: TIMTER;
Button4: tbutton;
Button5: tbutton;
Button3: tbutton;
Label6: Tlabel;
Button6: tbutton;
Timer4: TIMTER;
Procedimento Timer1stimer (remetente: tabjas);
Procedimento Button1Click (remetente: Tobject);
PROCEDIMENTO TIMER2TIMER (remetente: TObject);
Procedimento Button2Click (remetente: Tobject);
Procedimento Timer33timer (remetente: tabjas);
Procedimento Button3Click (remetente: Tobject);
Procedimento Button4Click (remetente: Tobject);
Procedimento Button5Click (remetente: TOBJECT);
Procedimento FormCreate (remetente: Tobject);
Procedimento Button6Click (remetente: Tobject);
Procedimento Timer4timer (remetente: tabjas);
Privado
{Declarações privadas}
público
{Declarações públicas}
fim;
tipo
PCB = registro
Nome: String;
ARV: Inteiro;
SVT: Inteiro;
STT: Inteiro;
FNT: Inteiro;
ZZSJ: Inteiro;
DQSJ: Real;
fnhflflg: bool;
STTFLG: BOOB;
fim;
Pcbx = matriz [1.4] de PCB;
var
Nullflag: bol = false;
Forword: bol = false;
Subemp: Inteiro = 0;
J: número inteiro = 1;
Openflg: bolo = true;
Tempid: Inteiro = 1;
fnehnum: número inteiro = 0;
Pcbum: número inteiro = 0;
Ntp: bol = false;
Tempok: bol = false;
Sinalizador: bol = false;
Form1: TForm1;
Mostrar: TDATETIME;
Contagem: número inteiro = -1;
Pro: Inteiro = 0;
// pcbad: número inteiro = 1;
Writflg: Integer = 0;
PCBs: PCBX;
No entanto, Min, Sec, MSEC: Word;
Método: Inteiro = 1;
implementação
use unidade3;
{$ R * .dfm}
procedimento tform1.timer1p1.timer1timer (remetente: tabject);
var
W: Inteiro;
F: Inteiro;
começar
Se flag = true e nullflag = false então e false 远为 true
começar
Contagem: = contagem + 1;
ListBoxes1.items.add (inttostr (contagem);
para w: = 1 a 4 fazer
começar
Se PCBs [w] .arv = Counten
começar
Timer2.Enabled: = false;
Pcbum: = pcbnum + 1;
Timer2.Enabled: = true;
fim;
fim;
Se openflg = false então
começar
Se count (contagem = pcbs [tempid] .stt + pcbs [tempid] .svt) Então
começar
PCBs [tempid] .fnhflg: = true;
fnehnum: = fnehre + 1;
Se fnehnum = 4 então
começar
Sinalizador: = false;
PCBs [1] .fnt: = pcbs [1] .stt + pcbs [1] .svt;
PCBs [1] .zzzsj: = pcbs [1] .fnt-pcbb [1] .arv;
Pcbs [1] .dqsj: = pcbs [1] .zzsj / (pcbs [1] .lnt);
PCBs [2] .fnt: = pcbs [2] .stt + pcbs [2] .svt;
PCBs [2] .zzzsj: = pcbs [2] .fnt-pcbs [2] .arv;
PCBs [2] .dqsj: = pcbs [2] .zzsj / (pcbs [2] .ltt);
PCBs [3] .fnt: = pcbs [3] .stt + pcbs [3] .svt;
PCBs [3] .zzzsj: = pcbs [3] .fnt-pcbs [3 .arv;
PCBs [3] .dqsj: = pcbs [3] .zzsj / (pcbs [3] .ltt);
PCBs [4] .fnt: = pcbs [4] .stt + pcbs [4] .svt;
PCBs [4] .zzzsj: = pcbs [4] .fnt-pcbs [4] .arv;
PCBs [4] .dqsj: = pcbs [4] .zzsj/ (pcbs [4] .tt);
Edit13.text: = inttoStr (PCBS [1] .tt);
Edit14.text: = inttostr (pcbs [1] .stt + pcbs [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 + pcbs [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 + pcbs [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 + pcbs [4] .svt);
Edit27.text: = inttostr (PCBS [4] .zzsj);
Edit22.text: = flofostr (pcbs [4] .dqsj);
fim;
Openflg: = true; // 改 !!!!!!!!
Tempok: = false;
fim;
fim;
para f: = 1 a 4 fazer
começar
if (count = pcbs [f] .stt + pcbs [f] .svt) e pcbsvt1
Listbr.idds.add (pcbs [f] .name + '完成 !!!!');
fim; // para
fim;
Se openflg = false então
começar
Caso Tempid of
1: Comece
ifcls [1] .svt = 1 então
começar
gauge1.maxValue: = 2;
gauge1.progress: = 2;
fim
outro
começar
gauge1.maxValue: = pcbs [1] .svt;
gauge1.progress: = count-PCBS [1] .stt;
fim;
fim;
2: Comece
gauge2.MaxValue: = PCBS [2] .svt;
gauge2.Progress: = count-PCBS [2] .stt;
fim;
3: Comece
gauge3.MaxValue: = PCBs [3] .svt;
gauge3.progress: = count-PCBS [3] .stt;
fim;
4: Comece
gauge4.MaxValue: = PCBS [4] .svt;
gauge4.progress: = count-PCBS [4] .tt;
fim; // 4;
fim;
fim;
Se PCBs [1] .fnhflg = true então
gauge1.progress: = pcbs [1] .svt;
Se PCBs [2] .fnHflg = Ter então
gauge2.progress: = pcbs [2] .svt;
Se os PCs [3] .fnHflg = ter então
gauge3.progress: = pcbs [3] .svt;
Iff pcs [4] .fnhflg = true então
gauge4.progress: = pcbs [4] .svt;
fim; // procedimento sobre
procedimento TForm1.Button1Click (remetente: TOBJECT);
começar
Button2.Enabled: = false;
Timer3.Enabled: = false;
Timer2.Enabled: = true;
timer1.enabled: = true;
Timer4.Enabled: = false;
tentar
sinalizador: = true;
Pcbs [1] .Nome: = edit1.orthTatext;
Pcbs [1] .arv: = strtint (edit2.text);
Pcbs [1] .svt: = strTouch (edit3.text);
PCBs [1].
Pcbs [1] .fnhflg: = false;
PCBs [2] .Name: = Edit4.Text;
Pcbs [2] .arv: = strtint (editt5.text);
Pcbs [2] .svt: = strTouch.Text);
PCBs [2] .sttflg: = false;
PCBs [2] .fnhflg: = false;
Pcbs [3] .Nome: = edit7.text;
Pcbs [3] .arv: = strtint (edit8.text);
Pcbs [3] .svt: = strTouch (edit9.text);
Pcbs [3] .sttflg: = false;
PCBs [3] .fnhflg: = false;
Pcbs [4] .Nome: = edit10.text;
Pcbs [4] .arv: = strtint (edit11.text);
Pcbs [4] .svt: = strtoot (edit12.text);
PCBs [4].
PCBs [4] .fnHflg: = false;
Nullflag: = false;
Exceto
nullflag: = true;
Showage ('' ');
fim;
fim;
procedimento tform1.timer2timer (remetente: tobject);
var
I: Inteiro;
começar
Se fnehnum <pcbox então
começar
if (openflg = true) e (pcbumd> 0)))))
começar
para i: = 1 para pcbruc agitar
começar
Se pcbs [i] .fnhflg = false
começar
Se tempok = false então
começar
Suremp: = tempid;
Tempid: = i;
Tempok: = true;
fim;
Se pcbs [i] .svt <pcbs [tempid] .svt então
começar
//timer1.enabled:/false;
Tempid: = i;
//timer1.enabled: Lue;
fim;
fim;
fim;
Openflg: = false;
PCBs [tempid] .stt: = count;
PCBs [tempid] .sttflg: = true;
//listbox1.idd.add ('进程' + pcbs [subtem] .name + 'fnh');
ListBoxes.atms.add ('进程' + pcbs [tempid] .name + '被调度');
fim;
fim;
fim; // procedimento
procedimento TForm1.Button2Click (remetente: TOBJECT);
começar
Botão1.enabled: = false;
timer1.enabled: = false;
Timer2.Enabled: = false;
Timer3.Enabled: = true;
Timer4.Enabled: = true;
tentar
sinalizador: = true;
Pcbs [1] .Nome: = edit1.orthTatext;
Pcbs [1] .arv: = strtint (edit2.text);
Pcbs [1] .svt: = strTouch (edit3.text);
Pcbs [1] .sttflg: = true;
Pcbs [1] .fnhflg: = false;
PCBs [2] .Name: = Edit4.Text;
Pcbs [2] .arv: = strtint (editt5.text);
Pcbs [2] .svt: = strTouch.Text);
PCBs [2] .sttflg: = false;
PCBs [2] .fnhflg: = false;
Pcbs [3] .Nome: = edit7.text;
Pcbs [3] .arv: = strtint (edit8.text);
Pcbs [3] .svt: = strTouch (edit9.text);
Pcbs [3] .sttflg: = false;
PCBs [3] .fnhflg: = false;
Pcbs [4] .Nome: = edit10.text;
Pcbs [4] .arv: = strtint (edit11.text);
Pcbs [4] .svt: = strtoot (edit12.text);
PCBs [4].
PCBs [4] .fnHflg: = false;
Nullflag: = false;
Exceto
nullflag: = true;
Showage ('' ');
fim;
fim;
procedimento tform1.timer3timer3timerter (remetente: tabject);
var
M: Inteiro;
começar
if (flag = true) e (ntp = false) e (nullflag = false)) então
Begin // se Falg = True então
Contagem: = contagem + 1;
ListBoxes1.items.add (inttostr (contagem);
para m: = 1 a 4do
Begin // para M: = 1 a 5 do
If ((pcbs [m] .sttfg = true) e (pcbs [m] .fnhflg = false))
Begin // if (PCB [M] .sttflg = true e PCB [M] .fnHflg = false)
Se count = pcbs [m] .stt + pcbs [m] .svt então
Begin // if (count = pcbs [m] .stt + pcbs [m] .svt) Então
Pcbs [m] .fnhflg: = true;
//timer4.enportdi: = false;
Pro: = 0;
//timer4.enportd: = true;
Listbox1.itms.add ('进程:' + pcbs [m] .name + '完成 !!!!');
Se m <4 então
Comece // se m <4 então
// PCBS LOSM+1 de.stttlg: = true;
// PCBS LOSM+1 de.stt: = count;
forword: = true;
fim;
Pcbs [m] .fnt: = count;
Pcbs [m] .zzzsj: = pcbs [m] .fnt-pcbs [m] .arv;
PCBs [m] .dqsj: = pcbs [m] .zzsj / (pcbs [m] .ldt);
fim;
fim;
fim;
Iff pcs [4] .fnhflg = true então
começar
Ntp: = true;
Edit13.text: = inttoStr (PCBS [1] .tt);
Edit14.text: = inttostr (pcbs [1] .stt + pcbs [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 + pcbs [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 + pcbs [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 + pcbs [4] .svt);
Edit27.text: = inttostr (PCBS [4] .zzsj);
Edit22.text: = flofostr (pcbs [4] .dqsj);
fim;
para m: = 1 a 4 fazer
começar
If (count> = pcbs [m] .arv) e (pcbs [m] .sttfg = false)) então
Se forword = true então
começar
PCBs [m] .sttfg: = true;
Pcbs [m] .stt: = count;
forword: = false;
fim; // 3e
fim;
gauge1.maxValue: = pcbs [1] .svt;
gauge2.MaxValue: = PCBS [2] .svt;
gauge3.MaxValue: = PCBs [3] .svt;
gauge4.MaxValue: = PCBS [4] .svt;
Se PCBs [1] .sttflg = true e pcbs [1] .fnhflg = false
começar
//gauge1.Progressive:=gaugh1.maxValue: = PCBS CES1 está disponível.shtt;
gauge1.progress: = count-PCBS [1] .stt;
End // iffbs [1] .sttflg = true e pcbs [1] .fnhflg = false
Else iff pcs [1] .fnhflg = true então
gauge1.progress: = pcbs [1] .svt;
Se os PCs [2] .sttfg = true e pcbs [2] .fnhflg = false
começar
gauge2.Progress: = count-PCBS [2] .stt;
End // iffbs [1] .sttflg = true e pcbs [1] .fnhflg = false
Elee se pcbs [2] .fnhflg = ter então
gauge2.progress: = pcbs [2] .svt;
Se os PCs [3] .sttfg = true e pcbs [3 .fnhflg = false
começar
gauge3.progress: = count-PCBS [3] .stt;
End // iffbs [1] .sttflg = true e pcbs [1] .fnhflg = false
Elee se pcbs [3] .fnhflg = ter então
gauge3.progress: = pcbs [3] .svt;
Se os PCs [4] .sttflg = true e pcbs [4] .fnhflg = false
começar
gauge4.progress: = count-PCBS [4] .tt;
End // iffbs [1] .sttflg = true e pcbs [1] .fnhflg = false
Elee se pcbs [4] .fnhflg = ter então
gauge4.progress: = pcbs [4] .svt;
fim; // se falg = true então
fim; // procedimento sobre
procedimento TForm1.Button3Click (remetente);
começar
Form1.close;
//end.//do over
fim;
procedimento TForm1.Button4Click (remetente: TOBJECT);
começar
forword: = false;
Subemp: = 0;
J: = 1;
Openflg: = true;
Tempid: = 1;
fnehnum: = 0;
Pcbum: = 0;
Ntp: = false;
Tempok: = false;
Sinalizador: = false;
gauge1.progress: = 0;
gauge2.Progress: = 0;
gauge3.progress: = 0;
gauge4.progress: = 0;
Button2.Enported: = true;
Botão1.enabled: = true;
Contagem: = - 1;
Pro: = 0;
// pcbad: número inteiro = 1;
writflg: = 0;
Sinalizador: = 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: = '' ';
Pcbs [1] .fnhflg: = false;
PCBs [1].
PCBs [2] .fnhflg: = false;
PCBs [2] .sttflg: = false;
PCBs [3] .fnhflg: = false;
Pcbs [3] .sttflg: = false;
PCBs [4] .fnHflg: = false;
PCBs [4].
fim;
Procedimento TForm1.Button5Click (remetente: Tobject);
começar
form3.show;
fim;
procedimento TForm1.Field: Objetivo);
começar
Form100fieldStyle: = fssstsyOntop;
EposateWindow (Handle, 2000, AW_Center);
Form100FormStyle: = fsNormal;
fim;
procedimento TForm1.Button6Click (remetente: TObject);
começar
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';
fim;
procedimento tform1.timer4timer4timer (remetente: tabjas);
começar
If ((pcbs [1] .arv = count) e (pcbs [1] .sttflg = false)) então
começar
forword: = true;
fim;
fim;
Fim.
unidade de unidade2;
Interface
Usos
Janelas, mensagens, sysutilils, variantes, classes, gráficos, controles, formulários,
Diálogos, jpeg, extctrls, stdctrls;
tipo
TForm2 = classe (tform)
Image1: Timage;
Label1: Tlabel;
Label2: tlabel;
Label3: Tlabel;
Privado
{Declarações privadas}
público
{Declarações públicas}
fim;
tipo
PCB = registro
Nome: String;
ARV: Inteiro;
SVT: Inteiro;
STT: Inteiro;
FNT: Inteiro;
ZZSJ: Inteiro;
DQSJ: Real;
fnhflflg: bool;
STTFLG: BOOB;
fim;
Pcbx = matriz [1.4] de PCB;
var
Form2: TForm2;
PCBs: PCBX;
implementação
Use unidade1;
{$ R * .dfm}
Fim.
unidade de unidade3;
Interface
Usos
Janelas, mensagens, sysutilils, variantes, classes, gráficos, controles, formulários,
Diálogos, stdctrls, comctrls, jpeg, extctrls;
tipo
Tform3 = classe (tform)
RichEdit1: Trichit;
Privado
{Declarações privadas}
público
{Declarações públicas}
fim;
var
Form3: TForm3;
implementação
{$ R * .dfm}
Fim.