Título: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 3 Junio 2013, 19:49 pm Hola bueno, necesito que un form lea una .ini y que cree un PictureBox, y como es logico que le meta ya directamente todas sus properties....
Con que me deis un ejemplo funcional ya me las apaño, puesto que meter nuevas variables solo sera leer dos cosas y copiar y pegar y cambiar esas dos cosas... :silbar: Un saludo. Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 3 Junio 2013, 20:31 pm Hombre, está claro que un archivo de texto no va a "crear" un control, lo que intenté decirte es que puedes leer en tiempo de ejecución los valores desde un INI para crear el picturebox en tiempo de ejecución.
Sigo sin saber exáctamente que es lo que quieres hacer, pero... : Ejemplo: test.ini Código: Nombre=PicBox Class1.vb Código
el code lo he escrito al vuelo, en la primera página de este subforo puedes encontrar un comentario mio sobre como cargar datos de un INI. Salu2 Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 3 Junio 2013, 20:37 pm Las picturebox tienen que estar precreadas? No quiero poner limite de modpacks a mis usuarios... Si te conectases a Skype te lo contaría XD
Por si no tienes pensado conectarte, mira esta imagen: (http://i.imgur.com/pKR97zo.png) Más o menos sabes lo que digo? >:D Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 3 Junio 2013, 20:47 pm Puedes definir el número de pictureboxes que serán, guardas ese número en el ini, y lo lees...
Código
no se si te refieres a hacer eso, mañana hablamos por skype Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 3 Junio 2013, 20:55 pm A ver no... Las picture box tienen que ser infinitas... Las picturebox se tienen que ir "creando" conforme el usuario vaya instalando Modpacks, (es algo asi como un acceso directo) luego el usuario la selecciona y le da a jugary se ejecuta el juego. :P
Título: Re: Crear PictureBox a través de una config .ini? Publicado por: XresH en 3 Junio 2013, 21:47 pm Una pregunta no, no es posible dejar creados los picture box y darle a un visible true luego?
y si se crean demasiados crearlos en tiempo de ejecución como te dijo electro xD Digo, es posible que se creen 300 picture como para hacerlos todos en ejecución? Saludos. Título: Re: Crear PictureBox a través de una config .ini? Publicado por: SγиtαxEяяoя en 3 Junio 2013, 21:55 pm O sacar provecho y no crear tanto picturebox
50 modpacks = Gratis 100 modpacks = 1.50$ 500 modpacks = 5$ U.U soy malo con los precios ajjaja Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 3 Junio 2013, 22:01 pm Y como se mete en tiempo de ejecución?
Se supone que el ini tiene que servir para guardarlos y que no se borren cuando cierras la app y la vuelves a abrir. :rolleyes: Título: Re: Crear PictureBox a través de una config .ini? Publicado por: XresH en 3 Junio 2013, 22:04 pm O sacar provecho y no crear tanto picturebox 50 modpacks = Gratis 100 modpacks = 1.50$ 500 modpacks = 5$ U.U soy malo con los precios ajjaja Te van a denunciar y a llevar preso hombre jajajaja ladron!!! Y como se mete en tiempo de ejecución? Se supone que el ini tiene que servir para guardarlos y que no se borren cuando cierras la app y la vuelves a abrir. :rolleyes: Electro te puso un ejemplo, lo probaste? el ini usalo para guardar las propiedades de los picture, y los vas creando, recorriendo todo el ini asignando cada valor al picture correspondiente, que code tenes hasta el momento y te ayudamos. Saludos! Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 3 Junio 2013, 22:05 pm Digo, es posible que se creen 300 picture como para hacerlos todos en ejecución? Si un array de controles de forma dinámica. A ver no... Las picture box tienen que ser infinitas... Las picturebox se tienen que ir "creando" conforme el usuario vaya instalando Modpacks, (es algo asi como un acceso directo) luego el usuario la selecciona y le da a jugary se ejecuta el juego. :P Pues "detecta" el número de modpacks que hay instalados y vas creando en tiempo de ejecución cada picturebox como te expliqué... "For x to NúmeroDeModpacks" Mírate mi post de snippets de vez en cuando, para algo está: Código
300 pictureboxes o cuantos quieras Salu2 Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 3 Junio 2013, 22:07 pm Pero si cierro la app se va a borrar ese control?
Título: Re: Crear PictureBox a través de una config .ini? Publicado por: XresH en 3 Junio 2013, 22:14 pm No estaba haciendo la pregunta en concreto :P me expresé mal, a lo que iba es que si era posible que un usuario en TU juego tenga que crear 300 pictures box o mas al iniciar la aplicación?
Ya que si el usuario crea maximo de 10, hazlos en tiempo de diseño y que luego aparezcan, y guardas todo solamente de un maximo de 10 picture o 20. Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 3 Junio 2013, 22:31 pm Pero si cierro la app se va a borrar ese control? Claro. No esperes añadir los pictureboxes de forma permanente, eso no puedes hacerlo, es imposible porque en el Source no están declarados, tienes que generar los controles desde el código. No me parece que séa un problema que al cerrar la app "se eliminen", si al volver a iniciar la app se volverían a generar los controles (crear, nombrar, colocar, redimensionar, lo que quieras) gracias a tu INI. Saludos Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 4 Junio 2013, 07:51 am Eso es a lo que me refiero y con el code que me distes arriba ya se puede? :huh:
Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 4 Junio 2013, 08:42 am Eso es a lo que me refiero y con el code que me distes arriba ya se puede? :huh: sip! Ves haciéndolo y si te surge un problema al leer el valor del ini o al crear los pictureboxes te ayudo de mejor forma Por cierto, para colocarlos dentro del panel: Código
PD: ya tienes el dubspet subido en la url que te dije, pero se me jodió la subida 2 veces y el server no tiene "resume" así q he subido solo accesos directos. Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 4 Junio 2013, 13:56 pm Ya te he contado lo que ha pasado intentaré solucionarlo para esta tarde pero no te prometo nada. :silbar:
Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 4 Junio 2013, 14:22 pm ups... me equivoquñe de post al comentar xD (...tienes tantos).
http://foro.elhacker.net/net/scroll_de_imagenes-t391409.0.html;msg1858088#msg1858088 Sorry por el spam. Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 6 Junio 2013, 22:01 pm Soy muy noob, y no se como hacer lo del los controles en el tiempo de ejecucción...
Tengo este code: Código
A ver, cuando lo meto, no se genera nada.... Se supone que están creados y lo único que falta son mostrarlos? Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 7 Junio 2013, 04:19 am Pero Seazoux, ya que haces un copy/paste al menos modifica lo de "chk_" por algo como "pcb_" para que en un futuro, al volver a leer ese código, entiendas lo que hiciste xD.
Los pictureboxes no tienen la propiedad "Text", así que elimina esa línea. No los ves porque son transparentes, añádele un: Código: pcb_(pcb_num).BackColor = Color.Red Y agranda el valor del "top" a 80 o 90, porque 20 lo puse para Checkboxes, y los pictureboxes por defecto son el triple de anchos que un checkbox, vas a ver una columna roja y ya. Saludos Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 7 Junio 2013, 07:44 am Tengo otra duda, he puesto Panel1.Controls.Add(Panel1)
Dentro del For, ahora los pics tienen las propiedades del Panel1 xD Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 7 Junio 2013, 09:58 am Tengo otra duda, he puesto Panel1.Controls.Add(Panel1) Dentro del For, ahora los pics tienen las propiedades del Panel1 xD Claro, las propiedades del container las heredan los controles que añades dentro del container... pasa lo mismo si los creas/añades desde el designer. Modifica las propiedades que consideres "conflictivas" del panel un saludo Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 7 Junio 2013, 11:08 am Claro, las propiedades del container las heredan los controles que añades dentro del container... pasa lo mismo si los creas/añades desde el designer. Modifica las propiedades que consideres "conflictivas" del panel un saludo Pero si le pongo un color de argb va a tomar ese color también el pic, teniendo ya puesto el pic la propiedad del argb? Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 12 Junio 2013, 15:26 pm Gracias por este snippet tan bueno... Ahora ya podré seguir...
Ahora tengo una duda... Tengo que contar el numero de pcbs que ya hay para saber a cual pcb se le va a asignar ese value... Tendria que contar una frase o una palabra que fuese comun para todo el ini... Ahora la cosa es como cuento la veces que sale dicha palabra, estuve buscando en google pero na... :silbar: Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 12 Junio 2013, 16:48 pm IkillNukes,
me caes bien pero al menos yo desde luego no me voy a molestar en ayudar a alguien si priméramente esa persona no se digna a formular corréctamente una pregunta, mostrando código, mostrando el ini, siendo especifico y dando detalles, mostrando los put*s errores/excepciones, en fin mostrando los datos necesarios y que se vea que lo estás intentando, la verdad es que ya cansa mucho ver este tipo de preguntas tuyas, no porque seas pesado ni nada parecido, sino porque son preguntas sin ningún tipo de información por tu parte, sin sentido, solo pides las cosas ya hechas y ni siquiera se entiende lo que pides en la mayoría de los casos. Si no dispones del tiempo suficiente para escribir todo lo necesario para poder formular una pregunta DECENTE para que en general los demás usuarios te podamos ENTENDER y de alguna manera te podamos RESPONDER y ayudar en lo que podamos, pues comprende que los demás usuarios tenemos aún menos tiempo para leer tonterías y contestarlas. Espero que no te haya molestado, mi pequeña crítica constructiva. Saludos! Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 12 Junio 2013, 16:55 pm Por eso digo siempre que te conectes a Skype, por ahí podemos hablar clara y lentamente Y pa colmo ni leo, ni explico bien...
La duda que he formulado arriba si se como resolverla.... Lo único que necesito saber es como contar cuantas veces se repite una palabra en un ini, asi de fácil... Yo mismo me lié formulando la pregunta (la de arriba) así que... XD Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 12 Junio 2013, 19:14 pm o único que necesito saber es como contar cuantas veces se repite una palabra en un ini Hace tiempo posteé un snippet para eso: Código
Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 22 Junio 2013, 12:53 pm Bueno, pues estoy intentado algo tal que así:
Código
Como observarás he vuelto a tu antiguo code.... Un saludo. Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 22 Junio 2013, 16:21 pm Detalles del error, etc?
saludos Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 22 Junio 2013, 17:22 pm Básicamente lo digo aquí:
Citar pcb_(deel + 2).Width = 200 'Aquí es donde tengo el conflicto, las pics no se cargan Un saludo. :P Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 22 Junio 2013, 18:31 pm Eso ya lo leí, te pregunto si salta alguna excepción, ya que en esa línea no "cargas" los controles, solo modificas su tamaño, por eos me parece extraño que afirmes que el error está en esa linea.
saludos! Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 22 Junio 2013, 18:48 pm No me salta ninguna excepción, simplemente el panel se queda vacío. :-\
Esa línea es la errónea puesto que si la quito, vuelve todo a estar como estaba. Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 22 Junio 2013, 19:40 pm Pues prueba a poner un breakpoint o un msgbox para comprobar el valor "deel" antes de modificar el width... por cierto en el code modificas dos veces el width...
saludos Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 22 Junio 2013, 19:44 pm Ya añadí un MsgBox y va perfecto. Ehm ya se que hay 2 widths, uno es el que cambia y el otro es el que añade el width por default a cada uno de los pics. Voy a probar borrando ese width y activando el otro. :P
Ahora he borrado uno de los widths y antes de mostrar el code me suelta esta excepción: Citar System.InvalidOperationException was unhandled HResult=-2146233079 Message=Error al crear el formulario. Consulte Exception.InnerException para obtener más detalles. Error: Referencia a objeto no establecida como instancia de un objeto. Source=IkillLauncher StackTrace: en WindowsApplication1.My.MyProject.MyForms.Create__Instance__[T](T Instance) en 17d14f5c-a337-4978-8281-53493378c1071.vb:línea 190 en WindowsApplication1.My.MyProject.MyForms.get_frmModpacks() en WindowsApplication1.frmMinecraft.Label2_Click(Object sender, EventArgs e) en C:\Users\Alvaro\Documents\IkillLauncher\IkillLauncher\frmMinecraft.vb:línea 134 en System.Windows.Forms.Control.OnClick(EventArgs e) en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) en System.Windows.Forms.Control.WndProc(Message& m) en System.Windows.Forms.Label.WndProc(Message& m) en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) en System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) en System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) en System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) en System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) en System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) en System.Windows.Forms.Application.Run(ApplicationContext context) en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) en WindowsApplication1.My.MyApplication.Main(String[] Args) en 17d14f5c-a337-4978-8281-53493378c1071.vb:línea 81 en System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) en System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) en Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() en System.Threading.ThreadHelper.ThreadStart_Context(Object state) en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) en System.Threading.ThreadHelper.ThreadStart() InnerException: System.NullReferenceException HResult=-2147467261 Message=Referencia a objeto no establecida como instancia de un objeto. Source=IkillLauncher StackTrace: en WindowsApplication1.frmModpacks..ctor() en C:\Users\Alvaro\Documents\IkillLauncher\IkillLauncher\frmModpacks.vb:línea 44 InnerException: Si lo vuelvo a poner siempre toma el primero y si bajo el scroll no cambia el width de ninguna imagen. :-\ La linea 44 es justamente esta: Código
Lo mismo pasa si pongo: Código
Por ejemplo :/ Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 22 Junio 2013, 20:36 pm Citar Referencia a objeto no establecida como instancia de un objeto. Traducción: El objeto no existe. Posible causa: Estás intentando llamar al panel cuando todavia no se ha creado/instanciado en la ventana del load. Me apuesto mi casa entera a que tienes ese código de los pcbs() en el form load, muevelo todo al evento shown, no al load. Saludos! Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 22 Junio 2013, 20:39 pm Perdona la ignorancia, cual es el evento shown? :xD
El que muestra el panel, o comorl? :rolleyes: Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 22 Junio 2013, 20:40 pm cual es el evento shown? :xD http://msdn.microsoft.com/en-us/library/system.windows.forms.form.shown.aspx Esta "la perdono", porque yo al principio también me rallaba mucho cuando intentaba manejar controles en el evento load, pero es fácil de entender... el "form load" es para dejar cargar la ventana (el form) y sus controles, si intentas obtener el valor de un panel que todavía no se ha instanciado en el designer pues...kaboom (Referencia a objeto no establecida como instancia de un objeto.). Saludos Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 22 Junio 2013, 20:51 pm Me parece que apuestas bien xD
Gracias a ese evento acabo de arreglar un bug de una excepción que llevaba tiempo ya jodiendo la marrana xD Vale ahora salta esa excepción: Citar System.NullReferenceException was unhandled HResult=-2147467261 Message=Referencia a objeto no establecida como instancia de un objeto. Source=IkillLauncher StackTrace: en WindowsApplication1.frmModpacks.frmModpacks_Shown(Object sender, EventArgs e) en C:\Users\Alvaro\Documents\IkillLauncher\IkillLauncher\frmModpacks.vb:línea 186 en System.Windows.Forms.Form.OnShown(EventArgs e) en System.Windows.Forms.Form.CallShownEvent() en System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme) en System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) en System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme) en System.Windows.Forms.Control.InvokeMarshaledCallbacks() en System.Windows.Forms.Control.WndProc(Message& m) en System.Windows.Forms.ScrollableControl.WndProc(Message& m) en System.Windows.Forms.ContainerControl.WndProc(Message& m) en System.Windows.Forms.Form.WndProc(Message& m) en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) en System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) en System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) en System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) en System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) en System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) en System.Windows.Forms.Application.Run(ApplicationContext context) en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) en WindowsApplication1.My.MyApplication.Main(String[] Args) en 17d14f5c-a337-4978-8281-53493378c1071.vb:línea 81 en System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) en System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) en Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() en System.Threading.ThreadHelper.ThreadStart_Context(Object state) en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) en System.Threading.ThreadHelper.ThreadStart() InnerException: Y no se porque no puedo declarar esto: Código
fuera de un evento. Es super raro, si lo declaro fuera me salta esa excepción, y si lo declaro dentro me salta esta otra que acabo de pegar. :-\ Gracias por perdonarmela, aunque bueno, yo ayudar más bien lo considero como dar el code hecho, ahora mismo, lo que estás haciendo es recomendarme que haga una cosa u otra, en mi opinión. :P Así es como me gustaría resolver mis dudas (las más sencillas) ;) Por cierto, linea 186: Código
Creo que seguimos en las mismas, por lo menos ahora ese form si se me abre. :P Título: Re: Crear PictureBox a través de una config .ini? Publicado por: Eleкtro en 22 Junio 2013, 21:21 pm Ahora que vuelvo a ver la línea de la división ya está todo claro: "/"
...te recuerda eso algo? PD: Bueno, no se si ese será el problema porque no se si la operación da como resultado un decimal o un entero, pero usa el otro operador... Saludos! Título: Re: Crear PictureBox a través de una config .ini? Publicado por: z3nth10n en 22 Junio 2013, 21:28 pm Pues a ver, ehm tuve encuenta lo que dijistes, pero por igual, cuando pulso el botón y me suelta un MsgBox con un numero entero y no un decimal :P
PD: Ya lo he comprobado, pero, nanai, no tiene nada que ver, :( A ver si me he enterado bien, los pcbs hay que crearlos desde Shown? Pues es super raro, me sigue diciendo que están sin crearse. Y lo más probable es que cuando demos con la clave me mates :xD |