 9a7d1d27c7
			
		
	
	9a7d1d27c7
	
	
	
		
			
			- UIControl 프로젝트 구조 변경 (CapCleaningControl → Sub/UIControl) - arAjinextek 라이브러리 통합 및 구조 개선 - 새로운 arAjinextek_Union 프로젝트 추가 - 솔루션 파일에 README.md 추가 - QR 모드에서 WMS RCV 태그 인식 기능 강화 - 데이터베이스 스키마 업데이트 및 관련 클래스 수정 - 프린터 및 바코드 장치 연동 로직 개선 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			483 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			483 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| 
 | |
| namespace UIControl
 | |
| {
 | |
|     public class CPort
 | |
|     {
 | |
|         public Boolean SaftyErr { get; set; }
 | |
|         //public Boolean Safty2Err { get; set; }
 | |
|         //        public Boolean SaftyErr { get { return Safty1Err || Safty2Err; } }
 | |
|         public Boolean MotorRun { get; set; }
 | |
|         public Boolean MotorDir { get; set; }
 | |
|         public int arrowIndex { get; set; }
 | |
|         public Boolean LimitUpper { get; set; }
 | |
|         public Boolean LimitLower { get; set; }
 | |
|         public Boolean OverLoad
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return LimitLower && DetectUp;
 | |
|             }
 | |
|         }
 | |
|         public byte AlignOK { get; set; }
 | |
|         public void AlignReset() { AlignOK = 0; errorCount = 0; }
 | |
|         public Boolean Ready { get; set; }
 | |
| 
 | |
|         public Boolean DetectUp { get; set; }   //상단에 있는 자재 감지 센서
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 7인치 13인치의 크기 정보를 표시한다
 | |
|         /// </summary>
 | |
|         public string title { get; set; }
 | |
|         public int reelNo { get; set; }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 차수별 릴 작업 수량이 표시됨
 | |
|         /// </summary>
 | |
|         public int reelCount { get; set; }
 | |
| 
 | |
|         public int errorCount { get; set; }
 | |
|         public int CartSize { get; set; }
 | |
| 
 | |
| 
 | |
| 
 | |
|         public System.Drawing.Color bgColor { get; set; }
 | |
|         private Boolean _enable = false;
 | |
| 
 | |
|         public Color fgColor { get; set; }
 | |
|         public Color fgColorCount { get; set; }
 | |
| 
 | |
|         public Rectangle rect_title { get; set; }
 | |
|         public RectangleF Rect { get; set; }
 | |
|         public Rectangle rect_count { get; set; }
 | |
|         public int AnimationStepPort { get; set; }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 0:notcart , 1:ready, 2:full
 | |
|         /// </summary>
 | |
|         public ushort State { get; set; }
 | |
| 
 | |
|         public Boolean Enable
 | |
