199 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			199 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Threading.Tasks;
 | |
| using System.Windows.Forms;
 | |
| using AR;
 | |
| 
 | |
| namespace Project.Dialog
 | |
| {
 | |
|     public partial class fVAR : Form
 | |
|     {
 | |
|         public fVAR()
 | |
|         {
 | |
|             InitializeComponent();
 | |
|         }
 | |
| 
 | |
|         private void fVAR_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             comboBox1.Items.AddRange(new string[] {
 | |
|                 "Byte",
 | |
|                 "Bool",
 | |
|                 "Time",
 | |
|                 "String",
 | |
|                 "UInt32",
 | |
|                 "Int32",
 | |
|                 "Dbl",
 | |
|             });
 | |
|             comboBox1.SelectedIndex = -1;
 | |
|             timer1.Start();
 | |
|         }
 | |
| 
 | |
|         object itemrefresh = new object();
 | |
| 
 | |
|         private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             if (comboBox1.SelectedIndex < 0) return;
 | |
|             var strtype = comboBox1.Text.Trim().ToUpper();
 | |
| 
 | |
|             if (System.Diagnostics.Debugger.IsAttached)
 | |
|                 this.TopMost = false;
 | |
| 
 | |
|             lock (itemrefresh)
 | |
|             {
 | |
|                 listView1.Items.Clear();
 | |
|                 Array valuelist;
 | |
|                 if (strtype == "BOOL")
 | |
|                 {
 | |
|                     valuelist = Enum.GetValues(typeof(eVarBool));
 | |
|                     foreach (var item in valuelist)
 | |
|                     {
 | |
|                         var v = (eVarBool)item;
 | |
|                         var lv = listView1.Items.Add($"{(int)v}");
 | |
|                         lv.SubItems.Add($"{item}");
 | |
|                         lv.SubItems.Add("--");
 | |
|                     }
 | |
|                 }
 | |
|                 //else if (strtype == "BYTE")
 | |
|                 //{
 | |
|                 //    valuelist = Enum.GetValues(typeof(eVarByte));
 | |
|                 //    foreach (var item in valuelist)
 | |
|                 //    {
 | |
|                 //        var v = (eVarByte)item;
 | |
|                 //        var lv = listView1.Items.Add($"{(int)v}");
 | |
|                 //        lv.SubItems.Add($"{item}");
 | |
|                 //        lv.SubItems.Add("--");
 | |
|                 //    }
 | |
|                 //}
 | |
|                 else if (strtype == "STRING")
 | |
|                 {
 | |
|                     valuelist = Enum.GetValues(typeof(eVarString));
 | |
|                     foreach (var item in valuelist)
 | |
|                     {
 | |
|                         var v = (eVarString)item;
 | |
|                         var lv = listView1.Items.Add($"{(int)v}");
 | |
|                         lv.SubItems.Add($"{item}");
 | |
|                         lv.SubItems.Add("--");
 | |
|                     }
 | |
|                 }
 | |
|                 else if (strtype == "TIME")
 | |
|                 {
 | |
|                     valuelist = Enum.GetValues(typeof(eVarTime));
 | |
|                     foreach (var item in valuelist)
 | |
|                     {
 | |
|                         var v = (eVarTime)item;
 | |
|                         var lv = listView1.Items.Add($"{(int)v}");
 | |
|                         lv.SubItems.Add($"{item}");
 | |
|                         lv.SubItems.Add("--");
 | |
|                     }
 | |
|                 }
 | |
|                 else if (strtype == "INT32")
 | |
|                 {
 | |
|                     valuelist = Enum.GetValues(typeof(eVarInt32));
 | |
|                     foreach (var item in valuelist)
 | |
|                     {
 | |
|                         var v = (eVarInt32)item;
 | |
|                         var lv = listView1.Items.Add($"{(int)v}");
 | |
|                         lv.SubItems.Add($"{item}");
 | |
|                         lv.SubItems.Add("--");
 | |
|                     }
 | |
|                 }
 | |
|                 else if (strtype == "DBL")
 | |
|                 {
 | |
|                     valuelist = Enum.GetValues(typeof(eVarDBL));
 | |
|                     foreach (var item in valuelist)
 | |
|                     {
 | |
|                         var v = (eVarDBL)item;
 | |
|                         var lv = listView1.Items.Add($"{(int)v}");
 | |
|                         lv.SubItems.Add($"{item}");
 | |
|                         lv.SubItems.Add("--");
 | |
|                     }
 | |
|                 }
 | |
|                 listView1.Tag = strtype;
 | |
|             }
 | |
| 
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void fVAR_FormClosed(object sender, FormClosedEventArgs e)
 | |
|         {
 | |
|             timer1.Stop();
 | |
|         }
 | |
| 
 | |
|         private void timer1_Tick(object sender, EventArgs e)
 | |
|         {
 | |
|             if (comboBox1.SelectedIndex < 0) return;
 | |
|             if (this.listView1.Items.Count < 1) return;
 | |
| 
 | |
|             lock (itemrefresh)
 | |
|             {
 | |
|                 var strtype = comboBox1.Text.Trim().ToUpper();
 | |
|                 if (strtype != listView1.Tag.ToString()) return;
 | |
| 
 | |
|                 foreach (ListViewItem item in listView1.Items)
 | |
|                 {
 | |
|                     var idx = int.Parse(item.SubItems[0].Text);
 | |
|                     //if (strtype == "UINT32")
 | |
|                     //{
 | |
|                     //    var v = VAR.U32[idx];
 | |
|                     //    item.SubItems[2].Text = v.ToString();
 | |
|                     //    item.ForeColor = v == 0 ? Color.DimGray : Color.Black;
 | |
|                     //}
 | |
|                     //else 
 | |
|                     if (strtype == "INT32")
 | |
|                     {
 | |
|                         var v = VAR.I32[idx];//	((eVarByte)idx);
 | |
|                         item.SubItems[2].Text = v.ToString();
 | |
|                         item.ForeColor = v == 0 ? Color.DimGray : Color.Black;
 | |
|                     }
 | |
|                     else if (strtype == "BYTE")
 | |
|                     {
 | |
|                         var v = VAR.I32[idx];//	((eVarByte)idx);
 | |
|                         item.SubItems[2].Text = v.ToString();
 | |
|                         item.ForeColor = v == 0 ? Color.DimGray : Color.Black;
 | |
|                     }
 | |
|                     else if (strtype == "BOOL")
 | |
|                     {
 | |
|                         var v = VAR.BOOL[idx];//[(eVarBool)idx);
 | |
|                         item.SubItems[2].Text = v ? "O" : "X";
 | |
|                         item.ForeColor = v ? Color.Green : Color.DimGray;
 | |
|                     }
 | |
|                     else if (strtype == "STRING")
 | |
|                     {
 | |
|                         var v = VAR.STR[idx];// .GetString((eVarString)idx);
 | |
|                         if (v == null) item.SubItems[2].Text = "(null)";
 | |
|                         else item.SubItems[2].Text = v.ToString();
 | |
|                         item.ForeColor = v.isEmpty() ? Color.DimGray : Color.Black;
 | |
|                     }
 | |
|                     else if (strtype == "TIME")
 | |
|                     {
 | |
|                         var v = VAR.TIME[idx];// ((eVarTime)idx);
 | |
|                         if (v.Year == 1982)
 | |
|                         {
 | |
|                             item.SubItems[2].Text = "--";
 | |
|                             item.ForeColor = Color.DimGray;
 | |
|                         }
 | |
|                         else
 | |
|                         {
 | |
|                             item.SubItems[2].Text = v.ToString();
 | |
|                             item.ForeColor = Color.Black;
 | |
|                         }
 | |
|                     }
 | |
|                     else if (strtype == "DBL")
 | |
|                     {
 | |
|                         var v = VAR.DBL[idx];// .GetString((eVarString)idx);
 | |
|                         item.SubItems[2].Text = v.ToString();
 | |
|                         item.ForeColor = v == 0 ? Color.DimGray : Color.Black;
 | |
|                     }
 | |
| 
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|         }
 | |
|     }
 | |
| }
 | 
