• Viernes 19 de Agosto de 2022, 19:18

Mostrar Mensajes

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


Mensajes - psikotic

Páginas: [1]
1
C# / Re: eventos entre forms
« en: Domingo 11 de Enero de 2009, 00:25 »
La forma mas recomedada es a traves de una propiedad publica en el Form2, que actualizas en el evento del boton del Form1. Pero para hacerlo exactamente como dices puedes intentar lo siguiente:

Código: Text
  1. static void Main()
  2.         {            
  3.             Application.EnableVisualStyles();
  4.             Application.SetCompatibleTextRenderingDefault(false);            
  5.  
  6.             // creas los Forms que necesitas para el intercambio de información
  7.             Form1 mF1 = new Form1();
  8.             Form2 mF2 = new Form2();
  9.            
  10.             // codigo para manejar el evento click del boton en el Form1
  11.             mF1.btnSend.Click += new EventHandler(delegate (object sender, EventArgs e)
  12.                                                       {
  13.                                                           // accedes a los miembros que deseas modificar del Form2
  14.                                                           mF2.lstData.Items.Add(mF1.txtData.Text);                                                          
  15.                                                           // mostrar el Form2, si es que no esta visible
  16.                                                           mF2.Visible = true;
  17.                                                       });
  18.             // Inicias la aplicación
  19.             Application.Run(mF1);
  20.         }
  21.  

debes poner el listbox, textbox y el button como publicos, de ahi la recomendación de hacerlo mejor con propiedades y mantener la encapsulación

2
C# / Re: Pasar código de Visual a MonoDevelop
« en: Sábado 10 de Enero de 2009, 05:15 »
el serialPort es un Handler para un Kernel Object de Windows no?,  por que no buscas alguna dll en C++ que manipule Kernel Objects (el puerto serial) de Linux y luego usas P/Invoke en C#, no he programado en Linux pero debe haber librerias en C++ para manipular el puerto serial

3
C# / Re: Liberar recursos totales
« en: Sábado 10 de Enero de 2009, 04:47 »
Usa algun Memory Profiling: JetBrains DotTrace, Xenocode Analyzer por mencionar algunos.

Podras detectar que metodo es el que consume la memoria, puede ser un problema con hilos, algun bug en una dll que no libera recursos, etc

4
C# / Re: Punteros a una clase
« en: Sábado 10 de Enero de 2009, 04:21 »
usalo como si declararas una referencia:

Código: Text
  1. //en C++ es algo como:
  2.  
  3. Class1* p_class1 = new Class1();
  4. Class1& m_class1 = *p_class1;
  5. delete p_class1;
  6.  
  7. //en C# seria:
  8.  
  9. Class1 m_class1 = new Class1();
  10.  

obtienes una referencia al objeto, no es necesario que liberes los recursos .NET liberara los recursos automaticamente, esa es la razon por la cual no puedes crear un puntero de un "tipo Manejado" como lo indica el compilador, despues de un garbage collect se liberan los recursos que ya no se necesitan, se compacta el HEAP y las direcciones de las referencias son actualizadas si utilizas un puntero "nativo" la direccion a la que apunta no cambia y tu puntero ya no es valido. Puedes usar los punteros con tipos basicos, enum y struct ya que son Value Type y son almacenados en el StACK

5
C# / Seguridad con Access Control List y metodo SetAccessControl
« en: Jueves 4 de Diciembre de 2008, 02:15 »
Puede alguien explicarme por que algo asi funciona:

Código: Text
  1. FileStream str = new FileStream("filename", FileMode.Create, FileAccess.Write, FileShare.None);
  2. FileSecurity fileSecurity = stream.GetAccessControl();
  3. // modificar y/o agregar entradas
  4.  
  5. // ...
  6.  
  7. File.SetAccessControl("filename", fileSecurity);
  8.  

pero si reeemplazo la ultima linea con :

Código: Text
  1. str.SetAccessControl(fileSecurity);
  2.  