|         {
 | |
|             get { return _enable; }
 | |
|             set
 | |
|             {
 | |
|                 _enable = value;
 | |
|                 this.bgColor = value ? Color.Lime : Color.FromArgb(43, 43, 43);
 | |
|                 this.fgColor = value ? Color.White : Color.DimGray;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public CPort()
 | |
|         {
 | |
|             CartSize = 0;
 | |
|             Ready = false;
 | |
|             Enable = false;
 | |
|             rect_title = Rectangle.Empty;
 | |
|             rect_count = Rectangle.Empty;
 | |
|             Rect = RectangleF.Empty;
 | |
|             reelNo = -1;
 | |
|             arrowIndex = 2;
 | |
|             reelCount = 0;
 | |
|             fgColor = Color.Black;
 | |
|             Clear();
 | |
|             AlignOK = 0;
 | |
|             AnimationStepPort = 9;
 | |
|             //Items.Clear();
 | |
|         }
 | |
|         //public void ClearItem()
 | |
|         //{
 | |
|         //    Items.Clear();
 | |
|         //}
 | |
|         public void Clear()
 | |
|         {
 | |
|             CartSize = 0;
 | |
|             Enable = true;
 | |
|             SaftyErr = false;
 | |
|             MotorRun = false;
 | |
|             MotorDir = false;
 | |
|             LimitUpper = false;
 | |
|             LimitLower = false;
 | |
|             reelNo = 0;
 | |
|             reelCount = 0;
 | |
|             DetectUp = false;
 | |
|         }
 | |
| 
 | |
|         public void Display(Graphics g, Font fCnt, Font fMsg, Boolean Magneton, Boolean VisionRdy, Boolean VisionEnd, Boolean ItemOn, Boolean VisionLock, int VisionCnt)
 | |
|         {
 | |
|             if (Enable == false)
 | |
|             {
 | |
|                 g.DrawLine(Pens.DimGray, Rect.Left, Rect.Top, Rect.Right, Rect.Bottom);
 | |
|                 g.DrawLine(Pens.DimGray, Rect.Right, Rect.Top, Rect.Left, Rect.Bottom);
 | |
|             }
 | |
| 
 | |
|             //모터사용시 화살표
 | |
|             eDirection DirL = MotorDir == false ? eDirection.TopToBottom : eDirection.BottomToTop;
 | |
|             if (MotorRun) UIControl.Common.Draw_Arrow(g, Rect, DirL, arrowIndex, AnimationStepPort, Color.Gold, fMsg);
 | |
| 
 | |
|             //글자표시 (크기 및 작업 수량)
 | |
|             var sf = new StringFormat
 | |
|             {
 | |
|                 Alignment = StringAlignment.Center,
 | |
|                 LineAlignment = StringAlignment.Center,
 | |
|             };
 | |
| 
 | |
| 
 | |
|             //리밋영역표시(상/하)
 | |
|             var limitSizeH = (int)(Rect.Height * 0.2);
 | |
| 
 | |
| 
 | |
|             if (OverLoad == true)//과적
 | |
|             {
 | |
|                 g.FillRectangle(Brushes.Red, Rect);
 | |
|                 g.DrawString("OVER\nLOAD", fMsg, new SolidBrush(fgColor), Rect, sf);
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 if (errorCount > 5)
 | |
|                 {
 | |
|                     g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Gold)), Rect);
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Black)), Rect);
 | |
|                 }
 | |
| 
 | |
| 
 | |
|                 if (errorCount > 0)
 | |
