퇴근5분전

 

테마를 바꾸면 지정된 색상으로 변경하는 것을 만들어봄.

 

상용컨트롤 보면 각 색상스타일 값에 따라 화면 스타일이 바뀌는 것 처럼 구성해서 만들어봄.

 

각 컨트롤별 스타일 객체를 생성가능.

테마별 폴더 관리.

 

 

 

 

 

 

 

 

 

컨트롤의 사이즈를 애니메이션처럼 스르륵 커졌다가 작아졌다 를 적용해 주는 객체임.

 

컨트롤 두개를 배치해서 왼쪽 컨트롤을 클릭했을때 두번째 스샷처럼 줄어드는데 애니메이션처럼 작아지면서 흘러간다.

 

 

 

 

소스를 보면 슬라이드 적용할 컨트롤과 방향을 지정해서 등록한다.

 

슬라이드를 지정된 크기만큼 적용하는데 10 으로 지정했을때

 

10보다 큰 사이즈면 10만큼 줄어든다.

 

다시 클릭하면 10 에서 원래 사이즈만큼 늘어난다. 클릭할때마다 반복!

 

10보다 작은 사이즈면 10만큼 늘어났다가, 다시 클릭하면 원래사이즈로 작아짐!!

 

 

 

슬라이드 구현시...

 

 

page1을 선택시( 기준좌표 default )

 

page2을 선택시 계산을 통해 page2가 기준좌표가 될때까지 이동처리 ( 다른 페이지도 동일하게 offset ) 

 

page3선택시 page2 와 동일한 작용!

 

 

 

 

컨트롤 이동 효과 처리. 버튼 3개!!

 

 

 

적용 스샷 ] ( 제데로는 안찍혔네 ... )

버튼1 ) 대각선 좌상 -> 중심 이동으로 왔다 갔다.

버튼2 ) 제자리에서 사이즈만 변경

버튼3 ) 우상단 -> 중심으로 이동 및 사이즈 변경

 

 

 

 

도트 매트릭스를 구현해봤음.

 

 

7Segment(FND) 처럼 Cell 1개는 Led로 간주하고 코딩함.

 

  //TrunOn(1, 1);
  //WriteHex(3, 0, 0xF8);
     WriteString(2, 0, "ABC");

요렇게 사용.

 

폰트는   dic.Add("A", new int[] { 0x7C, 0x12, 0x12, 0x12, 0x7C });

 

 

 

 

최대한 실제 마이컴에 도트매트릭스를 다루는 것처럼 추상화 함.

 

 

 

 

화면에 300개의 효과를 뿌려서 스샷 찍었음.

 

 

 기존에 모니터링 프로그램 만들때 상태값에 따라 배경에 효과를 넣은적 있는데 뭔가 부족한 느낌에 효과였었고...

 

효과처리에 필요한 객체를 만들었음.

 

 

 

 

위 객체들을 이용하여 만든 프로그램 소스!!

/*

            300 개를 처음 뿌리고 클릭 할 때마다 효과를 하나씩 더 추가함!

*/

 

    public partial class Form1 : Form
    {
        List<JSFW_GraphicsEffect> EffectList = new List<JSFW_GraphicsEffect>();

        Timer tm = new Timer();
        public Form1()
        {
            InitializeComponent();
            DoubleBuffered = true;
           
            tm.Interval = 1000 / 24;
            tm.Tick += new EventHandler(tm_Tick);
            tm.Start();
            MouseClick += new MouseEventHandler(Form1_MouseClick);

            this.WindowState = FormWindowState.Maximized;
        }

        protected override void OnShown(EventArgs e)
        {
            base.OnShown(e);
            Random rd = new Random();
            for (int loop = 0; loop < 300; loop++)
            {
                EffectList.Add(new JSFW_GraphicsEffect(this, new Point(rd.Next(this.Width), rd.Next(this.Height)), (info) =>
                {
                    if (EffectList.Count % 2 == 0)
                    {
                        info.Steps = new EllipseEffectList(Point.Empty);
                    }
                    else
                    {
                        info.Steps = new RectangleEffectList(Point.Empty);
                    }
                }));
            }
        }

      
        void Form1_MouseClick(object sender, MouseEventArgs e)
        {
            EffectList.Add(new JSFW_GraphicsEffect(this, e.Location, (info) =>
            { 
                if (EffectList.Count % 2 == 0)
                {
                    info.Steps = new EllipseEffectList(Point.Empty);
                }
                else
                {
                    info.Steps = new RectangleEffectList(Point.Empty);
                }
            }));
        }

        void tm_Tick(object sender, EventArgs e)
        {
            foreach (JSFW_GraphicsEffect item in EffectList)
            {
                item.Signal = !item.Signal;
            }
        }

        protected override void OnFormClosing(FormClosingEventArgs e)
        {
            using (tm)
            {
                if( tm.Enabled ) tm.Stop();
            }
            base.OnFormClosing(e);
        }
    }

 

 

 

 

 

