| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477 |
- Uses Core,Win2K2,CoolKey,ccontr;
- { ˆá¯®«ì§ã¥¬ë¥ ¬®¤ã«¨ -
- Core - Žá®¢®© ¬®¤ã«ì ªãàᮢ¨ª , á ¬® ¬®¤¥«¨à®¢ ¨¥. (C) IE 2002
- Win2K2 - ƒà ä¨ç¥áª¨© ¬®¤ã«ì, ¯® ¢®§¬®¦®áâ¨, «®£¨ï ¨¤¥«®«®£¨¨
- Win32 API (C) Microsoft. Win2k2 (C) IE
- CoolKey - Œ®¤ã«ì ¨§ª®ãªà®¢¥¢®© à ¡®âë á ª« ¢¨ âãன, ¨á¯®«ì§ã¥âáï ¢ Win2k2,
- ¢ £®«®¢®© ¯à®£à ¬¬¥ ¥®¡å®¤¨¬ ¤«ï ª« ¢¨ âãàëå ª®áâ â
- CContr - Œ®¤ã«ì ¤«ï à ¡®âë á Win2k2, ¢ ¥¬ ॠ«¨§®¢ ë ®á®¢ë¥ í«¥¬¥âë
- ¨â¥à䥩á (EditBox, CheckBox, Button, XYPlot)}
-
- TYPE
- {‘®áâ®ï¨¨ï á¨á⥬ë}
- EStatus = (ST_WAITING, {‘¨á⥬ ®¦¨¤ ¥â áâ àâ }
- ST_RUNNING, {‘¨á⥬ ¢ á®áâ. à ¡®âë}
- ST_FINISHED) {‘¨á«¥¬ § ¢¥à訫 ¬®¤¥«¨à®¢ ¨¥};
-
- const
- AStatus : array [EStatus] of string[15] = ('Waiting','Running', 'Finished');
- {‘®®¡é¥¨ï ® á®áâ®ï¨¨ á¨á⥬ë}
- var
- TextOut : Text; {” ©«®¢ë© ¤¥áªà¨¯â®à ⥪á⮢®£® ¢ë¢®¤ १ã«ìâ ⮢}
- RunNum : Integer; {�®¬¥à § ¯ã᪠á¨á⥬ë (¯® ¥¬ã à §«¨ç îâáï ä ©«ë ¢ë¢®¤ }
- RunMode : boolean; {�¥¦¨¬ à ¡®âë (à ¡®ç¨©/®â« ¤®çë©)}
- Parent : hWNd; {Handle ®á®¢®£® ®ª ¯à®£à ¬¬ë}
- Stat : EStatus; {’¥ªã饥 à ¡®ç¥¥ á®áâ®ï¨¥}
- OCButtons : Array [1..2] of hWnd; {Handl'ë ª®¯®ª [1] - OK, [2] - Stop}
- Edits : array [1..9] of hWnd; {Handl'ë ¯®«¥© ¢¢®¤ }
- Checks : array [0..5] of hWnd; {Handl'ë ¢ë¡¨à ¥¬ëå ª®¢®¯}
- Mode : hWnd; {Handle ᥫ¥ªâ®à ०¨¬ }
- Limits : array [1..2] of hWnd; {Handl'ë ⥪á⮢ëå ¯®«¥© £à ¨æ £à 䨪 }
- Realiz : hWnd; {Handle ¯®«ï ¢¢®¤ ç¨á« ॠ«¨§ 権}
- RealNum : UINT32; {‘ ¬® ç¨á«® ॠ«¨§ 権}
- CurReal : UINT32; {’¥ªã騩 ®¬¥à à ¥«¨§ 樨, ¨á¯®«ì§¥ãâáï
- ¨á«îç¨â¥«ì® ¤«ï à ¢®¬¥à®£® à á¯à¥¤¥«¥¨ï
- â®ç¥ª ¢ ०¨¬¥ ®â« ¤ª¨}
- Plot : hWnd; {Handle £à 䨪 }
- {„¨ ¬¨ç¥áª¨¥ ®¡ê¥ªâë - í«¥¬¥âë á¨áâ¥¬ë ¬ áᮢ®£® ®¡á«ã¦¨¢ ¨ï}
- { ޝ¨á ¨¥ - á¬. § £®«®¢®ª ¬®¤ã«ï Core.pas}
- Model : ^CModel;
- Buffer : PBuffer;
- Device : PDevice;
- Srcs1, Srcs2,Srcs3 : PSource;
- BegVal, {� ç «ìë¥/ª®¥çë¥ §-ï ᪮à®á⨠¯à¨¡®à }
- LastVal : Real;
- Steps : integer; {—¨á«® è £®¢ ®â ç «ì®£® ª ª®¥ç®¬ã §-î ¯à¨¡®à
- (ç¨á«® â®ç¥ª £à 䨪¥)}
- CurStep : integer; {’¥ªã騩 è £}
- BufferSize : integer; {…¬ª®áâì ¡ãä¥à ¬®¤¥«¨}
- S1,S2,S3 : Real; {‘ª®à®á⨠¨áâ®ç¨ª®¢}
- Delta, DovInt : real; {� áâனª¨ ¢¥à®ïâ®á⥩}
- {----------------------------------------------------------------}
- Function GetFloat(aH:hWND):real; {”ãªæ¨ï áç¨âë¢ ¥â ¢¥é¥á⢥®¥ §-¥ ¨§ ¯®«ï
- ¢¢®¤ }
- var
- st : string;
- ret : real;
- i : integer;
- begin
- GetWindowText(AH,@st,255);
- Val(st,ret,i);
- GetFloat := ret;
- end;
- {----------------------------------------------------------------}
- Procedure GetParams; {‘ç¨âë¢ ¨¥ ¢á¥å §-¨© ¨§ ¯®«¥© ¢¢®¤ }
- var
- st : string[50];
- i : integer;
- v : real;
- begin
- BegVal := GetFloat(Edits[3]);
- LastVal := GetFloat(Edits[4]);
- DovInt := GetFloat(Edits[2]);
- DovInt := DovInt*DovInt;
- Steps := Round(GetFloat(Edits[5]));
- BufferSize := Round(GetFloat(Edits[6]));
- S1 := Getfloat(Edits[7]);
- S2 := Getfloat(Edits[8]);
- S3 := Getfloat(Edits[9]);
- GetWindowText(Edits[1],@st,50);
- if st[ord(st[0])] = '%' then
- begin
- Val(copy(st,1,ord(st[0])-1),v,i);
- Delta := v/100.0;
- end
- else
- Val(st,Delta,i);
- end;
- Procedure InitModel; {� ç «ì ï ¨¨æ¨ «¨§ æ¨ï § 票© ¬®¤¥«¨ ¨
- ¨¨æ¨ «¨§ æ¨ï ¤¨ ¬¨ç¥áª¨å ®¡ê¥ªâ®¢}
- begin
- Delta := 0.1;
- DovInt := 1.64;
- BegVal := 1.0;
- LastVal := 5.0;
- Steps := 20;
- BufferSize := 5;
- S1 := 2.0;
- S2 := 1.0;
- S3 := 5.0;
- New(Buffer, Init(BufferSize));
- New(Device, Init(BegVal));
- New(Model, Init(3,Device,Buffer,Delta,DovInt));
- New(Srcs1,Init(0,S1));
- Model^.AddNewSource(Srcs1);
- New(Srcs2,Init(1,S2));
- Model^.AddNewSource(Srcs2);
- New(Srcs3,Init(2,S3));
- Model^.AddNewSource(Srcs3);
- end;
- Procedure StartModel; {�à®æ¥¤ãà ¯®¤£®â®¢ª¨ ¨ áâ àâ ¬®¤¥«¨à®¢ ¨ï ¯à¨
- 㪠§ ëå § 票ïå}
- var
- XY : TRPoint;
- nm : string;
- i : UINT8;
- begin
- Buffer^.SetBufferSize(BufferSize);
- Device^.Lambda := BegVal;
- Model^.Delta := Delta;
- Model^.DovInt := DovInt;
- Srcs1^.Lambda := S1;
- Srcs2^.Lambda := S2;
- Srcs3^.Lambda := S3;
- Model^.Start;
- for i := 0 to 5 do
- SendMessage(Plot,WM_SETVISIBLE,i,SendMessage(Checks[i],CB_GETCHECK,0,0));
- S1 := GetFloat(Realiz);
- RealNum := round(S1);
- Model^.RealizSteps := RealNum;
- if RunMode then
- begin
- Model^.CalcVer := true;
- XY.X:=0;
- XY.Y:=Steps;
- for i := 0 to 5 do
- begin
- SendMessage(Plot,XP_DELALLPOINTS,i,0);
- SendMessage(Plot,XP_SETXRANGE,i,UINT32(@XY));
- end;
- str(Steps,nm);
- SetWindowText(Limits[2],@nm);
- str(RunNum,nm);
- Inc(RunNum);
- nm := 'result.'+nm;
- Assign(TextOut,nm);
- Rewrite(TextOut);
- end
- else
- begin
- Model^.CalcVer := false;
- Str(RealNum,nm);
- SetWindowText(Limits[2],@nm);
- XY.X:=1;
- XY.Y:=RealNum;
- CurReal:=0;
- for i := 0 to 2 do
- begin
- SendMessage(Plot,XP_DELALLPOINTS,i,0);
- SendMessage(Plot,XP_SETXRANGE,i,UINT32(@XY));
- SendMessage(Plot,WM_SETVISIBLE,i,SendMessage(Checks[i],CB_GETCHECK,0,0));
- end;
- for i := 3 to 5 do
- begin
- SendMessage(Plot,XP_DELALLPOINTS,i,0);
- SendMessage(Plot,WM_SETVISIBLE,i,0);
- end;
- end;
- CurStep := 0;
- end;
- {Žá®¢®© ®¡à ¡®â稪 á®®¡é¥¨© (messages) ®â á¨á⥬ë (£à ä¨ç¥áª®£® ¬®¤ã«ï).
- �® ¨¤¥®«®£¨¨ Win32 API (C) Microsoft - ®á®¢ ï ¯à®æ¥¤ãà ¢á¥© ¯à®£à ¬¬ë,
- ¢ ¥© § ¤ ¥âáï ¢áï ॠªæ¨ï ¤¥©áâ¢¨ï ¯®«ì§®¢ ⥫ï, à ¢¥ á ¢ãâ॥©
- «®£¨ª®© ¯à®£à ¬¬ë}
- Function WindowProc(ahWnd:HWND;aMsg,wParam,lParam:UINT32):UINT32;far;
- var
- ps : LPPAINTSTRUCT;
- XY,Max : TRPoint;
- st : string;
- i : UINT8;
- rt : RECT;
- begin
- case aMsg of
- WM_CREATE: {�¥à¢®¥ á®®¡é¥¨¥ ¯®á«¥ á®§¤ ¨ï ®ª , ¢ ¥¬ - ¨¨æ¨ «¨§ æ¨ï
- ¨ á®§¤ ¨¥ ¢á¥å ¤®ç¥à¨å ®ª® (¯®«¥© ¢¢®¤ , ¨ ¯à®ç.)}
- begin
- OCButtons[1] := CreateWindow('OK','BUTTON',WS_CHILD,
- 66,350,50,30,ahWnd,NULL);
- PostMessage(OCButtons[1],CB_SETID,1,0);
- OCButtons[2] := CreateWindow('Exit','BUTTON',WS_CHILD,
- 152,350,60,30,ahWnd,NULL);
- PostMessage(OCButtons[2],CB_SETID,2,0);
- CreateWindow('Veroyatn','LABEL',WS_CHILD,
- 10,10,140,15,ahWnd,NULL);
- Edits[1]:=CreateWindow('10%','EDIT',WS_CHILD,
- 150,10,140,15,ahWnd,NULL);
- CreateWindow('Dov. Int','LABEL',WS_CHILD,
- 10,30,140,15,ahWnd,NULL);
- Edits[2]:=CreateWindow('0.82','EDIT',WS_CHILD,
- 150,30,140,15,ahWnd,NULL);
- CreateWindow('Beg. Lam prib','LABEL',WS_CHILD,
- 10,50,140,15,ahWnd,NULL);
- Edits[3]:=CreateWindow('1.0','EDIT',WS_CHILD,
- 150,50,140,15,ahWnd,NULL);
- CreateWindow('End Lam prib','LABEL',WS_CHILD,
- 10,70,140,15,ahWnd,NULL);
- Edits[4]:=CreateWindow('5.0','EDIT',WS_CHILD,
- 150,70,140,15,ahWnd,NULL);
- CreateWindow('Steps','LABEL',WS_CHILD,
- 10,90,140,15,ahWnd,NULL);
- Edits[5]:=CreateWindow('20','EDIT',WS_CHILD,
- 150,90,140,15,ahWnd,NULL);
- CreateWindow('Buf size','LABEL',WS_CHILD,
- 10,110,140,15,ahWnd,NULL);
- Edits[6]:=CreateWindow('5','EDIT',WS_CHILD,
- 150,110,140,15,ahWnd,NULL);
- CreateWindow('Lambda 1','LABEL',WS_CHILD,
- 10,130,140,15,ahWnd,NULL);
- Edits[7]:=CreateWindow('2.0','EDIT',WS_CHILD,
- 150,130,140,15,ahWnd,NULL);
- CreateWindow('Lambda 2','LABEL',WS_CHILD,
- 10,150,140,15,ahWnd,NULL);
- Edits[8]:=CreateWindow('1.0','EDIT',WS_CHILD,
- 150,150,140,15,ahWnd,NULL);
- CreateWindow('Lambda 3','LABEL',WS_CHILD,
- 10,170,140,15,ahWnd,NULL);
- Edits[9]:=CreateWindow('5.0','EDIT',WS_CHILD,
- 150,170,140,15,ahWnd,NULL);
- Plot := CreateWindow('Test plot','XYPLOT',WS_CHILD,310,10,300,300,ahWnd,NULL);
- SendMessage(Plot,XP_SETPLOTCOUNT,6,0);
- SendMessage(Plot,XP_SETCOLOR,0,Red);
- SendMessage(Plot,XP_SETCOLOR,1,Green);
- SendMessage(Plot,XP_SETCOLOR,2,Blue);
- SendMessage(Plot,XP_SETCOLOR,3,Magenta);
- SendMessage(Plot,XP_SETCOLOR,4,Yellow);
- SendMessage(Plot,XP_SETCOLOR,5,White);
- XY.X:=0;
- XY.Y:=100;
- SendMessage(Plot,XP_SETYRANGE,0,UINT32(@XY));
- SendMessage(Plot,XP_SETYRANGE,1,UINT32(@XY));
- SendMessage(Plot,XP_SETYRANGE,2,UINT32(@XY));
- Limits[1] := CreateWindow('0','LABEL',WS_CHILD,310,320,20,15,ahWnd,NULL);
- Limits[2] := CreateWindow('20','LABEL',WS_CHILD,560,320,50,15,ahWnd,NULL);
- Checks[0] := CreateWindow('Ist1 Potk (Red)','CHECKBOX',WS_CHILD,
- 10,200,200,15,ahWnd,NULL);
- SendMessage(Checks[0],CB_SETCHECK,0,0);
- Checks[1] := CreateWindow('Ist2 Potk (Green)','CHECKBOX',WS_CHILD,
- 10,220,200,15,ahWnd,NULL);
- SendMessage(Checks[1],CB_SETCHECK,1,0);
- Checks[2] := CreateWindow('Ist3 Potk (Blue)','CHECKBOX',WS_CHILD,
- 10,240,200,15,ahWnd,NULL);
- SendMessage(Checks[2],CB_SETCHECK,0,0);
- Checks[3] := CreateWindow('Ist1 MatO (Magenta)','CHECKBOX',WS_CHILD,
- 10,260,200,15,ahWnd,NULL);
- SendMessage(Checks[3],CB_SETCHECK,0,0);
- Checks[4] := CreateWindow('Ist2 MatO (Yellow)','CHECKBOX',WS_CHILD,
- 10,280,200,15,ahWnd,NULL);
- SendMessage(Checks[4],CB_SETCHECK,1,0);
- Checks[5] := CreateWindow('Ist3 MatO (White)','CHECKBOX',WS_CHILD,
- 10,300,200,15,ahWnd,NULL);
- SendMessage(Checks[5],CB_SETCHECK,0,0);
- Mode := CreateWindow('Test mode','CHECKBOX', WS_CHILD,
- 210,200,100,15, ahWnd, NULL);
- CreateWindow('KMIN','LABEL',WS_CHILD,210,220,50,15,ahWnd,NULL);
- Realiz := CreateWindow('1000','EDIT',WS_CHILD,210,240,70,15,ahWnd,NULL);
- SendMessage(Mode,CB_SETCHECK,0,0);
- RunMode := true;
- SendMessage(Mode,CB_SETID,90,0);
- Randomize;
- Stat := ST_WAITING;
- for i := 0 to 5 do SendMessage(Checks[i],CB_SETID,i+100,0);
- InitModel;
- RunNum := 0;
- PostMessage(ahWnd,WM_PAINT,0,0);
- AddOnFrameMessage(ahWnd);
- end;
- WM_COMMAND:
- {Ž¡à ¡®â稪 ª®¬ ¤ ®â ª®à®«®¢ (ª®¯®ª, ¯®«¥© ¢¢®¤ , ª®¯®ª ¢ë¡®à )}
- begin
- case wParam of
- 1: if (lParam = 0) and (Stat <> ST_RUNNING) then begin {OK button pressed}
- GetParams;
- StartModel;
- Stat := ST_RUNNING;
- St := 'STOP';
- SetWindowText(OCButtons[2],@St);
- PostMessage(ahWnd,WM_PAINT,0,0);
- PostMessage(OCButtons[2],WM_PAINT,0,0);
- end;
- 2: if lParam = 0 then { ¦ â ª®¯ª STOP}
- begin
- if Stat = ST_RUNNING then
- begin
- if RunMode then Close(TextOut);
- Stat := ST_WAITING;
- St := 'Exit';
- SetWindowText(OCButtons[2],@St);
- PostMessage(OCButtons[2],WM_PAINT,0,0);
- PostMessage(ahWnd,WM_PAINT,0,0);
- end
- else
- PostMessage(ahWnd,WM_DESTROY,0,0);
- end;
- 90: if lParam = 0 then begin {‚ª«/¢ëª« ०¨¬ ®â« ¤ª¨}
- RunMode := not RunMode;
- for i := 3 to 5 do
- SendMessage(Checks[i],WM_SETVISIBLE,UINT32(RunMode),0);
- end;
- end;
- if (wParam >= 100) and (wParam <=105) and (lParam = 0) then
- begin
- SendMessage(Plot,WM_SETVISIBLE,wParam-100,SendMessage(Checks[wParam-100],CB_GETCHECK,0,0));
- end;
- end;
- WM_ONFRAME:
- {Žá®¢®© ®¡à ¡®â稪 ¢á¥© ¯à®£à ¬¬ë, §¤¥áì - ¢ãâà¥ïï «®£¨ª . ‚ë§ë¢ îâáï
- ¬¥â®¤ë ®¡ê¥ªâ®¢ ¬®¤¥«¨ ¤«ï ®áãé¥á⢫¥¨ï ¬®¤¥«¨à®¢ ¨ï. ’ ª¦¥ ¯à®¨á室¨â
- ¤®¡ ¢«¥¨¥ â®ç¥ª £à 䨪, ¢ë¢®¤ ⥪á⮢®© ¨ä®à¬ 樨 ¢ ä ©«.}
- begin
- if Stat = ST_RUNNING then
- begin
- if Not Model^.Step then
- begin
- if Runmode then begin
- XY.X := CurStep;
- XY.Y := 100*Srcs1^.RefusedReq/Srcs1^.TotalReq;
- SendMessage(Plot,XP_ADDPOINT,0,UINT32(@XY));
- XY.Y := 100*Srcs2^.RefusedReq/Srcs2^.TotalReq;
- SendMessage(Plot,XP_ADDPOINT,1,UINT32(@XY));
- XY.Y := 100*Srcs3^.RefusedReq/Srcs3^.TotalReq;
- SendMessage(Plot,XP_ADDPOINT,2,UINT32(@XY));
- if (Srcs1^.DoneReq <> 0) then
- begin
- XY.Y := Srcs1^.MatWait/Srcs1^.DoneReq;
- SendMessage(Plot,XP_ADDPOINT,3,UINT32(@XY));
- end;
- if (Srcs2^.DoneReq <> 0) then
- begin
- XY.Y := Srcs2^.MatWait/Srcs2^.DoneReq;
- SendMessage(Plot,XP_ADDPOINT,4,UINT32(@XY));
- end;
- if (Srcs3^.DoneReq <> 0) then
- begin
- XY.Y := Srcs3^.MatWait/Srcs3^.DoneReq;
- SendMessage(Plot,XP_ADDPOINT,5,UINT32(@XY));
- end;
- Max.X := 0;
- Max.Y := 0;
- for i := 3 to 5 do
- begin
- SendMessage(Plot,XP_GETYRANGE,i,UINT32(@XY));
- if XY.Y > Max.Y then Max.Y := XY.Y;
- end;
- for i := 3 to 5 do
- SendMessage(Plot,XP_SETYRANGE,i,UINT32(@Max));
- PostMessage(Plot,WM_PAINT,0,0);
- Model^.PrintValues(TextOut);
- inc(CurStep);
- Device^.Lambda := BegVal + (LAstVal-BegVal)/Steps*Curstep;
- if CurStep = Steps+1 then
- begin
- Stat := ST_FINISHED;
- Close(TextOut);
- St := 'Exit';
- SetWindowText(OCButtons[2],@St);
- PostMessage(OCButtons[2],WM_PAINT,0,0);
- PostMessage(ahWnd,WM_PAINT,0,0);
- end
- else
- Model^.Start;
- end else
- begin
- Stat := ST_FINISHED;
- St := 'Exit';
- SetWindowText(OCButtons[2],@St);
- PostMessage(ahWnd,WM_PAINT,0,0);
- end;
- end
- else if not runmode then
- begin
- if CurReal = (RealNum div 100) then
- begin
- XY.X := Model^.CurStep;
- XY.Y := 100*Srcs1^.RefusedReq/Srcs1^.TotalReq;
- SendMessage(Plot,XP_ADDPOINT,0,UINT32(@XY));
- XY.Y := 100*Srcs2^.RefusedReq/Srcs2^.TotalReq;
- SendMessage(Plot,XP_ADDPOINT,1,UINT32(@XY));
- XY.Y := 100*Srcs3^.RefusedReq/Srcs3^.TotalReq;
- SendMessage(Plot,XP_ADDPOINT,2,UINT32(@XY));
- CurReal := -1;
- PostMessage(Plot,WM_PAINT,0,0);
- end;
- Inc(CurReal);
- end;
- end;
- end;
- WM_DESTROY:
- {‘®®¡é¥¨¥, ¯à¨å®¤ï饥 ¯¥à¥¤ § ¢¥à襨¥¬ à ¡®âë ¯à®£à ¬¬ë,
- §¤¥áì ¯à®¨á室¨â ®á¢®¡®¦¤¥¨¥ ¯ ¬ï⨠¨ ã¨ç⮦¥¨¥ ®¡ê¥ªâ®¢ ¬®¤¥«¨}
- begin
- if Stat <> ST_WAITING then begin
- Dispose(Model,Done);
- Dispose(Buffer,Done);
- Dispose(Device,Done);
- end;
- DelOnFrameMessage(ahWnd);
- PostQuitMessage(ahwnd);
- end;
- WM_KEYDOWN:
- {�¥ ªæ¨ï ¦ ⨥ ª« ¢¨è¨ ª« ¢¨ âãàë}
- if wParam = ord(SC_ESCAPE) then PostMessage(ahWnd,WM_DESTROY,0,0);
- WM_PAINT:
- {Ž¡à ¡®â稪 ¯à®à¨á®¢ª¨ ®ª . ‚뢮¤¨â ⮫쪮 áâ âãá ¬®¤¥«¨à®¢ ¨ï, ¢áï
- ®áâ «ì ï ¯à®à¨á®¢ª ¢ë¯®«ï¥âáï ¤®ç¥à¨¬¨ ®ª ¬¨ á ¬®áâ®ï⥫ì®}
- begin
- ps := BeginPaint(ahWNd);
- wSetColor(ps,GlobalPalette.WindowFontColor);
- wSetBgColor(ps,GlobalPalette.ThreeDColor1);
- wSetStyle(ps,SolidFill);
- wSetFontJustify(ps,CenterText,BottomText);
- GetClientRect(ahWnd,@rt);
- wBar(ps,0,rt.b.y - 20, rt.b.x,rt.b.y);
- wTextOut(ps,rt.b.x shr 1, rt.b.y-1, @AStatus[Stat]);
- EndPaint(ps);
- end;
- end;
- end;
- {ƒŽ‹Ž‚€.}
- begin
- if InitWin2K2 = ERR_OK then {ˆ¨æ. £à ä¨ç¥áª®© ¯®¤á¨á⥬ë}
- if RegisterClass('MSMO',WindowProc) = ERR_OK then
- {�¥£¨áâà æ¨ï ª« áá , á â ª¨¬ ®¡à ¡®â稪®¬ ᮡë⨩}
- begin
- InitCommonControls; {ˆ¨æ¨ «¨§ æ¨ï áâ ¤ àâëå ª« áᮢ}
- Parent:=CreateWindow('Configuration','MSMO',
- WS_TITLE OR WS_SIZEABLE OR WS_MINMAX,
- 10,10,620,420,
- NULL,NULL);
- {‘®§¤ ¨¥ ®á®¢®£® ®ª }
- MainRunLoop; {Žá®¢®© 横« ¯à®£à ¬¬ë}
- end;
- DoneWin2K2; {‡ ¢¥à襨¥ à ¡®âë £à ä¨ç¥áª®© ¯®¤á¨á⥬ë}
- end.
|