|                 {
 | |
|                     if (errorCount > 05)
 | |
|                     {
 | |
|                         g.DrawString(reelCount.ToString() + "\n(ERROR)", fCnt, new SolidBrush(Color.Red), Rect, sf);
 | |
|                     }
 | |
|                     else g.DrawString(reelCount.ToString() + "\nE:" + errorCount.ToString(), fCnt, new SolidBrush(Color.Red), Rect, sf);
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
| 
 | |
|                     g.DrawString(reelCount.ToString(), fCnt, new SolidBrush(fgColor), Rect, sf);
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             //마그넷상태표시
 | |
|             var magheight = 30;
 | |
|             var magrect = new RectangleF(this.Rect.Left, this.Rect.Bottom - magheight, this.Rect.Width, magheight);
 | |
|             if (Magneton)
 | |
|             {
 | |
|                 g.DrawString("LOCK(" + CartSize.ToString() + ")", new Font("Consolas", 10, FontStyle.Bold), Brushes.Gold, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 g.FillRectangle(Brushes.DimGray, magrect);
 | |
|                 g.DrawString("UNLOCK(" + CartSize.ToString() + ")", new Font("Consolas", 10, FontStyle.Bold), Brushes.Black, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
 | |
|             }
 | |
| 
 | |
|             //아이템을 가지고 있다면 처리해준다.
 | |
|             if (ItemOn)
 | |
|             {
 | |
|                 magrect = new RectangleF(this.Rect.Left, this.Rect.Top, this.Rect.Width, magheight);
 | |
|                 g.FillRectangle(Brushes.Gold, magrect);
 | |
|                 g.DrawString("ITEM-ON", new Font("Consolas", 12, FontStyle.Bold), Brushes.Black, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
 | |
|             }
 | |
| 
 | |
| 
 | |
| 
 | |
|             //데두리표시 ( 비활성 회색, 활성 감지 : 라임, 미감지 흰색)
 | |
|             Color borderL = Enable ? (LimitUpper ? Color.Red : (LimitLower ? Color.Blue : (DetectUp ? Color.Lime : Color.White))) : Color.DimGray;
 | |
|             if (OverLoad) borderL = Color.White;
 | |
|             int bordersize = 7;//ortL.enable ? 7 : 1;
 | |
| 
 | |
|             //비젼영역추가 201228
 | |
|             using (Font f = new Font("Consolas", 8, FontStyle.Bold))
 | |
|             {
 | |
|                 var vrect = new RectangleF(Rect.Right, Rect.Top, 20, Rect.Height);
 | |
|                 Color fcolor2 = Color.Gray;
 | |
|                 var drawstr = "VISON RDY";
 | |
|                 if (VisionEnd) { drawstr = "VISION END"; fcolor2 = Color.Lime; }
 | |
|                 else if (VisionRdy) { drawstr = "VISION RUN"; fcolor2 = Color.Gold; };
 | |
|                 drawstr += "(" + VisionCnt.ToString() + ")";
 | |
|                 if (VisionLock) g.DrawRect(vrect, Color.Blue, 7);
 | |
|                 else g.DrawRect(vrect, fcolor2, 7);
 | |
|                 g.DrawString(drawstr, f, new SolidBrush(fcolor2), vrect, new StringFormat
 | |
|                 {
 | |
|                     Alignment = StringAlignment.Center,
 | |
|                     LineAlignment = StringAlignment.Center,
 | |
|                     FormatFlags = StringFormatFlags.DirectionVertical
 | |
|                 });
 | |
| 
 | |
|                 vrect = new RectangleF(Rect.Left - 20, Rect.Top, 20, Rect.Height);
 | |
|                 fcolor2 = Color.Gray;
 | |
|                 drawstr = "PORT RDY(" + this.AlignOK.ToString() + ")";
 | |
|                 if (Ready) fcolor2 = Color.Lime;
 | |
|                 g.DrawRect(vrect, fcolor2, 7);
 | |
|                 g.DrawString(drawstr, f, new SolidBrush(fcolor2), vrect, new StringFormat
 | |
|                 {
 | |
|                     Alignment = StringAlignment.Center,
 | |
|                     LineAlignment = StringAlignment.Center,
 | |
|                     FormatFlags = StringFormatFlags.DirectionVertical
 | |
|                 });
 | |
|             }
 | |
| 
 | |
| 
 | |
|             if (OverLoad == false)
 | |
|             {
 | |
|                 var fontsize = 9;
 | |
|                 using (Font fnt = new Font("Consolas", fontsize, FontStyle.Bold))
 | |
|                 {
 | |
|                     //상단 리밋은 상단에
 | |
|                     if (LimitUpper)
 | |
|                     {
 | |
|                         var msgLU = "+ LIMIT";
 | |
|                         var fsize = g.MeasureString(msgLU, fnt);
 | |
|                         var msgW = fsize.Width * 1.5f;
 | |
|                         var msgH = fsize.Height * 1.5f;
 | |
|                         if (msgW > this.Rect.Width * 0.70f) msgW = this.Rect.Width * 0.7f;
 | |
| 
 | |
|                         var RectMsgL = new RectangleF(
 | |
|                         Rect.Left + (Rect.Width - msgW) / 2.0f,
 | |
|                         Rect.Top - msgH - bordersize / 2.0f + 1,
 | |
|                         msgW, msgH);
 | |
| 
 | |
|                         g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Red)), RectMsgL);
 | |
|                         // g.DrawRectangle(Pens.Black, RectMsgL);
 | |
|                         g.DrawString(msgLU, fnt, Color.White, RectMsgL);
 | |
| 
 | |
|                     }
 | |
| 
 | |
|                     //아이템 감지신호는 상단 아래쪽으로
 | |
|                     if (Ready)
 | |
|                     {
 | |
|                         //var msgLU = "READY";
 | |
|                         //var fsize = g.MeasureString(msgLU, fnt);
 | |
|                         //var msgW = fsize.Width * 1.5f;
 | |
|                         //var msgH = fsize.Height * 1.5f;
 | |
|                         //if (msgW > this.Rect.Width * 0.70f) msgW = this.Rect.Width * 0.7f;
 | |
| 
 | |
|                         //var RectMsgL = new RectangleF(
 | |
|                         //Rect.Left + (Rect.Width - msgW) / 2.0f,
 | |
|                         //Rect.Top + bordersize / 2.0f - 1,
 | |
|                         //msgW, msgH);
 | |
| 
 | |
|                         //g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Lime)), RectMsgL);
 | |
|                         //// g.DrawRectangle(Pens.Black, RectMsgL);
 | |
|                         //g.DrawString(msgLU, fnt, Color.Black, RectMsgL);
 | |
|                     }
 | |
| 
 | |
| 
 | |
|                     //하단 리밋은 하단에표시
 | |
|                     if (LimitLower)
 | |
|                     {
 | |
|                         var msgLU = "- LIMIT";
 | |
|                         var fsize = g.MeasureString(msgLU, fnt);
 | |
|                         var msgW = fsize.Width * 1.5f;
 | |
|                         var msgH = fsize.Height * 1.5f;
 | |
|                         if (msgW > this.Rect.Width * 0.70f) msgW = this.Rect.Width * 0.7f;
 | |
| 
 | |
|                         var RectMsgL = new RectangleF(
 | |
|                         Rect.Left + (Rect.Width - msgW) / 2.0f,
 | |
|                         Rect.Top - msgH - bordersize / 2.0f + 1,
 | |
|                         msgW, msgH);
 | |
| 
 | |
|                         g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Blue)), RectMsgL);
 | |
|                         //g.DrawString(msgLU, fnt, Brushes.White, RectMsgL, sf);
 | |
|                         g.DrawString(msgLU, fnt, Color.White, RectMsgL);
 | |
| 
 | |
|                     }
 | |
| 
 | |
| 
 | |
|                     //아이템 감지
 | |
|                     if (DetectUp)
 | |
|                     {
 | |
|                         var msgLU = "DETECT";
 | |
|                         var fsize = g.MeasureString(msgLU, fnt);
 | |
|                         var msgW = fsize.Width * 1.5f;
 | |
|                         var msgH = fsize.Height * 1.5f;
 | |
|                         if (msgW > this.Rect.Width * 0.70f) msgW = this.Rect.Width * 0.7f;
 | |
| 
 | |
|                         var RectMsgL = new RectangleF(
 | |
|                         Rect.Left + (Rect.Width - msgW) / 2.0f,
 | |
|                         Rect.Bottom + 1,
 | |
|                         msgW, msgH);
 | |
| 
 | |
|                         g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Lime)), RectMsgL);
 | |
|                         //g.DrawRectangle(Pens.Black, RectMsgL);
 | |
|                         g.DrawString(msgLU, fnt, Color.Black, RectMsgL);
 | |
| 
 | |
|                     }
 | |
| 
 | |
|                     //안전 오류는 중앙에           
 | |
| 
 | |
|                     if (SaftyErr)
 | |
|                     {
 | |
|                         var msgS = "SAFTY ERROR";
 | |
|                         var fsize = g.MeasureString(msgS, fMsg);
 | |
|                         var msgW = fsize.Width * 1.5f;
 | |
|                         var msgH = fsize.Height * 1.5f;
 | |
|                         if (msgW > this.Rect.Width * 0.80f) msgW = this.Rect.Width * 0.8f;
 | |
| 
 | |
|                         var RectMsgL = new RectangleF(
 | |
|                         Rect.Left + (Rect.Width - msgW) / 2.0f,
 | |
|                         Rect.Top + (Rect.Height - msgH) / 2.0f,
 | |
|                         msgW, msgH);
 | |
| 
 | |
|                         g.FillRectangle(new SolidBrush(Color.FromArgb(240, Color.Khaki)), RectMsgL);
 | |
|                         g.DrawRectangle(Pens.Black, RectMsgL);
 | |
|                         g.DrawString(msgS, fMsg, Color.Maroon, RectMsgL);
 | |
| 
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|             }
 | |
