elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 55
211  Programación / Programación Visual Basic / Re: NUMEROS ALEATORIOS EN VB en: 30 Agosto 2005, 01:19 am
Mira la recopilación de post interesantes, hay uno que se llama Generador de Números Aleatorios en VB.

Saludos.
212  Programación / Programación Visual Basic / Re: multilenguaje al estilo amsn? en: 30 Agosto 2005, 01:18 am
1. Agregas un nuevo archivo de recursos (Proyecto -> Agregar archivo de recursos)

2. En el explorador de proyectos vas a Documentos Relacionados y haces doble click en el archivo de recursos, entonces se abre el editor de recursos.

Debería aparecerte algo como esto:



3. En la barra de herramientas vas a ver un icono con las letras "abc", ese ícono corresponde a las tablas de cadenas, haces click y se te abre el editor de cadenas.

El editor de cadenas es una tabla compuesta por dos columnas como mínimo, la primera es el id. que es el identificador de recurso, con ese id se lo reconocerá dentro del programa en la llamada a LoadResString. La otra columna indica el idioma de la cadena. De manera predeterminada va a estar el idioma de la máquina en donde se ejecuta el VB.

4. El segundo icono de la barra de herramientas del editor de cadenas también tiene el icono "abc", esto te permite crear una nueva tabla de cadenas. Hace click y luego seleccionas el idioma que querés que tenga la nueva tabla de cadenas, luego comienzas a escribir las cadenas en ese idioma.

Cuando termines cerrás la tabla de cadenas y guardas el archivo de recursos desde el editor de recursos (icono del diskette :P).

Fijate que en la parte de Tabla de cadenas (String table ya que tengo el VB en inglés) te aparecen dos, la predeterminada (idioma de la pc) no especifica nada, en las demás especifica en qué idioma son.

Si le das doble click a cualquiera de las tablas te va a volver a abrir el editor de cadenas, pero en este caso no te aparecerán dos columnas sino tres, el ID, el idioma predeterminado y el otro que creaste, en este caso Inglés (Estados Unidos).

La siguiente imagen ilustra lo que digo (una imagen vale más que mil palabras xD)



Esto y la función LoadResString es lo único que necesitamos para hacer un idioma multilenguaje :). Fijate el Id., en este caso es 101, este identificador es único para las dos cadenas sólo que al llamar a LoadResString especificando el ID 101 devolverá la cadena que corresponda al idioma de la pc en donde se ejecuta, o de lo contrario la predeterminada (en mi caso es Español (Argentina)).

Entonces yendo al código sería así:

Código:
Private Sub Form_Load()
  lblCaption = LoadResString(101)
End Sub

En el caso anterior lo que hace es mostrar en la etiqueta lblCaption lo que se encuentra en la cadena con el ID 101, pero el idioma depende del que esté en la pc que se ejecute. Si el idioma de la máquina en donde se ejecuta es Inglés (Estados Unidos) entonces mostrará "This is a string", en el caso que el idioma no esté definido en la tabla de cadenas mostrará el predeterminado, es decir "Esto es una cadena".

Ahora sería incómodo cargar en cada control la cadena que le correponde, se haría un código muy largo pero eso se puede solucionar de una forma sencilla, y en realidad es algo muy útil cuando no se quiere andar agregando código cuando se agrega un control.

Se puede usar la propiedad Tag de cada control para almacenar el Id de recurso, y cuando se carga el formulario cargar todas las cadenas de cada control usando la colección Controls del formulario.

Por ejemplo, creamos 5 etiquetas no importa el nombre, a la propiedad Tag de cada una le ponemos 101, 102, 103, 104, 105 respectivamente. Luego en la tabla de cadenas escribimos las cadenas para cada una de esas etiquetas, siempre utilizando ese Identinficador.

Entonces usando el siguiente código al inicio del formulario cargará las cadenas automáticamente:

Código:
Private Sub Form_Load()
        Dim csControl

  For Each csControl In Controls
    If TypeOf csControl Is Label Then
      'Si el control es un control Label
      '
      If CStr(csControl.Tag) <> vbNullString Then
        'Si la propiedad tag no está vacía, es decir que contiene el id.
        '
        csControl.Caption = LoadResString(Val(csControl.Tag))
      End If
    End If
  Next
