| 
	
		|  Autor | Tema: Me ayudarian a mejorar este codigo¿?  (Leído 8,596 veces) |  
	| 
			| 
					
						| Murd3r3r 0f daT4 
								
								 Desconectado 
								Mensajes: 31
								
								 
								...
								
								
								
								
								
								     | 
 
Bueno ando trabajando en un proyecto para mi escuela, la idea es que hay un centro de computo con 50 PCs, la primera parte del proyecto esta enfocada a la comodidad de los alumnos.  Actualmente llegan, tienen que preguntar a la encargada si hay PCs disponibles y se anotan en un cuaderno, la idea es que haya una PC donde llegen y se muestren las PCs disponibles, hagan doble click en la que se quieren registrar, llenen un formulario. Al hacer click en Registar! se comprobará que sus apellidos y nombre coincidan con el de su N° de cuenta de ser así registra el N° de cuenta, N° de PC y hora en que se registro. Bueno aqui pongo los codigos: UPDATE 1: Ya empece a manejar matrices, pero aun no funciona como debería =S principal.frm(Form1): Public statuspc As IntegerPrivate Sub Form_Load()If App.PrevInstance = True ThenMsgBox "El Programa ya se esta ejecutando", 0 + 48, "Error"EndEnd IfEnd SubPrivate Sub pc_Click(Index As Integer)statuspc = ii = statuspcIf Label(i).Caption = "DISPONIBLE" ThenUnload principalregistro.ShowElseMsgBox "Elige otra computadora, está ya esta ocupada.", vbCritical, "Error"End IfEnd Sub 
 registro.frm(Form2): Private Sub Form_Load()Command1.Enabled = FalseEnd SubPrivate Sub datos_Change(Index As Integer)If datos(Index).Text <> "" ThenCommand1.Enabled = TrueElseCommand1.Enabled = FalseEnd IfEnd SubPrivate Sub Command1_Click()MsgBox "Registrado. Disfruta tu estancia", vbInformation, "Registro exitoso" Call Ocuparpc 'Registro BD Call Limpiardatos Unload registroprincipal.ShowEnd SubPrivate Sub Command2_Click()Call Limpiardatos Unload registroprincipal.ShowEnd Sub 
 funciones.bas(module1): Public Sub Limpiardatos()registro.datos(Index).Text = ""End SubFunction Bloquearpc() End FunctionFunction Ocuparpc()For i = 0 To principal.Label(Index)principal.Label(i).Caption = "NO DISPONIBLE"Next iEnd Function  
 Como se podran cuenta soy muy nuevo en visual basic   , aparte aquí les dejo el source:http://rapidshare.com/files/291290861/Centro_de_computo.rar  ----> Actualizado al Update 1   De ante mano, mil gracias por su ayuda y consejos!!
 
 |  
						| 
								|  |  
								| « Última modificación: 10 Octubre 2009, 22:59 pm por Murd3r3r 0f daT4 » |  En línea | 
 
 "Nothing last forever...." |  |  |  | 
			| 
					
						| BlackZeroX 
								Wiki  Desconectado 
								Mensajes: 3.158
								
								 
								I'Love...!¡.
								
								
								
								
								
								     | 
 
Para yo los pics del principal.frm(Form1)  usaria una matriz de controles.
 Yo en tu lugar en el    registro.frm(Form2)    usaria una clase para subclasificar todo esos eventos  _Change o mas facil aun una matriz de controles.
 Quitaria los Sleep()  que de nada sirven solo estan de màs hasta donde puedo ver.
 
 Solo te digo lo que veo a simple vista de lo que posteaste.
 
 un saludo
 
 Dulces Lunas!¡.
 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 The Dark Shadow is my passion. |  |  |  | 
			| 
					
						| Murd3r3r 0f daT4 
								
								 Desconectado 
								Mensajes: 31
								
								 
								...
								
								
								
								
								
								     | 
 