| 
 | |
|             //테두리가 리밋영역을 감추도록 그린다
 | |
|             g.DrawRectangle(new Pen(borderL, bordersize), Rect.Left, Rect.Top, Rect.Width, Rect.Height);
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|             sf.Dispose();
 | |
|         }
 | |
| 
 | |
|         public void DisplayConv(Graphics g, Font fCnt, Font fMsg, Boolean Magneton, Boolean VisionRdy, Boolean VisionEnd, Boolean ItemOn, Boolean VisionLock, int VisionCnt, bool cvbusy, bool cvreadyoff)
 | |
|         {
 | |
|             if (Enable == false)
 | |
|             {
 | |
|                 g.DrawLine(Pens.DimGray, Rect.Left, Rect.Top, Rect.Right, Rect.Bottom);
 | |
|                 g.DrawLine(Pens.DimGray, Rect.Right, Rect.Top, Rect.Left, Rect.Bottom);
 | |
|             }
 | |
| 
 | |
| 
 | |
|             //모터사용시 화살표
 | |
|             eDirection DirL = MotorDir == false ? eDirection.TopToBottom : eDirection.BottomToTop;
 | |
|             if (MotorRun) UIControl.Common.Draw_Arrow(g, Rect, DirL, arrowIndex, AnimationStepPort, Color.Gold, fMsg);
 | |
| 
 | |
|             //글자표시 (크기 및 작업 수량)
 | |
|             var sf = new StringFormat
 | |
|             {
 | |
|                 Alignment = StringAlignment.Center,
 | |
|                 LineAlignment = StringAlignment.Center,
 | |
|             };
 | |
| 
 | |
| 
 | |
|             //리밋영역표시(상/하)
 | |
|             var limitSizeH = (int)(Rect.Height * 0.2);
 | |
| 
 | |
| 
 | |
|             if (errorCount > 5)
 | |
|             {
 | |
|                 g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Gold)), Rect);
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 if (cvbusy)
 | |
|                     g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Tomato)), Rect);
 | |
|                 if (cvreadyoff)
 | |
|                     g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Red)), Rect);
 | |
|                 else
 | |
|                     g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Black)), Rect);
 | |
|             }
 | |
| 
 | |
|             if (reelCount != 0)
 | |
|             {
 | |
|                 //버튼형태처럼 보이게한다.
 | |
|                 g.FillRectangle(new SolidBrush(Color.FromArgb(100, Color.Gold)), Rect);
 | |
|                 g.DrawRectangle(new Pen(Color.WhiteSmoke, 5), Rect.Left, Rect.Top, Rect.Width, Rect.Height);
 | |
|             }
 | |
| 
 | |
|             if (errorCount > 0)
 | |
|             {
 | |
|                 if (errorCount > 05)
 | |
|                 {
 | |
|                     g.DrawString(reelCount.ToString() + "\n(ERROR)", fCnt, new SolidBrush(Color.Red), Rect, sf);
 | |
|                 }
 | |
|                 else g.DrawString(reelCount.ToString() + "\nE:" + errorCount.ToString(), fCnt, new SolidBrush(Color.Red), Rect, sf);
 | |
|             }
 | |
|             else if (reelCount > 0)
 | |
|             {
 | |
| 
 | |
|                 g.DrawString(reelCount.ToString(), fCnt, new SolidBrush(fgColor), Rect, sf);
 | |
|             }
 | |
| 
 | |
|             //마그넷상태표시
 | |
|             var magheight = 30;
 | |
|             var magrect = new RectangleF(this.Rect.Left, this.Rect.Bottom - magheight, this.Rect.Width, magheight);
 | |
|             //if (Magneton)
 | |