End Sub

Y de esta manera nunca más tendremos que agregar otro código, sólo especificar el id de cadena en la propiedad Tag de cada control Label que queramos. Si fuera un TextBox es casi lo mismo, pero supongo que te darás cuenta como hacerlo ;).

Saludos.
213  Programación / Programación Visual Basic / Re: Como transmitir webcam desde un server a su cliente en: 29 Agosto 2005, 04:42 am
Esos códigos trabajan a nivel de aplicación, es decir que lo que el sistema operativo haga internamente es ajeno a estas funciones. Por lo tanto si no funcionan es problema no del programa sino de la configuración del SO, quizá los drivers de la cam no están instalados correctamente o el sistema tiene algún conflicto con dicho hardware-

En cuanto a tu pregunta de si el código sirve o no, sí sirve.

Saludos.
214  Programación / Programación Visual Basic / Re: multilenguaje al estilo amsn? en: 29 Agosto 2005, 04:38 am
En VB es muy sencillo, creas un archivo de recursos y luego creas las tablas de cadenas para cada idioma.

Luego cargas las cadenas usando LoadResString y carga la cadena del idioma que tenga la máquina en donde se ejecuta el programa. Si el idioma de la computadora no está definido entonces usa el idioma del programa.

Ando por dial up así que no tengo mucho tiempo, en todo caso mañana pongo un ejemplo más claro.

Saludos.
215  Media / Juegos y Consolas / Re: Alianza en OGAME. elhacker.net te necesita!!! en: 28 Agosto 2005, 01:57 am
TruenoCaos, nadie te echó, la alianza se disolvió porque se fucionó con EHN, ahora podés enviar tu solicitud a EHN o a EHR, EHR es una nueva alianza en donde estamos los de antes.

Saludos.
216  Programación / Programación Visual Basic / Re: timer, variable y caja de texto. excesiva repetición en: 27 Agosto 2005, 12:24 pm
Lo que hace el código es verificar que el valor de vEntrada no sea igual al anterior, si no es igual al anterior entonces muestra la nueva entrada y guarda el valor en lLastValue para volver a repetir la operación.

CLng lo que hace es devolver un valor de tipo Long (entero de 32 bits), lo uso para asegurarme de que no haya errores de conversión de tipos de datos.

Saludos.
217  Programación / Programación Visual Basic / Re: sobreescrbir en: 27 Agosto 2005, 06:33 am
Abri el archivo en modo Append en lugar de Output, de esta forma escribe al final del archivo.

Saludos.
218  Programación / Programación Visual Basic / Re: timer, variable y caja de texto. excesiva repetición en: 27 Agosto 2005, 06:31 am
Para eso existen las variables estáticas. Y no hace falta usar select case si sólo va a mostrar lo que entra.

Código:
       Static lLastValue&

  If lLastValue <> vEntrada Then
    lLastValue = CLng(vEntrada)

    frmPrincipal.txtHistorial.Text = frmPrincipal.txtHistorial.Text & "valor " & vEntrada & vbCrLf
  End If

Saludos.
219  Programación / Programación Visual Basic / Re: Seleccionar una linea en un txtb0x en: 27 Agosto 2005, 05:12 am
Código:
Private Sub txtData_Click()
  On Error Resume Next
 
           Dim lPos1&, lPos2&

  lPos1 = InStrRev(txtData, vbCrLf, txtData.SelStart)
  lPos2 = InStr(txtData.SelStart, txtData, vbCrLf)
 
  If lPos1 <= 0 Then lPos1 = 1
  If lPos2 <= 0 Then lPos2 = Len(txtData)
 
  txtData.SelStart = lPos1 + 2
  txtData.SelLength = lPos2 - lPos1 - 2
End Sub

Suponiendo que txtData es un TextBox.

Saludos.
220  Programación / Programación Visual Basic / Re: [Winsock] problema buffer en: 27 Agosto 2005, 04:28 am
¿En dónde te da el error?
Páginas: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 55
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines