/// <summary> /// Adds method to be invoked when event raised. /// </summary> /// <typeparam name="T">The event associated with the event delegate.</typeparam> /// <param name="del">The method to be stored and invoked if the event is raised.</param> public void AddListener <T>(EventDelegate <T> del) where T : GameEvent { // Create non-generic delegate. InternalDelegate internalDelegate = (e) => del((T)e); // If event method already stored, return. if (delegateLookup.ContainsKey(del) && delegateLookup[del] == internalDelegate) { return; } // Store in delegate lookup for future checks. delegateLookup[del] = internalDelegate; // Store delegate in method lookup (invoked when event raised). // If delegates already contains an event of type T then the event is added to that // else the event is stored in a new position in the dictionary. InternalDelegate tempDel; if (delegates.TryGetValue(typeof(T), out tempDel)) { delegates[typeof(T)] = tempDel += internalDelegate; } else { delegates[typeof(T)] = internalDelegate; } }
private void btnGetAllDataBases_Click(object sender, EventArgs e) { if (cmbSqlServers.Items.Count > 0 && txtPassword.Text.Trim().CompareTo(string.Empty) != 0 && txtUserName.Text.Trim().CompareTo(string.Empty) != 0) { ticker.Start(); btnGetAllDataBases.Enabled = false; this.Cursor = Cursors.WaitCursor; cmbAllDataBases.Items.Clear(); sqlInfo.SQLServer = cmbSqlServers.Text.Trim(); sqlInfo.Username = txtUserName.Text.Trim(); sqlInfo.Password = txtPassword.Text.Trim(); MessageBox.Show("You may get the list sql servers if user name and password are not correct.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, 0, false); intlDelg = new InternalDelegate(sqlInfo.EnumerateSQLServersDatabases); called = CallFor.SqlDataBases; intlDelg.BeginInvoke(new AsyncCallback(CallBackMethod), intlDelg); } else { MessageBox.Show("No sql servers loaded or user name or password empty...", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, 0, false); } }
public void AddListener <T>(Delegate <T> del) where T : GameEvent { if (lookups.ContainsKey(del)) { return; } // the delegate we actually invoke, it automatically casts the event using lambda expression InternalDelegate internalDelLookUp = (e) => del((T)e); lookups[del] = internalDelLookUp; InternalDelegate internalDel; delegates[typeof(T)] = delegates.TryGetValue(typeof(T), out internalDel) ? internalDel += internalDelLookUp : internalDelLookUp; }
public FrmReportBuilder() { InitializeComponent(); btnUpdate.Enabled = false; sqlInfo = new SQLInfoEnumerator(); grpDataManipulate.Enabled = false; btnLoadSqlServers.Select(); btnLoadSqlServers.Focus(); prgProgress.Minimum = 0; prgProgress.Maximum = 200; ticker = new System.Timers.Timer(); intlDelg = new InternalDelegate(sqlInfo.EnumerateSQLServers); ticker.Elapsed += new ElapsedEventHandler(ticker_Elapsed); ticker.Interval = 250; cmbNoOfRecords.SelectedIndex = 0; btnFirst.Enabled = false; btnPrevious.Enabled = false; btnNext.Enabled = false; btnLast.Enabled = false; btnAdd.Enabled = false; btnUpdate.Enabled = false; btnDelete.Enabled = false; cmbNoOfRecords.Enabled = false; cmbSqlServers.Items.Add(MyModules.ServerName); cmbSqlServers.Text = MyModules.ServerName; txtUserName.Text = MyModules.UserID; txtPassword.Text = MyModules.Password; cmbAllDataBases.Items.Add(MyModules.AttachName); cmbAllDataBases.Text = MyModules.AttachName; chkWinAuthen.Checked = MyModules.IntegratedSecurity; object sender = null; EventArgs e = null; // btnGetAllDataBases_Click(sender, e); btnGetAllTables_Click(sender, e); cboCriteria.SelectedIndex = 1; }
public CriAudioWriteStream(Delegate callback, int numChannels, int bufferSize = 256) { float[][] buffer = new float[numChannels][]; for (int channel = 0; channel < numChannels; channel++) { buffer[channel] = new float[bufferSize]; } this.internalDelegate = (IntPtr cbobj, IntPtr data, uint numSamples) => { if (numSamples > bufferSize) { numSamples = (uint)bufferSize; } for (int channel = 0; channel < numChannels; channel++) { Marshal.Copy(Marshal.ReadIntPtr(data, IntPtr.Size * channel), buffer[channel], 0, (int)numSamples); } numSamples = callback(buffer, numSamples); return(numSamples); }; this.callbackFunction = Marshal.GetFunctionPointerForDelegate(this.internalDelegate); }
public Form1() { InitializeComponent(); btnUpdate.Enabled = false; sqlInfo = new SQLInfoEnumerator(); grpDataManipulate.Enabled = false; btnLoadSqlServers.Select(); btnLoadSqlServers.Focus(); prgProgress.Minimum = 0; prgProgress.Maximum = 200; ticker = new System.Timers.Timer(); intlDelg = new InternalDelegate(sqlInfo.EnumerateSQLServers); ticker.Elapsed += new ElapsedEventHandler(ticker_Elapsed); ticker.Interval = 250; cmbNoOfRecords.SelectedIndex = 0; btnFirst.Enabled = false; btnPrevious.Enabled = false; btnNext.Enabled = false; btnLast.Enabled = false; btnAdd.Enabled = false; btnUpdate.Enabled = false; btnDelete.Enabled = false; cmbNoOfRecords.Enabled = false; }
private void btnGetAllDataBases_Click(object sender, EventArgs e) { if (cmbSqlServers.Items.Count > 0 && txtPassword.Text.Trim().CompareTo(string.Empty) != 0 && txtUserName.Text.Trim().CompareTo(string.Empty) != 0) { ticker.Start(); btnGetAllDataBases.Enabled = false; this.Cursor = Cursors.WaitCursor; cmbAllDataBases.Items.Clear(); sqlInfo.SQLServer = cmbSqlServers.Text.Trim(); sqlInfo.Username = txtUserName.Text.Trim(); sqlInfo.Password = txtPassword.Text.Trim(); MessageBox.Show("You may get the list sql servers if user name and password are not correct.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, 0, false); intlDelg = new InternalDelegate(sqlInfo.EnumerateSQLServersDatabases); called = CallFor.SqlDataBases; intlDelg.BeginInvoke(new AsyncCallback(CallBackMethod), intlDelg); } else { MessageBox.Show("No sql servers loaded or user name or password empty...", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, 0, false); } }