|             //{
 | |
|             //    g.DrawString("LOCK(" + CartSize.ToString() + ")", new Font("Consolas", 10, FontStyle.Bold), Brushes.Gold, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
 | |
|             //}
 | |
|             //else
 | |
|             //{
 | |
|             //    g.FillRectangle(Brushes.DimGray, magrect);
 | |
|             //    g.DrawString("UNLOCK(" + CartSize.ToString() + ")", new Font("Consolas", 10, FontStyle.Bold), Brushes.Black, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
 | |
|             //}
 | |
| 
 | |
|             //아이템을 가지고 있다면 처리해준다.
 | |
|             if (ItemOn)
 | |
|             {
 | |
|                 magrect = new RectangleF(this.Rect.Left, this.Rect.Top, this.Rect.Width, magheight);
 | |
|                 g.FillRectangle(Brushes.Gold, magrect);
 | |
|                 g.DrawString("ITEM-ON", new Font("Consolas", 12, FontStyle.Bold), Brushes.Black, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
 | |
|             }
 | |
| 
 | |
| 
 | |
| 
 | |
|             //데두리표시 ( 비활성 회색, 활성 감지 : 라임, 미감지 흰색)
 | |
|             Color borderL = Enable ? Color.White : Color.DimGray;
 | |
|             //if (OverLoad) borderL = Color.White;
 | |
|             int bordersize = 7;//ortL.enable ? 7 : 1;
 | |
| 
 | |
|             //비젼영역추가 201228
 | |
|             using (Font f = new Font("Consolas", 8, FontStyle.Bold))
 | |
|             {
 | |
|                 var vrect = new RectangleF(Rect.Right, Rect.Top, 20, Rect.Height);
 | |
|                 Color fcolor2 = Color.Gray;
 | |
|                 var drawstr = "VISON RDY";
 | |
|                 if (VisionEnd) { drawstr = "VISION END"; fcolor2 = Color.Lime; }
 | |
|                 else if (VisionRdy) { drawstr = "VISION RUN"; fcolor2 = Color.Gold; };
 | |
|                 drawstr += "(" + VisionCnt.ToString() + ")";
 | |
|                 if (VisionLock) g.DrawRect(vrect, Color.Blue, 7);
 | |
|                 else g.DrawRect(vrect, fcolor2, 7);
 | |
|                 g.DrawString(drawstr, f, new SolidBrush(fcolor2), vrect, new StringFormat
 | |
|                 {
 | |
|                     Alignment = StringAlignment.Center,
 | |
|                     LineAlignment = StringAlignment.Center,
 | |
|                     FormatFlags = StringFormatFlags.DirectionVertical
 | |
|                 });
 | |
| 
 | |
|                 vrect = new RectangleF(Rect.Left - 20, Rect.Top, 20, Rect.Height);
 | |
|                 fcolor2 = Color.Gray;
 | |
|                 drawstr = "EXT RDY";
 | |
|                 if (cvreadyoff) fcolor2 = Color.Red;
 | |
|                 else if (Ready) fcolor2 = Color.Lime;
 | |
|                 g.DrawRect(vrect, fcolor2, 7);
 | |
|                 g.DrawString(drawstr, f, new SolidBrush(fcolor2), vrect, new StringFormat
 | |
|                 {
 | |
|                     Alignment = StringAlignment.Center,
 | |
|                     LineAlignment = StringAlignment.Center,
 | |
|                     FormatFlags = StringFormatFlags.DirectionVertical
 | |
|                 });
 | |
|             }
 | |
| 
 | |
| 
 | |
|             //테두리가 리밋영역을 감추도록 그린다
 | |
|             if (reelCount == 0)
 | |
|             {
 | |
|                 g.DrawRectangle(new Pen(borderL, bordersize), Rect.Left, Rect.Top, Rect.Width, Rect.Height);
 | |
|             }
 | |
|             
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|             sf.Dispose();
 | |
|         }
 | |
| 
 | |
| 
 | |
|     }
 | |
| }
 |