Para yo los pics del principal.frm(Form1)  usaria una matriz de controles.
 Yo en tu lugar en el    registro.frm(Form2)    usaria una clase para subclasificar todo esos eventos  _Change o mas facil aun una matriz de controles.
 Quitaria los Sleep()  que de nada sirven solo estan de màs hasta donde puedo ver.
 
 Solo te digo lo que veo a simple vista de lo que posteaste.
 
 un saludo
 
 Dulces Lunas!¡.
 
 Yo tomaré en cuenta cada idea, solo que las tengo que investigar porque soy muy newbie en, programación y no entendí que quisiste decir! |  
						| 
								|  |  
								|  |  En línea | 
 
 "Nothing last forever...." |  |  |  | 
			| 
					
						| agus0 
								 
								
								 Desconectado 
								Mensajes: 360
								
								   | 
 
Bueno ando trabajando en un proyecto para mi escuela, la idea es que hay un centro de computo con 50 PCs, la primera parte del proyecto esta enfocada a la comodidad de los alumnos.  Actualmente llegan, tienen que preguntar a la encargada si hay PCs disponibles y se anotan en un cuaderno, la idea es que haya una PC donde llegen y se muestren las PCs disponibles, hagan doble click en la que se quieren registrar, llenen un formulario. Al hacer click en Registar! se comprobará que sus apellidos y nombre coincidan con el de su N° de cuenta de ser así registra el N° de cuenta, N° de PC y hora en que se registro. Bueno aqui pongo los codigos: principal.frm(Form1): Public statuspc As Integer Private Sub Form_Load()Dim running As Integerrunning = App.PrevInstanceIf running <> 0 ThenMsgBox "El Programa ya se esta ejecutando", 0 + 48, "News"EndEnd IfEnd SubPrivate Sub pc1_Click()statuspc = 1If Label1.Caption = "DISPONIBLE" ThenUnload principalregistro.ShowElseMsgBox "Elige otra computadora, esta ya esta ocupada =(", vbCritical, "Error"End IfEnd SubPrivate Sub pc2_Click()statuspc = 2If Label2.Caption = "DISPONIBLE" ThenUnload principalregistro.ShowElseMsgBox "Elige otra computadora, esta ya esta ocupada =(", vbCritical, "Error"End IfEnd SubPrivate Sub pc3_Click()statuspc = 3If Label3.Caption = "DISPONIBLE" ThenUnload principalregistro.ShowElseMsgBox "Elige otra computadora, esta ya esta ocupada =(", vbCritical, "Error"End IfEnd SubPrivate Sub pc4_Click()statuspc = 4If Label4.Caption = "DISPONIBLE" ThenUnload principalregistro.ShowElseMsgBox "Elige otra computadora, esta ya esta ocupada =(", vbCritical, "Error"End IfEnd SubPrivate Sub pc5_Click()statuspc = 5If Label5.Caption = "DISPONIBLE" ThenUnload principalregistro.ShowElseMsgBox "Elige otra computadora, esta ya esta ocupada =(", vbCritical, "Error"End IfEnd Sub 
 registro.frm(Form2): Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Private Sub Form_Load()Command1.Enabled = FalseEnd SubPrivate Sub apellidop_Change()If apellidop.Text <> "" And apellidom.Text <> "" And nombre.Text <> "" And cuenta.Text <> "" ThenCommand1.Enabled = TrueElseCommand1.Enabled = FalseEnd IfEnd SubPrivate Sub apellidom_Change()If apellidop.Text <> "" And apellidom.Text <> "" And nombre.Text <> "" And cuenta.Text <> "" ThenCommand1.Enabled = TrueElseCommand1.Enabled = FalseEnd IfEnd SubPrivate Sub nombre_Change()If apellidop.Text <> "" And apellidom.Text <> "" And nombre.Text <> "" And cuenta.Text <> "" ThenCommand1.Enabled = TrueElseCommand1.Enabled = FalseEnd IfEnd SubPrivate Sub cuenta_Change()If apellidop.Text <> "" And apellidom.Text <> "" And nombre.Text <> "" And cuenta.Text <> "" ThenCommand1.Enabled = TrueElseCommand1.Enabled = FalseEnd IfEnd SubPrivate Sub Command1_Click()MsgBox "Registrado. Disfruta tu estancia", vbInformation, "Registro exitoso"Sleep 250Call OcuparpcSleep 250'Registro BDSleep 250apellidop.Text = ""apellidom.Text = ""nombre.Text = ""cuenta.Text = ""Sleep 250Unload registroprincipal.ShowEnd SubPrivate Sub Command2_Click()apellidop.Text = ""apellidom.Text = ""nombre.Text = ""cuenta.Text = ""Sleep 250Unload registroprincipal.ShowEnd Sub 
 funciones.bas(module1): Function Limpiaregistro() End FunctionFunction Bloquearpc() End FunctionFunction Ocuparpc()Select Case principal.statuspcCase 1principal.Label1.Caption = "NO DISPONIBLE"Case 2principal.Label2.Caption = "NO DISPONIBLE"Case 3principal.Label3.Caption = "NO DISPONIBLE"Case 4principal.Label4.Caption = "NO DISPONIBLE"Case 5principal.Label5.Caption = "NO DISPONIBLE"End SelectEnd Function 
 Como se podran cuenta soy muy nuevo en visual basic   , aparte aquí les dejo el source:http://rapidshare.com/files/288825115/Centro_de_computo.rar De ante mano, mil gracias por su ayuda y consejos!!Yo le cambiaria alguinas cosas. pero me quedo una duda vos sos el que publico de como cambiar a "NO DISPONIBLE" en www.forosdelweb.com  por que ese cdigo es muy similar (Una parte) a la que le aonsegue a un usuario de FDW jaja |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| agus0 
								 
								
								 Desconectado 
								Mensajes: 360
								
								   | 
 
