Autor
|
Tema: Me ayudarian a mejorar este codigo¿? (Leído 7,611 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 Integer Private Sub Form_Load() If App.PrevInstance = True Then MsgBox "El Programa ya se esta ejecutando", 0 + 48, "Error" End End If End Sub Private Sub pc_Click(Index As Integer) statuspc = i i = statuspc If Label(i).Caption = "DISPONIBLE" Then Unload principal registro.Show Else MsgBox "Elige otra computadora, está ya esta ocupada.", vbCritical, "Error" End If End Sub
registro.frm(Form2): Private Sub Form_Load() Command1.Enabled = False End Sub Private Sub datos_Change(Index As Integer) If datos(Index).Text <> "" Then Command1.Enabled = True Else Command1.Enabled = False End If End Sub Private Sub Command1_Click() MsgBox "Registrado. Disfruta tu estancia", vbInformation, "Registro exitoso" Call Ocuparpc 'Registro BD Call Limpiardatos Unload registro principal.Show End Sub Private Sub Command2_Click() Call Limpiardatos Unload registro principal.Show End Sub
funciones.bas(module1): Public Sub Limpiardatos() registro.datos(Index).Text = "" End Sub Function Bloquearpc() End Function Function Ocuparpc() For i = 0 To principal.Label(Index) principal.Label(i).Caption = "NO DISPONIBLE" Next i End 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 Integer running = App.PrevInstance If running <> 0 Then MsgBox "El Programa ya se esta ejecutando", 0 + 48, "News" End End If End Sub Private Sub pc1_Click() statuspc = 1 If Label1.Caption = "DISPONIBLE" Then Unload principal registro.Show Else MsgBox "Elige otra computadora, esta ya esta ocupada =(", vbCritical, "Error" End If End Sub Private Sub pc2_Click() statuspc = 2 If Label2.Caption = "DISPONIBLE" Then Unload principal registro.Show Else MsgBox "Elige otra computadora, esta ya esta ocupada =(", vbCritical, "Error" End If End Sub Private Sub pc3_Click() statuspc = 3 If Label3.Caption = "DISPONIBLE" Then Unload principal registro.Show Else MsgBox "Elige otra computadora, esta ya esta ocupada =(", vbCritical, "Error" End If End Sub Private Sub pc4_Click() statuspc = 4 If Label4.Caption = "DISPONIBLE" Then Unload principal registro.Show Else MsgBox "Elige otra computadora, esta ya esta ocupada =(", vbCritical, "Error" End If End Sub Private Sub pc5_Click() statuspc = 5 If Label5.Caption = "DISPONIBLE" Then Unload principal registro.Show Else MsgBox "Elige otra computadora, esta ya esta ocupada =(", vbCritical, "Error" End If End Sub
registro.frm(Form2): Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Form_Load() Command1.Enabled = False End Sub Private Sub apellidop_Change() If apellidop.Text <> "" And apellidom.Text <> "" And nombre.Text <> "" And cuenta.Text <> "" Then Command1.Enabled = True Else Command1.Enabled = False End If End Sub Private Sub apellidom_Change() If apellidop.Text <> "" And apellidom.Text <> "" And nombre.Text <> "" And cuenta.Text <> "" Then Command1.Enabled = True Else Command1.Enabled = False End If End Sub Private Sub nombre_Change() If apellidop.Text <> "" And apellidom.Text <> "" And nombre.Text <> "" And cuenta.Text <> "" Then Command1.Enabled = True Else Command1.Enabled = False End If End Sub Private Sub cuenta_Change() If apellidop.Text <> "" And apellidom.Text <> "" And nombre.Text <> "" And cuenta.Text <> "" Then Command1.Enabled = True Else Command1.Enabled = False End If End Sub Private Sub Command1_Click() MsgBox "Registrado. Disfruta tu estancia", vbInformation, "Registro exitoso" Sleep 250 Call Ocuparpc Sleep 250 'Registro BD Sleep 250 apellidop.Text = "" apellidom.Text = "" nombre.Text = "" cuenta.Text = "" Sleep 250 Unload registro principal.Show End Sub Private Sub Command2_Click() apellidop.Text = "" apellidom.Text = "" nombre.Text = "" cuenta.Text = "" Sleep 250 Unload registro principal.Show End Sub
funciones.bas(module1): Function Limpiaregistro() End Function Function Bloquearpc() End Function Function Ocuparpc() Select Case principal.statuspc Case 1 principal.Label1.Caption = "NO DISPONIBLE" Case 2 principal.Label2.Caption = "NO DISPONIBLE" Case 3 principal.Label3.Caption = "NO DISPONIBLE" Case 4 principal.Label4.Caption = "NO DISPONIBLE" Case 5 principal.Label5.Caption = "NO DISPONIBLE" End Select End 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.rarDe 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 i End 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 boolean public 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 i End sub
Otra forma de IF(), es lo mismo que arriba dim statuspc(48) as boolean public sub Ocuparpc() For i = 0 To ubound(statuspc) principal.Label(i).Caption = iif(statuspc(i),"DISPONIBLE","NO DISPONIBLE") Next i End 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 boolean public 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 i End sub
Otra forma de IF(), es lo mismo que arriba dim statuspc(48) as boolean public sub Ocuparpc() For i = 0 To ubound(statuspc) principal.Label(i).Caption = iif(statuspc(48),"DISPONIBLE","NO DISPONIBLE") Next i End 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,335
|
16 Febrero 2012, 15:59 pm
por NeoB
|
|
|
(SOLUCIONADO) Se puede mejorar este FOR?
.NET (C#, VB.NET, ASP)
|
Eleкtro
|
4
|
2,953
|
27 Noviembre 2012, 09:51 am
por Eleкtro
|
|
|
¿Me ayudarían a corregir este código?
Programación C/C++
|
AnungUnRama
|
6
|
3,660
|
9 Mayo 2013, 16:30 pm
por leosansan
|
|
|
Mejorar este código
.NET (C#, VB.NET, ASP)
|
Meta
|
1
|
2,296
|
12 Diciembre 2015, 21:56 pm
por kub0x
|
|
|
Se puede mejorar este codigo¿?
Programación C/C++
|
trioper
|
4
|
2,411
|
29 Abril 2017, 12:16 pm
por MAFUS
|
|