Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Hartigan

#31
.NET (C#, VB.NET, ASP) / Re: Dudas con mi agenda!! c#.
15 Septiembre 2010, 04:02 AM
Bueno chic@s, pues deciros que ya tengo mis alarmas creadas y funcionando perfectamente. jejejeje.

Gracias a todos por la ayuda  ;-)
#32
.NET (C#, VB.NET, ASP) / Re: Dudas con mi agenda!! c#.
15 Septiembre 2010, 00:49 AM
Cita de: raul338 en 14 Septiembre 2010, 23:40 PM
Justamente la comparacion que estoy haciendo es muy similar

Pues la verdad nunca uso los timer comunes, simpre los creo por codigo de la clase System.Timers y siempre hago Timer.Start y Timer.Stop

mmm bueno pues ya veré alomerjo lo cambio y lo creo por código en lugar de usar el control.
#33
.NET (C#, VB.NET, ASP) / Re: Dudas con mi agenda!! c#.
14 Septiembre 2010, 22:49 PM
Cita de: raul338 en 14 Septiembre 2010, 22:25 PM
Yo hice un timer para apagar la pc a cierta hora, asi que lo que hago es esto

Creo un TimeSpan con la diferencia de horas desde "ahora" hasta la hora destinada de la tarea (apagado)
Con el timer cada 1 segundo le resto... precisamente 1 segundo
En el timer, si el timeSpan llega a 0 (y/o la hora de la tarea es la actual) simplemente hacer la tarea :P

O sea ,  puedes usar en el timer tantos if o timespan como tareas... aunque dudo que tengas muuchas tareas al mismo tiempo (como para ralentizar el timer) asi que es efectivo :P

gracias de momento he probado con la cadena del compañero 43H4FH44H45H4CH49H56H45H a ver si me funcionar, y lo he hehco como dije. Acabo de programar un aviso a ver si me sale. Ahora os digo

EDITO: no me ha saltado el menasje ... voy a revisar. he puesto esto:

Primero leo los datos de la base de datos en un DataTable, y a continuación hago que el ticker se pare y vuelva a empezar con la función enabled. Es decir:

Código (csharp) [Seleccionar]


private void Funcion_Reprogramar_Timer(bool valor)
       {

           if (valor == true)
           {
               GestorAvisos ga = new GestorAvisos();
               DataTable tabla = ga.Obtener_Lista_Avisos(factoriaDAO, login);
               if (tabla != null)
               {                    
                   this.timerAlarmas.Enabled = false;
                   Tabla = tabla;
                   this.timerAlarmas.Enabled = true;
               }
               else
               {
                   this.timerAlarmas.Enabled = false;
               }
           }
           else
           {
               this.timerAlarmas.Enabled = false;
           }
       }

      private void timerAlarmas_Tick(object sender, EventArgs e)
        {
            int i = 0;
            int max = Tabla.Rows.Count;
            int anno;
            int hora, minutos, segundos;
            int dia, mes, año;

            for (i = 0; i < max; i++)
            {
                dia = Convert.ToInt32(Tabla.Rows[i][4].ToString().Substring(0, 2));
                mes = Convert.ToInt32(Tabla.Rows[i][4].ToString().Substring(3, 2));
                anno = Convert.ToInt32(Tabla.Rows[i][4].ToString().Substring(6, 4));
                hora = Convert.ToInt32(Tabla.Rows[i][5].ToString().Substring(0, 2));
                minutos = Convert.ToInt32(Tabla.Rows[i][5].ToString().Substring(3, 2));
                segundos = Convert.ToInt32(Tabla.Rows[i][5].ToString().Substring(6, 2));
                if ((DateTime.Now.Year == anno) &&(DateTime.Now.Month == mes) && (DateTime.Now.Day == dia) && (DateTime.Now.Hour == hora) && (DateTime.Now.Minute == minutos) &&
                    (DateTime.Now.Second == segundos))
                {
                    this.timerAlarmas.Enabled = false;
                    MessageBox.Show(Tabla.Rows[i][2].ToString(), "ALARMA", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
        }


En principi los datos los coge bien. Como detalle decir que en la bdd almaceno la fecha y la hora como strings porque me es más fácil manejarlas.

A ver si me ayudais.

EDITO:

Vale Solucionado. Ya me funcionar. (modifico el código)

Por cierto tengo una duda, es mejor por el timer en Enabled = false y luego volver a ponerlo en Enabled = true o usar stop y start??? lo digo por el tema de reiniciarlo, ya que me comentaron que el timer tiene un límite aunque es bastante grande, pero sino lo reinicio nunca pues...
#34
.NET (C#, VB.NET, ASP) / Re: Dudas con mi agenda!! c#.
14 Septiembre 2010, 22:05 PM
Buego sigo sin saber como programar mis alarmas. Os explico.

Esque como hago para que el timer sepa las alarmas que hay en la base de datos y las vaya comprobando??? YO había pensado crear un dataTable en el formulario principal, el cual obtiene los datos de la base de datos y el timer solo los tiene que usar...


Por otra parte. Supongamos que el timer está comprobando alarmas, y de repente añado una nueva alarma, como hago para que el timer se detenga y lea ahora los nuevos datos de la base de datos???

gracias de antemano
#35
Ahora que he probado tu aplicación he visto una cosa que me puede servir.

En mi agenda en algunos textbox tengo texto indicando información como lo  que tienes tu en el textBox del correo (Ejemplo@gmail.com)

Entonces al cargar elformulario me aparece seleccionado. Como hago para que no aparezca seleccionado??

no se si me explico....
#36
Gracias, que has usado para poner tener ese aspecto visual??
#37
Hola, pues resulta que hago una copia de seguridad y me funciona perfectamente, pero a la hora de restaurarla me da un error y me dice la bdd está en uso.....

porqué????

Mi código es el siguiente:

Código (sql) [Seleccionar]

public override bool Restaurar_Copia(string dataBase, string ruta)
       {
           Boolean exito = false;

           String queryRestore = "RESTORE DATABASE agenda FROM DISK = '" + ruta + "'" + " WITH REPLACE";


           SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder();
           csb.DataSource = "(local)\\SQLEXPRESS";
           // Es mejor abrir la conexión con la base Master
           csb.InitialCatalog = "master";
           csb.IntegratedSecurity = true;
           

           using (SqlConnection con = new SqlConnection(csb.ConnectionString))
           {
               try
               {
                   con.Open();

                   SqlCommand cmdBackUp = new SqlCommand(queryRestore, con);
                   cmdBackUp.ExecuteNonQuery();
                   MessageBox.Show("Se ha restaurado la copia de la base de datos.",
                                   "Restaurar base de datos",
                                   MessageBoxButtons.OK,
                                   MessageBoxIcon.Information);

                   con.Close();
               }
               catch (Exception ex)
               {
                   MessageBox.Show(ex.Message,
                                   "Error al restaurar la base de datos",
                                   MessageBoxButtons.OK,
                                   MessageBoxIcon.Error);
               }
           }
}


He depurado el StackTrace me dice esto: StackTrace = "   en System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)\r\n   en System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)\r\n   en System.Data.SqlClient.TdsParser.Run(RunBehavior run...


:huh: :huh: :huh: :huh:
#38
.NET (C#, VB.NET, ASP) / Re: Error con notifyIcon c#
13 Septiembre 2010, 01:38 AM
Bueno solucionados los problemas. Parece ser que era porque se repetía muchas veces una misma función y creo que era porque usaba mucho el showDialog() en lugar de show(). Al parecer de momento funciona bien. xDD

Gracias por la ayuda a todos ;)
#39
.NET (C#, VB.NET, ASP) / Re: Error con notifyIcon c#
11 Septiembre 2010, 21:17 PM
Cita de: [D4N93R] en 11 Septiembre 2010, 17:10 PM
Bueno, no creo que sea eso, el problema es que se te está llamando algo recursivamente, puede que sea el resize o algo. Ejecutalo y deja que te salga el Error, cuando tengas el error te sale esa ventanita del Exception, hay algo que dice StackTrace, pon eso acá.

Esque nisiquiera da detalles del error. solamente dice esto:

No se controló System.StackOverflowException

y esto: {No se puede evaluar la expresión porque el subproceso actual está en un estado de desbordamiento de pila.}


Cita de: 43H4FH44H45H4CH49H56H45H en 11 Septiembre 2010, 17:49 PM
@Hartigan esto funciona bien en mi máquina.

Código (csharp) [Seleccionar]
private void Form1_Resize(object sender, EventArgs e)
        {
            if (WindowState == FormWindowState.Minimized)
            {
                this.Hide();
                notifyIcon1.Visible = true;
            }
        }

        private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.Show();
            this.WindowState = FormWindowState.Normal;
            this.notifyIcon1.Visible = false;
        }


Porque no pruebas en otro PC, o en una máquina virtual.

ya lo he probado y sigue pasando lo mismo.... Si lo que no me pase a mi.... Esque el error lo da en el close del form.... no se si hay algo ahí que tenga que ver...
#40
.NET (C#, VB.NET, ASP) / Re: Error con notifyIcon c#
11 Septiembre 2010, 16:36 PM
Cita de: [D4N93R] en 11 Septiembre 2010, 05:01 AM
Ese es todo el código que maneja el notifier y el minimizado de la ventana? no tienes más nada?

aparte de eso tengo esto que no se si afectará, pero he probado a quitarlo y sigue pasando igualmente:

Código (csharp) [Seleccionar]


const int WM_SYSCOMMAND = 0x112;
const int SC_MINIMIZE = 0xF020;
const int SC_CLOSE = 0xF060;

......
.....
protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_SYSCOMMAND)
            {
                if (m.WParam == (IntPtr)SC_CLOSE)
                    Application.Exit();

                base.WndProc(ref m);
            }
            else
                base.WndProc(ref m);
        }

.....


puede ser porque tengo muchas barras de herramientas y menús, y que de error al volver a cargarlas despés de poner el formulario en estado normal???

Esque como he dicho una de las barras de herramientas que tengo al volver el form al estado normal tampoco se carga bien, se queda en gris... entonces no se si es por eso..