La verdad mire solo las primeras lineas por que ahora me tengo que ir a estudiar a simple vista yo reemplazaria esto Private Sub Form_Load()Dim running As Integer
 running = App.PrevInstance
 If running <> 0 Then
 MsgBox "El Programa ya se esta ejecutando", 0 + 48, "News"
 End
 End If
 End Sub
 
por esto que es lo mismo pero mas corto; Private Sub Form_Load()If App.PrevInstance = True Then
 MsgBox "El Programa ya se esta ejecutando", 0 + 48, "News"
 End
 End If
 End Sub
 
Ba solo ahorras 2 lineas pero me parece innecesari crear esa variable... |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| seba123neo | 
 
Hola, ese codigo se puede achicar un 80 %, creando matrices de controles y funciones, si no sabes lo que es eso, entonces ya no es parte nuestra enseñar eso que seria lo basico, te vas a tener que leer inevitablemente un manual de visual basic.
 saludos.
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Murd3r3r 0f daT4 
								
								 Desconectado 
								Mensajes: 31
								
								 
								...
								
								
								
								
								
								     | 
 
La verdad mire solo las primeras lineas por que ahora me tengo que ir a estudiar a simple vista yo reemplazaria esto Private Sub Form_Load()Dim running As Integer
 running = App.PrevInstance
 If running <> 0 Then
 MsgBox "El Programa ya se esta ejecutando", 0 + 48, "News"
 End
 End If
 End Sub
 
por esto que es lo mismo pero mas corto; Private Sub Form_Load()If App.PrevInstance = True Then
 MsgBox "El Programa ya se esta ejecutando", 0 + 48, "News"
 End
 End If
 End Sub
 
Ba solo ahorras 2 lineas pero me parece innecesari crear esa variable...Ok, tienes toda la razón! @agus0 Si ese era yo!! Hola, ese codigo se puede achicar un 80 %, creando matrices de controles y funciones, si no sabes lo que es eso, entonces ya no es parte nuestra enseñar eso que seria lo basico, te vas a tener que leer inevitablemente un manual de visual basic.
 saludos.
 
 Hoy empece a leer sobre matrices!! Vere que más hago! |  
						| 
								|  |  
								|  |  En línea | 
 
 "Nothing last forever...." |  |  |  | 
			| 
					
						| Murd3r3r 0f daT4 
								
								 Desconectado 
								Mensajes: 31
								
								 
								...
								
								
								
								
								
								     | 
 
Ya estudiando y aplicando matrices ya mejoró, pero tengo una duda como quedaría esta parte sobre todo: principal.Label(1 To 48).Caption = "NO DISPONIBLE" 
 El codigo ya me quedo así:
 
 
 Function Ocuparpc()    For i = 0 To statuspc(48)        If i = statuspc(48) Then            principal.Label(1 To 48).Caption = "NO DISPONIBLE"        End If    Next iEnd Function 
 Esa aprte que comente arriba no funciona ni idea de como hacerla =S |  
						| 
								|  |  
								| « Última modificación:  6 Octubre 2009, 05:22 am por Murd3r3r 0f daT4 » |  En línea | 
 
 "Nothing last forever...." |  |  |  | 
			| 
					
						| BlackZeroX 
								Wiki  Desconectado 
								Mensajes: 3.158
								
								 
								I'Love...!¡.
								
								
								
								
								
								     | 
 
