|
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
« 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: static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // creas los Forms que necesitas para el intercambio de información Form1 mF1 = new Form1(); Form2 mF2 = new Form2(); // codigo para manejar el evento click del boton en el Form1 mF1.btnSend.Click += new EventHandler(delegate (object sender, EventArgs e) { // accedes a los miembros que deseas modificar del Form2 mF2.lstData.Items.Add(mF1.txtData.Text); // mostrar el Form2, si es que no esta visible mF2.Visible = true; }); // Inicias la aplicación Application.Run(mF1); }
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
« 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
« 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
« en: Sábado 10 de Enero de 2009, 04:21 »
usalo como si declararas una referencia: //en C++ es algo como: Class1* p_class1 = new Class1(); Class1& m_class1 = *p_class1; delete p_class1; //en C# seria: Class1 m_class1 = new Class1();
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
« en: Jueves 4 de Diciembre de 2008, 02:15 »
Puede alguien explicarme por que algo asi funciona: FileStream str = new FileStream("filename", FileMode.Create, FileAccess.Write, FileShare.None); FileSecurity fileSecurity = stream.GetAccessControl(); // modificar y/o agregar entradas // ... File.SetAccessControl("filename", fileSecurity);
pero si reeemplazo la ultima linea con : str.SetAccessControl(fileSecurity);
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
« 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
« 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 docs.sun.com/source/806-3568/ncg_goldberg.html
8
« en: Jueves 25 de Septiembre de 2008, 03:21 »
hay un ejemplo en CodeProject pero no puedo ponerte el enlace
9
« 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
« en: Jueves 4 de Septiembre de 2008, 18:31 »
si es una DLL puedes usar P/Invoke, con el atributo [DllImport("myLibrary.dll")] static extern -la declarion de tu funcion pero con tipos validos en C#-
11
« 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
« 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]
|
|
|