소스 변환과 관련된 글을 찾던 중  http://hilite.me/  요런걸 발견... 아래 api 가 있길래 연동시켜봤음.

 

HiliteMeApi.zip

 

 

 

 

 

 

'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글

Winform] DotMatrix  (0) 2013.08.27
Winform] Effect 효과 처리!  (0) 2013.08.23
IFormattable 와 ( IFormatProvider, ICustomFormatter )  (0) 2013.08.20
FlexGrid ] Cols[ 컬럼명 ].DataMap  (0) 2011.12.07
GlassForm  (1) 2011.11.15

 IFormattable 은 객체자체적으로 특정 포멧을 제공할때 사용하고

 IFormatProvider 는 객체에 특정 포멧들을 외부에서 제공할때 사용한다.

 

 소스 변환기를 만들면서 각 디자인 아이템들의 내부에서 제공할것들과 외부에서 만들어지는 것들을

별도로 분리하여 설계할때 도움이 컸다.

 

마냥 사용하던 두가지를 분리해서 사용하니 편하였음.

 

Data data = new Data();
string Result1 = string.Format("{0:FMT}", data);

DataFormatter fmt2 = new DataFormatter();

string Result2 = string.Format(fmt2, "{0:FMT2}", data);

 

요렇게 사용하면

Result1 에는 "사용자정의 = Data" 이 반환되고

Result2 에는 "FMT2 [사용자정의 = Data]" 가 반환 된다.

 

 

 

    public class Data : IFormattable
    { 
        #region IFormattable 멤버

        public string ToString(string format, IFormatProvider formatProvider)
        {
            if (format == "FMT")
            {
                return "사용자정의 = Data";
            }

            return ToString();
        }

        #endregion
    }


    public class DataFormatter : IFormatProvider , ICustomFormatter
    {
        #region IFormatProvider 멤버

        public object GetFormat(Type formatType)
        {
            if (formatType == typeof(ICustomFormatter)) return this;
            return null;
        }

        #endregion

        #region ICustomFormatter 멤버

        public string Format(string format, object arg, IFormatProvider formatProvider)
        {
            if (format == "FMT2")
            {
                return "FMT2 ["+ string.Format("{0:FMT}", arg) + "]";
            }
            return "";
        }

        #endregion
    }

 

'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글

Winform] Effect 효과 처리!  (0) 2013.08.23
WinForm + WebApi ] HighLight( 하이라이트 )  (0) 2013.08.22
FlexGrid ] Cols[ 컬럼명 ].DataMap  (0) 2011.12.07
GlassForm  (1) 2011.11.15
Array.ConvertAll 관련...  (0) 2011.11.15


DataSet ds = new DataSet();
FlexGrid.Cols[ucTY_EVALUE].DataMap
              = new MultiColumnDictionary(ds.Tables[0], "DS_CODE", new string[]{"CD_CODE","DS_CODE"}, 1);


위처럼 FlexGrid에서 MultiColumnDictionary 지원된다.

생성자가 몇가지 오버로드 되있는데 그중 위에 걸로 하면 될것 같고,
참고링크!!
http://helpcentral.componentone.com/nethelp/c1flexgrid/default.htm?turl=flexgridforwinformssamples.htm


위처럼 했을 경우

보이는건 DS_CODE 에 있는 것이 표시되고

콤보를 선택하려 클릭했을 때는

CD_CODE | DS_CODE  형태로 리스트로 아래로 뿌려진다.

맨앞 컬럼은 실제 선택시 값인데 DB에 저장할 때 위에는 DS_CODE로 코드가 아닌 이름을 그대로 저장하기 때문에
DS_CODE로 지정한 것 이다.

'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글

WinForm + WebApi ] HighLight( 하이라이트 )  (0) 2013.08.22
IFormattable 와 ( IFormatProvider, ICustomFormatter )  (0) 2013.08.20
GlassForm  (1) 2011.11.15
Array.ConvertAll 관련...  (0) 2011.11.15
ClickOnce UpdateAsync ~!!  (0) 2011.10.31

GlassForm

# 3) .Net ( Vs 2008 )/C#2011. 11. 15. 18:25





이거 괜츈타~~~

'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글

IFormattable 와 ( IFormatProvider, ICustomFormatter )  (0) 2013.08.20
FlexGrid ] Cols[ 컬럼명 ].DataMap  (0) 2011.12.07
Array.ConvertAll 관련...  (0) 2011.11.15
ClickOnce UpdateAsync ~!!  (0) 2011.10.31
LINQ] GroupBy  (0) 2011.10.12