me lanza una excepcion: UnAuthorizedAccessException: {"Intento de realizar una operación no válida."}

Lo he intentado con diferentes archivos y carpetas, con varias cuentas de usuario, configurando el FileStream de distintas maneras y nada siempre salta la excepcion si uso el FileStream. Por que?

6
C# / Re: Problemas de serialización con dos aplicaciones
« en: Miércoles 26 de Noviembre de 2008, 01:47 »
No especificas que serializas. Tu tipo Leccion es una clase, colección, etc predeterminada de .NET o no?. Coloca el EXE o la DLL que contiene el tipo Leccion en el directorio que contiene tu AplicacionB.

7
C# / Re: Precisión
« en: Lunes 6 de Octubre de 2008, 18:32 »
En realidad se debe a la forma en que son representados los numeros de punto flotante en .NET y en casi cualquier compilador de otros lenguajes se tiene el mismo detalle, si requieres hacer calculos precisos usa Decimal, si no basta con mostrar tu informacion con un Formatter el que usaste "F4", solo usalo a la hora de mostrar al usuario:

Console.WriteLine("Posición {0}: {1:F4}", i, f1);

Mas info en
Código: Text
  1. docs.sun.com/source/806-3568/ncg_goldberg.html
  2.  

8
C# / Re: Imprimir en C#
« en: Jueves 25 de Septiembre de 2008, 03:21 »
hay un ejemplo en CodeProject pero no puedo ponerte el enlace  :huh:

9
C# / Re: Como registral shockwave
« en: Jueves 11 de Septiembre de 2008, 20:32 »
reinstala Flash tal ves se daño alguna entrada en el registro; como añadiste el control? si el control aparece en la lista de referencias COM se supone que esta correctamente instalado. Si de todos modos deseas registrarlo por ti mismo utiliza

REGSVR32 /s [nombreComponente.ocx ó .dll]

10
C# / Re: Linkear una clase en C++ por C#
« en: Jueves 4 de Septiembre de 2008, 18:31 »
si es una DLL puedes usar P/Invoke, con el atributo

Código: Text
  1. [DllImport("myLibrary.dll")]
  2. static extern -la declarion de tu funcion pero con tipos validos en C#-
  3.  

11
C# / Re: Aplicacion que se ejecute cuando arranca windows
« en: Viernes 8 de Agosto de 2008, 19:06 »
Si tu aplicación realiza alguna tarea constante digamos por ejemplo escuchar un puerto seria conveniente que se ejecute como un servicio de windows y que inicie automaticamente, para ello hereda de la clase: System.ServiceProcess.ServiceBase. Si no me equivoco esta en el assembly System.ServiceProcess.dll.

Luego creas un instalador para registrar el servicio en windows. Con las plantillas de Visual Studio haces todo eso. En el MSDN busca mas informacion sobre ServiceBase, ServiceProcessInstaller y ServiceInstaller

Si solo deseas que tu programa se ejecute cuando Windows inicia y  despues ya no hace ninguna tarea creo que las sugerencias anteriores son mejores.

12
C# / Re: ¿backup Base Datos En C# Usando Odbc?
« en: Martes 1 de Julio de 2008, 01:31 »
Es similar a manejar un Provedor SQL:
creas el objeto System.Data.Odbc.OdbcConnection con tu cadena de conexion
creas un objeto System.Data.Odbc.OdbcCommand con el comando para el backup por ejemplo

System.Data.Odbc.OdbcCommand cmdBackup = new System.Data.Odbc.OdbcCommand("BACKUP DATABASE <tu base de datos original>  TO DISK = N'<la ruta y nombre donde sera guardado>' WITH NOFORMAT, NOINIT, NAME =N'<tu base de datos original>-Full Database Backup',SKIP, STATS = 10",<objeto System.Data.Odbc.OdbcConnection>)

para la restauracion cambias el comando a: RESTORE DATABASE...

Páginas: [1]