Exemplo n.º 1
0
        protected bool EditLongHexValue(TagNode tag)
        {
            if (FormRegistry.EditByteArray != null)
            {
                TagNodeLongArray latag    = tag.ToTagLongArray();
                byte[]           byteData = new byte[latag.Length * 8];
                for (int i = 0; i < latag.Length; i++)
                {
                    byte[] buf = BitConverter.GetBytes(latag.Data[i]);
                    Array.Copy(buf, 0, byteData, 8 * i, 8);
                }

                ByteArrayFormData data = new ByteArrayFormData()
                {
                    NodeName        = NodeName,
                    BytesPerElement = 8,
                    Data            = byteData,
                };

                if (FormRegistry.EditByteArray(data))
                {
                    latag.Data = new long[data.Data.Length / 8];
                    for (int i = 0; i < latag.Length; i++)
                    {
                        latag.Data[i] = BitConverter.ToInt64(data.Data, i * 8);
                    }

                    IsDataModified = true;
                    return(true);
                }
            }

            return(false);
        }