Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: proteo1 en 1 Mayo 2008, 12:39 pm



Título: Su consejo
Publicado por: proteo1 en 1 Mayo 2008, 12:39 pm
Hola a todos de nuevo yo :D

bueno aqui me tienen de nuevo con una duda, estoy realizando un sistema de oficina ya ven de esos tediosos...

mi pregunta es, que les parece este codigo:

Aqui el MDIForm1
Contiene: Command1, Command2, Label1 y Timer1
Código
  1. Option Explicit
  2.  
  3. Private Sub MDIForm_Load()
  4. SaveSetting "Probando", "Prueba", "Numero", ""
  5. Form1.Show
  6. Form2.Show
  7. Form2.Show
  8. End Sub
  9.  
  10. Private Sub MDIForm_Unload(Cancel As Integer)
  11. DeleteSetting "Probando", "Prueba"
  12. End Sub
  13.  

Aqui del Form1 (Child)
Contiene: Command1, Command2, Label1 y Timer1
Código
  1. Option Explicit
  2.  
  3. Private Sub Command1_Click()
  4. Do While GetSetting("Probando", "Prueba", "Numero") <> ""
  5.  DoEvents
  6. Loop
  7. SaveSetting "Probando", "Prueba", "Numero", "1"
  8. Command1.Enabled = False
  9. Command2.Enabled = True
  10. End Sub
  11.  
  12. Private Sub Command2_Click()
  13. SaveSetting "Probando", "Prueba", "Numero", ""
  14. Command1.Enabled = True
  15. Command2.Enabled = False
  16. End Sub
  17.  
  18. Private Sub Form_Load()
  19. Timer1.Interval = 500
  20. End Sub
  21.  
  22. Private Sub Timer1_Timer()
  23. Label1.Caption = Now
  24. End Sub

Y aca del form2 (Child)
Contiene: Command1, Command2, Label1 y Timer1
Código
  1. Option Explicit
  2.  
  3. Private Sub Command1_Click()
  4. Do While GetSetting("Probando", "Prueba", "Numero") <> ""
  5.  DoEvents
  6. Loop
  7. SaveSetting "Probando", "Prueba", "Numero", "1"
  8. Command1.Enabled = False
  9. Command2.Enabled = True
  10. End Sub
  11.  
  12. Private Sub Command2_Click()
  13. SaveSetting "Probando", "Prueba", "Numero", ""
  14. Command1.Enabled = True
  15. Command2.Enabled = False
  16. End Sub
  17.  
  18. Private Sub Form_Load()
  19. Timer1.Interval = 500
  20. End Sub
  21.  
  22. Private Sub Timer1_Timer()
  23. Label1.Caption = Now
  24. End Sub

Si se fijan el Form1 y Form2 tienen el mismo codigo.

Espero sus opiniones, el uso de esto es que para que haga un
procedimiento X lo haga hasta que se termine en otro o cuando
se de clic o termine una funcion, ejemplo si en ambos codigos quiero usar el

Open Archivo as append #1

Se que puedo usar el FREEFILE pero solo que no lo quiero usar.


Título: Re: Su consejo
Publicado por: cobein en 1 Mayo 2008, 12:54 pm
Open Archivo For Append As #1

:/ Cual es la idea de esto?....


Título: Re: Su consejo
Publicado por: proteo1 en 1 Mayo 2008, 13:01 pm
Open Archivo For Append As #1

:/ Cual es la idea de esto?....

es por poner un ejemplo

no es que precisamente tenga que ir ello, sino que quiero que una funcion
se detenga, hasta qe la otra haya terminado, algo asi como un semaforo
que continue hasta que la otra termine

algo asi

Código
  1. Public Funcion Numero as integer
  2. Do While GetSetting("Probando", "Prueba", "Numero") <> ""
  3.  DoEvents
  4. Loop
  5. SaveSetting "Probando", "Prueba", "Numero", "1"
  6. Dim Consecutivo  as integer
  7. Consecutivo = val(Getsetting("Probando", "Prueba", "Consecutivo"))
  8. SaveSetting "Probando", "Prueba", "Consecutivo", cstr(consecutivo+1)
  9. SaveSetting "Probando", "Prueba", "Numero", ""
  10. Numero = Consecutivo
  11. End Sub

para que no se repita el mismo numero por si es solicitado al mismo
tiempo determinado numero de veces.


Título: Re: Su consejo
Publicado por: cobein en 1 Mayo 2008, 13:20 pm
Sigo sin estar completamente seguro pero no seria mas facil usar una variable publica?


Título: Re: Su consejo
Publicado por: proteo1 en 1 Mayo 2008, 13:31 pm
Sigo sin estar completamente seguro pero no seria mas facil usar una variable publica?

en vez de usar el GetSetting

algo asi...

Dim Pasa as Integer

Public Funcion Numero as integer
 Do While Pasa <> 1
  DoEvents
 Loop
 Pasa = 1
 Dim Consecutivo  as integer
 Consecutivo = val(Getsetting("Probando", "Prueba", "Consecutivo"))
 SaveSetting "Probando", "Prueba", "Consecutivo", cstr(consecutivo+1)
 Pasa = 0
 Numero = Consecutivo
End Sub


Título: Re: Su consejo
Publicado por: vivachapas en 1 Mayo 2008, 15:36 pm
Citar
Código
  1. Private Sub MDIForm_Load()
  2. SaveSetting "Probando", "Prueba", "Numero", ""
  3. Form1.Show
  4. Form2.Show
  5. Form2.Show
  6. End Sub
  7.  

mmm cargas dos veces el form2 :S

el resto para mi es chino... no entiendo q quieres hacer... :P

SALUDOS


Título: Re: Su consejo
Publicado por: seba123neo en 1 Mayo 2008, 23:21 pm
Hola,desde el primer post no entiendo que queres hacer,si queres que te analizemos el programa que estas haciendo ,es mejor que lo subas asi lo vemos mejor,porque asi poniendo el codigo ,tenemos que crearlo nosotros a ver como funciona,y eso es perdida de tiempo...

saludos.