Antes que nada debes considerar 49 Estados ya que de 0-48 hay 49 Una recomendacion statuspc() ponlo en estado boleano o tipo boolean dim statuspc(48) as booleanpublic sub Ocuparpc()    For i = 0 To ubound(statuspc)        If statuspc(i)  Then            principal.Label(i).Caption = "DISPONIBLE"        else            principal.Label(i).Caption = "NO DISPONIBLE"        End If    Next iEnd sub 
 Otra forma de IF(), es lo mismo que arriba dim statuspc(48) as booleanpublic sub Ocuparpc()    For i = 0 To ubound(statuspc)        principal.Label(i).Caption = iif(statuspc(i),"DISPONIBLE","NO DISPONIBLE")    Next iEnd sub 
 P.D.: Usa function para procesar informacion y devolver un valor y Sub para realizar procesos sin devolver ningun valor por medio del mismo. Usa private, public, friend segùn se requiera, pero declaralos, estos definen el accceso a dichos procesos/funciones desde exterior, se comprende que si no son declarados seria private por default pero por prioridad seria mejor derarlos. Dulces Lunas!¡. |  
						| 
								|  |  
								| « Última modificación:  6 Octubre 2009, 07:31 am por ░▒▓BlackZeroҖ▓▒░ » |  En línea | 
 
 The Dark Shadow is my passion. |  |  |  | 
			| 
					
						| Murd3r3r 0f daT4 
								
								 Desconectado 
								Mensajes: 31
								
								 
								...
								
								
								
								
								
								     | 
 
Antes que nada debes considerar 49 Estados ya que de 0-48 hay 49 Una recomendacion statuspc() ponlo en estado boleano o tipo boolean dim statuspc(48) as booleanpublic sub Ocuparpc()    For i = 0 To ubound(statuspc)        If statuspc(48)  Then            principal.Label(i).Caption = "DISPONIBLE"        else            principal.Label(i).Caption = "NO DISPONIBLE"        End If    Next iEnd sub 
 Otra forma de IF(), es lo mismo que arriba dim statuspc(48) as booleanpublic sub Ocuparpc()    For i = 0 To ubound(statuspc)        principal.Label(i).Caption = iif(statuspc(48),"DISPONIBLE","NO DISPONIBLE")    Next iEnd sub 
 P.D.: Usa function para procesar informacion y devolver un valor y Sub para realizar procesos sin devolver ningun valor por medio del mismo. Usa private, public, friend segùn se requiera, pero declaralos, estos definen el accceso a dichos procesos/funciones desde exterior, se comprende que si no son declarados seria private por default pero por prioridad seria mejor derarlos. Dulces Lunas!¡.Pues mira que use varios codigos así pero siempre me da el mismo error =S "Method or data member not found"  y me marca esta zona: .Label |  
						| 
								|  |  
								|  |  En línea | 
 
 "Nothing last forever...." |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Ayuda a mejorar código. C sobre Linux. Programación C/C++
 | NeoB | 2 | 2,667 |  16 Febrero 2012, 15:59 pm por NeoB
 |  
						|   |   | (SOLUCIONADO) Se puede mejorar este FOR? .NET (C#, VB.NET, ASP)
 | Eleкtro | 4 | 3,257 |  27 Noviembre 2012, 09:51 am por Eleкtro
 |  
						|   |   | ¿Me ayudarían a corregir este código? Programación C/C++
 | AnungUnRama | 6 | 4,364 |  9 Mayo 2013, 16:30 pm por leosansan
 |  
						|   |   | Mejorar este código .NET (C#, VB.NET, ASP)
 | Meta | 1 | 2,614 |  12 Diciembre 2015, 21:56 pm por kub0x
 |  
						|   |   | Se puede mejorar este codigo¿? Programación C/C++
 | trioper | 4 | 2,841 |  29 Abril 2017, 12:16 pm por MAFUS
 |    |