public ConfigASubForm(MSFL.MSFLSecurityInfo[] msflSecurityInfoArray) { InitializeComponent(); for (int iIndex = 0; iIndex < msflSecurityInfoArray.Length; iIndex++) { MSFL.MSFLSecurityInfo msflSecurityInfo = msflSecurityInfoArray[iIndex]; string securityInfo = msflSecurityInfo.szName + "[" + msflSecurityInfo.szSymbol + "]"; m_SecurityDictionary.Add(securityInfo, msflSecurityInfo); this.checkedListBox.Items.Add(securityInfo); } }
private void GetPriceRecord(MSFL.MSFLSecurityInfo msflSecurityInfo) { IntPtr hSecurity = msflSecurityInfo.hSecurity; int iErr = MSFL.MSFL1_LockSecurity(hSecurity, MSFL.MSFL_LOCK_PREV_WRITE_LOCK); if (iErr != (int)MSFL.MSFL_ERR.MSFL_NO_ERR) { return; } ushort wPriceRecCount = 0; iErr = MSFL.MSFL1_GetDataRecordCount(hSecurity, ref wPriceRecCount); if (iErr != (int)MSFL.MSFL_ERR.MSFL_NO_ERR) { return; } if (wPriceRecCount > 0) { iErr = MSFL.MSFL1_SeekBeginData(hSecurity); if (iErr != (int)MSFL.MSFL_ERR.MSFL_NO_ERR) { return; } MSFL.DateTime sDateTime = new MSFL.DateTime(); m_PriceRecordArray = new MSFL.MSFLPriceRecord[wPriceRecCount]; iErr = MSFL.MSFL2_ReadMultipleRecs(hSecurity, m_PriceRecordArray, ref sDateTime, ref wPriceRecCount, (int)MSFL.MSFL_FIND.MSFL_FIND_USE_CURRENT_POS); if (iErr != (int)MSFL.MSFL_ERR.MSFL_NO_ERR) { return; } // Unlock the security (we're done using it) iErr = MSFL.MSFL1_UnlockSecurity(hSecurity); } }
private void Process_LoadNewDocument(ProcessForm processForm) { if (m_DirNumber != 0) { MSFL.MSFL1_CloseDirectory(m_DirNumber); m_SecurityDictionary.Clear(); m_DirNumber = 0; } do { int iErr = MSFL.MSFL1_OpenDirectory(m_strSelectedPath, ref m_DirNumber, MSFL.MSFL_DIR_FORCE_USER_IN); if (iErr != (int)MSFL.MSFL_ERR.MSFL_NO_ERR) { break; } MSFL.MSFLDirectoryStatus msflDirectoryStatus = new MSFL.MSFLDirectoryStatus(); msflDirectoryStatus.dwTotalSize = (uint)Marshal.SizeOf(msflDirectoryStatus); iErr = MSFL.MSFL1_GetDirectoryStatus(m_DirNumber, string.Empty, ref msflDirectoryStatus); if (iErr != (int)MSFL.MSFL_ERR.MSFL_NO_ERR) { break; } //MSFL.DisplayMSFLError( iErr ); List <MSFL.MSFLSecurityInfo> listMSFLSecurityInfo = new List <MSFL.MSFLSecurityInfo>(1024); MSFL.MSFLSecurityInfo msflSecurityInfo = new MSFL.MSFLSecurityInfo(); msflSecurityInfo.dwTotalSize = (uint)Marshal.SizeOf(msflSecurityInfo); if (msflDirectoryStatus.bExists && // if it exists msflDirectoryStatus.bOpen && // AND if it's open msflDirectoryStatus.bMetaStockDir) // AND if it's a MetaStock directory... { StringBuilder dateString = new StringBuilder(MSFL.MSFL_MAX_NAME_LENGTH + 1); iErr = MSFL.MSFL1_GetFirstSecurityInfo(m_DirNumber, ref msflSecurityInfo); while (iErr == (int)MSFL.MSFL_ERR.MSFL_NO_ERR || iErr == (int)MSFL.MSFL_Messages.MSFL_MSG_LAST_SECURITY_IN_DIR) { //m_SecurityDictionary.Add( listViewItem, msflSecurityInfo.hSecurity ); listMSFLSecurityInfo.Add(msflSecurityInfo); if (iErr == (int)MSFL.MSFL_Messages.MSFL_MSG_LAST_SECURITY_IN_DIR) { break; } msflSecurityInfo = new MSFL.MSFLSecurityInfo(); msflSecurityInfo.dwTotalSize = (uint)Marshal.SizeOf(msflSecurityInfo); iErr = MSFL.MSFL1_GetNextSecurityInfo(msflSecurityInfo.hSecurity, ref msflSecurityInfo); } } MSFL.MSFLSecurityInfo[] msflSecurityInfoArray = listMSFLSecurityInfo.ToArray(); if (msflSecurityInfoArray.Length <= 0) { break; } KLineViewFormSubForm klineViewFormSubForm = new KLineViewFormSubForm(msflSecurityInfoArray); if (klineViewFormSubForm.ShowDialog() == DialogResult.OK) { msflSecurityInfoArray = klineViewFormSubForm.ToSecurityInfo(); if (msflSecurityInfoArray.Length > 0) { for (int iIndex = 0; iIndex < msflSecurityInfoArray.Length; iIndex++) { MSFL.MSFLSecurityInfo msflSecurityInfoIndex = msflSecurityInfoArray[iIndex]; KLineViewFormDocument frmDocument = new KLineViewFormDocument(msflSecurityInfoIndex); frmDocument.MdiParent = this; frmDocument.Text = msflSecurityInfoIndex.szName + "[" + msflSecurityInfoIndex.szSymbol + "]"; frmDocument.Show(); } } } } while (false); processForm.EndProcessForm(); }
private void ButtonAdd_Click(object sender, EventArgs e) { this.FolderBrowserDialog.SelectedPath = GetRegistryOpenFilePath(); if (this.FolderBrowserDialog.ShowDialog() == DialogResult.OK) { SetRegistryOpenFilePath(this.FolderBrowserDialog.SelectedPath); MSFL.MSFLSecurityInfo[] msflSecurityInfoArray = null; if (GlobalSetting.TryLoadMsflSecurityInfo(this.FolderBrowserDialog.SelectedPath, out msflSecurityInfoArray) == true) { OptionSub2From configASubForm = new OptionSub2From(msflSecurityInfoArray); if (configASubForm.ShowDialog(this) == DialogResult.OK) { msflSecurityInfoArray = configASubForm.ToSecurityInfo(); for (int iIndex = 0; iIndex < msflSecurityInfoArray.Length; iIndex++) { MSFL.MSFLSecurityInfo msflSecurityInfo = msflSecurityInfoArray[iIndex]; string securityInfo = GlobalSetting.GetStockCode(msflSecurityInfo.szName, msflSecurityInfo.szSymbol); ListViewItem listViewItem = new ListViewItem(msflSecurityInfo.szName); ListViewItem.ListViewSubItem listViewSubItem1 = new ListViewItem.ListViewSubItem(listViewItem, msflSecurityInfo.szSymbol); ListViewItem.ListViewSubItem listViewSubItem2 = new ListViewItem.ListViewSubItem(listViewItem, this.FolderBrowserDialog.SelectedPath); listViewItem.SubItems.Add(listViewSubItem1); listViewItem.SubItems.Add(listViewSubItem2); bool bIsOK = true; foreach (ListViewItem item in this.ListViewStock.Items) { string securityInfo2 = GlobalSetting.GetStockCode(item.Text, item.SubItems[1].Text); if (securityInfo == securityInfo2) { bIsOK = false; break; } } if (bIsOK == true) { m_ListAdd.Add(listViewItem); this.ListViewStock.Items.Add(listViewItem); } else { //MainForm.ShowPopupMessage( securityInfo, "已经存在" ); MessageBox.Show(securityInfo, "已经存在"); } } if (ButtonSaveChanged != null) { ButtonSaveChanged(this, EventArgs.Empty); } } } else { //MainForm.ShowPopupMessage( "尝试读取股票信息失败", "可能不是MetaStock数据的存放位置" ); MessageBox.Show("尝试读取股票信息失败", "可能不是MetaStock数据的存放位置"); } } }
private void OpenToolStripMenuItem_Click(object sender, EventArgs e) { if (this.FolderBrowserDialogView.ShowDialog() != DialogResult.OK) { return; } if (m_DirNumber != 0) { MSFL.MSFL1_CloseDirectory(m_DirNumber); this.ListViewSecurity.VirtualListSize = 0; this.ListViewSecurity.Items.Clear(); this.ListViewPrice.VirtualListSize = 0; this.ListViewPrice.Items.Clear(); m_SecurityDictionary.Clear(); m_DirNumber = 0; } int iErr = MSFL.MSFL1_OpenDirectory(this.FolderBrowserDialogView.SelectedPath, ref m_DirNumber, MSFL.MSFL_DIR_FORCE_USER_IN); if (iErr != (int)MSFL.MSFL_ERR.MSFL_NO_ERR) { return; } MSFL.MSFLDirectoryStatus msflDirectoryStatus = new MSFL.MSFLDirectoryStatus(); msflDirectoryStatus.dwTotalSize = (uint)Marshal.SizeOf(msflDirectoryStatus); iErr = MSFL.MSFL1_GetDirectoryStatus(m_DirNumber, string.Empty, ref msflDirectoryStatus); if (iErr != (int)MSFL.MSFL_ERR.MSFL_NO_ERR) { return; } //MSFL.DisplayMSFLError( iErr ); MSFL.MSFLSecurityInfo msflSecurityInfo = new MSFL.MSFLSecurityInfo(); msflSecurityInfo.dwTotalSize = (uint)Marshal.SizeOf(msflSecurityInfo); List <ListViewItem> listViewItemList = new List <ListViewItem>(2048); if (msflDirectoryStatus.bExists && // if it exists msflDirectoryStatus.bOpen && // AND if it's open msflDirectoryStatus.bMetaStockDir) // AND if it's a MetaStock directory... { StringBuilder dateString = new StringBuilder(MSFL.MSFL_MAX_NAME_LENGTH + 1); iErr = MSFL.MSFL1_GetFirstSecurityInfo(m_DirNumber, ref msflSecurityInfo); while (iErr == (int)MSFL.MSFL_ERR.MSFL_NO_ERR || iErr == (int)MSFL.MSFL_Messages.MSFL_MSG_LAST_SECURITY_IN_DIR) { ListViewItem listViewItem = new ListViewItem(msflSecurityInfo.szName); ListViewItem.ListViewSubItem subListViewItem1 = new ListViewItem.ListViewSubItem(listViewItem, msflSecurityInfo.szSymbol); ListViewItem.ListViewSubItem subListViewItem2 = new ListViewItem.ListViewSubItem(listViewItem, msflSecurityInfo.cPeriodicity.ToString()); iErr = MSFL.MSFL1_FormatDate(dateString, (ushort)dateString.Capacity, msflSecurityInfo.lFirstDate); ListViewItem.ListViewSubItem subListViewItem3 = new ListViewItem.ListViewSubItem(listViewItem, dateString.ToString()); iErr = MSFL.MSFL1_FormatDate(dateString, (ushort)dateString.Capacity, msflSecurityInfo.lLastDate); ListViewItem.ListViewSubItem subListViewItem4 = new ListViewItem.ListViewSubItem(listViewItem, dateString.ToString()); iErr = MSFL.MSFL1_FormatTime(dateString, (ushort)dateString.Capacity, msflSecurityInfo.lFirstTime, true); ListViewItem.ListViewSubItem subListViewItem5 = new ListViewItem.ListViewSubItem(listViewItem, dateString.ToString()); iErr = MSFL.MSFL1_FormatTime(dateString, (ushort)dateString.Capacity, msflSecurityInfo.lLastTime, true); ListViewItem.ListViewSubItem subListViewItem6 = new ListViewItem.ListViewSubItem(listViewItem, dateString.ToString()); iErr = MSFL.MSFL1_FormatTime(dateString, (ushort)dateString.Capacity, msflSecurityInfo.lStartTime, false); ListViewItem.ListViewSubItem subListViewItem7 = new ListViewItem.ListViewSubItem(listViewItem, dateString.ToString()); iErr = MSFL.MSFL1_FormatTime(dateString, (ushort)dateString.Capacity, msflSecurityInfo.lEndTime, false); ListViewItem.ListViewSubItem subListViewItem8 = new ListViewItem.ListViewSubItem(listViewItem, dateString.ToString()); iErr = MSFL.MSFL1_FormatDate(dateString, (ushort)dateString.Capacity, msflSecurityInfo.lCollectionDate); ListViewItem.ListViewSubItem subListViewItem9 = new ListViewItem.ListViewSubItem(listViewItem, dateString.ToString()); listViewItem.SubItems.Add(subListViewItem1); listViewItem.SubItems.Add(subListViewItem2); listViewItem.SubItems.Add(subListViewItem3); listViewItem.SubItems.Add(subListViewItem4); listViewItem.SubItems.Add(subListViewItem5); listViewItem.SubItems.Add(subListViewItem6); listViewItem.SubItems.Add(subListViewItem7); listViewItem.SubItems.Add(subListViewItem8); listViewItem.SubItems.Add(subListViewItem9); m_SecurityDictionary.Add(listViewItem, msflSecurityInfo.hSecurity); //this.ListViewSecurity.Items.Add( listViewItem ); listViewItemList.Add(listViewItem); if (iErr == (int)MSFL.MSFL_Messages.MSFL_MSG_LAST_SECURITY_IN_DIR) { break; } iErr = MSFL.MSFL1_GetNextSecurityInfo(msflSecurityInfo.hSecurity, ref msflSecurityInfo); } m_SecurityArray = listViewItemList.ToArray(); this.ListViewSecurity.VirtualListSize = m_SecurityArray.Length; } }
public KLineViewFormDocument(MSFL.MSFLSecurityInfo msflSecurityInfo) { GetPriceRecord(msflSecurityInfo); InitializeComponent(); }