| |
|
61
|
Comunicaciones / Mensajería / Breve explicación sobre formatos de fuente en skype
|
en: 20 Enero 2012, 23:59 pm
|
EDIT: AVISO, esto ya no funciona con las nuevas versiones de skype. Si probáis y no funciona, probablemente sea porque tenéis una versión más reciente que con la que se hacía esto.Bueno, escribo este breve tutorial para comentar una característica que encontré en skype no hace mucho, y es que te permite formatear el texto de una forma fácil y cómoda. Lo primero de todo, debemos estar ligeramente familiarizados con html... ya que usaremos estas etiquetas para obtener los diferentes formatos. Seguramente ya haya bastantes tutoriales e información sobre html por el foro, así que reduciré esta parte al mínimo y pasaré a la parte práctica: Pequeño resumen: Tamaño: <font size="tamaño"></font> Color: <font color="#color"></font> Negrita: <b></b> Cursiva: <i></i> Subrayado: <u></u> Parpadeo: <blink></blink> El truco está en colocar las etiquetas a ambos lados del mensaje que vamos a enviar, por ejemplo, tal que así: Texto tamaño 12, color morado y en negrita: <b><font size="12"><font color="#990099">MENSAJE DE TEXTO</font></b> Texto parpadeante de color rojo y cursivo: <blink><i><font color="#FF0000">MENSAJE DE TEXTO</font></i></blink> La cuestión es combinar las etiquetas y cerrarlas en el orden opuesto en el que las abrimos... Ahora, para que el mensaje se envíe con el formato, NO debemos pulsar enter. Si lo hacemos así, simplemente enviaremos todo, sin que se aplique ningún formato. Lo que tenemos que hacer, es mantener pulsado Control+Mayus, y hacer click en el botón de enviar mensaje. Esto hará que el mensaje se muestre en el formato deseado. NOTA: Si el código está mal puesto, el mensaje no se enviará. Espero que os haya sido de utilidad esta breve explicación de cómo dar formato a vuestros mensajes de skype, un saludo!
|
|
|
|
|
62
|
Programación / Bases de Datos / [Solucionado] Matriz de Controles en Oracle Forms Developer?
|
en: 13 Enero 2012, 12:37 pm
|
|
Hola, estoy intentando hacer un programa en el que se introduzcan varios números en diferentes elementos de texto en una ventana de oracle forms, para que me los ordene en orden ascendente o descendente dependiendo de si pulso en un elemento botón o en otro, hasta ahí se hacerlo todo, pero cuando la cantidad de números aumenta, el código se vuelve un tanto pesado ya que los elementos son individuales, no los sé introducir como una matriz de controles...
¿Hay alguna manera de insertar matrices de controles, tales como las que se pueden utilizar en Visual Basic, pero en Oracle Forms Developer? Si es así, ¿cómo? y ¿de qué manera las utilizo después?
Un saludo y muchas gracias por adelantado.
|
|
|
|
|
63
|
Programación / Programación Visual Basic / Randomize Timer?
|
en: 3 Noviembre 2011, 12:08 pm
|
Hola, en Basic, siempre he usado Randomize Timer para obtener un resultado lo más parecido a algo verdaderamente aleatorio... En el juego que estoy desarrollando, pensé en utilizar lo mismo en Visual Basic para generar un conjunto de naves aleatorias que atacarían a la flota del jugador. Sin Randomize Timer funciona, pero siempre me genera las mismas naves así que realmente no me vale. Ésta es la parte del código que tengo hecha para generar dichas naves y cargarlas en pantalla: Cabecera del Frame: Option Explicit
Dim enemy1 As Ship Dim enemy2 As Ship Dim enemy3 As Ship Dim enemy4 As Ship Dim enemy5 As Ship
Randomize Timer Sub que genera una flota enemiga aleatoria: -Storage.shipdb contiene tanto los nombres de naves como las rutas de las imágenes a cargar, sus stats etc. Haré que esta pseudo-base de datos se cargue desde ficheros luego, de momento esto es experimental. (Así que no nos centremos en mi chapuza :3) -Si necesitáis todo el código para orientarme, decídmelo y paso también el módulo storage que contiene todas las estructuras, arrays, etc... No pongo más de momento, ya que mi única duda es sobre cómo utilizar Randomize Timer correctamente. Private Sub enemyload() Dim dice As Integer If Storage.level > 10 Then dice = Int((Rnd * 5) + 1) Else dice = Int((Rnd * 3) + 1) End If
Select Case (dice) Case 1 enemy1.exists = True enemy2.exists = False enemy3.exists = False enemy4.exists = False enemy5.exists = False Case 2 enemy1.exists = True enemy2.exists = True enemy3.exists = False enemy4.exists = False enemy5.exists = False Case 3 enemy1.exists = True enemy2.exists = True enemy3.exists = True enemy4.exists = False enemy5.exists = False Case 4 enemy1.exists = True enemy2.exists = True enemy3.exists = True enemy4.exists = True enemy5.exists = False Case 5 enemy1.exists = True enemy2.exists = True enemy3.exists = True enemy4.exists = True enemy5.exists = True End Select 'this will have to be modified as it is just for combat alpha testing 'in the way it currently is, it only supports pirate ship load If enemy1.exists Then If Storage.level > 10 Then dice = Int((Rnd * 6) + 6) enemy1.shipModel = Storage.shipdb(dice, 0) Else dice = Int((Rnd * 3) + 6) enemy1.shipModel = Storage.shipdb(dice, 0) End If Else enemy1.shipModel = Storage.shipdb(0, 0) img_enemy1.Visible = False End If img_enemy1.Picture = LoadPicture(App.Path & Storage.shipdb(dice, 2)) If enemy2.exists Then If Storage.level > 10 Then dice = Int((Rnd * 6) + 6) enemy2.shipModel = Storage.shipdb(dice, 0) Else dice = Int((Rnd * 3) + 6) enemy2.shipModel = Storage.shipdb(dice, 0) End If Else enemy2.shipModel = Storage.shipdb(0, 0) img_enemy2.Visible = False End If img_enemy2.Picture = LoadPicture(App.Path & Storage.shipdb(dice, 2)) If enemy3.exists Then dice = Int((Rnd * 3) + 6) enemy3.shipModel = Storage.shipdb(dice, 0) Else enemy3.shipModel = Storage.shipdb(0, 0) img_enemy3.Visible = False End If img_enemy3.Picture = LoadPicture(App.Path & Storage.shipdb(dice, 2)) If enemy4.exists Then dice = Int((Rnd * 3) + 6) enemy4.shipModel = Storage.shipdb(dice, 0) Else enemy4.shipModel = Storage.shipdb(0, 0) img_enemy4.Visible = False End If img_enemy4.Picture = LoadPicture(App.Path & Storage.shipdb(dice, 2)) If enemy5.exists Then dice = Int((Rnd * 3) + 6) enemy5.shipModel = Storage.shipdb(dice, 0) Else enemy5.shipModel = Storage.shipdb(0, 0) img_enemy5.Visible = False End If img_enemy5.Picture = LoadPicture(App.Path & Storage.shipdb(dice, 2)) End Sub El problema es que me da un error cuando intento ejecutarlo: El procedimiento externo no es válido. Marcándome la palabra Timer de la linea: Se puede usar esta función en VB? Si es así, cómo puedo hacerlo? Muchas gracias por adelantado.
|
|
|
|
|
64
|
Programación / Programación Visual Basic / Cargar nueva imagen in picturebox.
|
en: 27 Octubre 2011, 00:56 am
|
Hola, me he estado informando de cómo cargar una nueva imagen en un picturebox... ya encontré que el comando sería el siguiente: picturebox1.picture = LoadPicture ("ruta del archivo")Mi problema esta vez es que no consigo que el VB me reconozca la ruta como válida. La ruta absoluta del archivo no funciona, por ejemplo: pic_ship.picture = LoadPicture ("C:\Program Files\SpaceRPG\Ships\scout mk I.gif")Me da el siguiente error: Error '76' en tiempo de ejecución: No se ha encontrado la ruta: 'C:\Program Files\SpaceRPG\Ships\scout mk I.gif' Qué es lo que estoy haciendo mal esta vez?
|
|
|
|
|
65
|
Programación / Programación Visual Basic / Archivos que existen pero no
|
en: 25 Octubre 2011, 23:51 pm
|
|
Tengo un problema con el editor, y es que resulta que guardé un frame y un módulo en el directorio en el que guardo todas las cosas del proyecto... y ocurre la siguiente macabrada que no llego a comprender: - Si cierro el editor, y hago doble click en el proyecto (.vbp), el frame y el módulo están ahí. - Si doy click derecho a cualquiera de los dos y doy a "guardar como", me aparecen como archivos existentes en dicho directorio en la ventana de "Guardar Como". - Si voy al directorio con el explorador de windows, los archivos no salen. - Si guardo dichos archivos con cualquier otro nombre, ocurre lo mismo
¿He perdido 2 horas de trabajo? ¿Esos archivos son invisibles por alguna razón? En resumen, ¿qué demonios está pasando ahí dentro? ¿Hay alguna manera de arreglarlo?
Nótese que mis otros frames son perfectamente visibles desde el explorador de windows.
Estoy usando Windows 7 Home Premium El editor es VB6.
EDIT: Mirar abajo, más dudas y problemas han surgido.
|
|
|
|
|
66
|
Programación / Programación Visual Basic / Abrir website con un botón.
|
en: 21 Octubre 2011, 13:16 pm
|
|
Saludos!
Estoy intentando hacer mi primer juego en basic, ya tengo hecha la interfaz básica y un par the chapuzas más... pero ahora mismo lo que me interesa es lo siguiente: Ahora mismo estaba a punto de terminar la típica ventanita de "about", y me gustaría poner un par de botones que abriesen el navegador para permitir visitar mis dos websites.
Es posible? Si es así, cómo sería la sintaxis del comando?
Muchas gracias por adelantado.
|
|
|
|
|
67
|
Media / Juegos y Consolas / Mandos de Xbox360 jodidos? O es la consola.
|
en: 8 Agosto 2011, 20:16 pm
|
|
Buenas, resulta que tengo una consola xbox desde enero, apenas la he podido usar hasta ahora... Tras jugar un rato, me he dado cuenta de que uno de los botones no responde para nada, como si el mando estuviese estropeado. Tengo otro mando en casa, pero estaba sin batería, así que lo enchufé a la consola para que cargase, pero resulta que las luces del mando parpadean de forma aleatoria, y éste no responde...
No sé qué probar para intentar solucionar esto, pero es que no puedo jugar con ninguno de ambos mandos. ¿Es problema de la consola, o de los mandos?
|
|
|
|
|
68
|
Comunicaciones / Dispositivos Móviles (PDA's, Smartphones, Tablets) / Problema con móvil ZTE F930
|
en: 30 Julio 2011, 14:59 pm
|
Bueno, creo que éste es el problema de aceptar un móvil gratis en una promoción. Aparentemente es una especie de modelo chino, ya de por sí me resulta complicado utilizarlo con la comodidad y agilidad que te podrían proporcionar otros móviles, pero este no es el asunto a tratar ahora mismo. Resulta que para transferir cualquier cosa a este móvil en particular, se necesita un software llamado Join Me. Que proveen con el aparato en un miniCD. Hoy me encuentro con que no funciona, y el nivel de detalle del mensaje de error es demasiado mínimo como para saber qué posibles soluciones tomar. Básicamente me las tengo que arreglar con este mensaje de error:  Bien, pues: 1.- Si, he comprobado que esté bien conectado, suelo hacerlo antes de usar cualquier aparato y esas cosas... 2.- Hmm, bien, esto no funciona, sigue exactamente igual. 3.- Tras 2 reinstalaciones sigue exactamente igual... Vamos a visitar pues la URL que proveen: Tras una pequeña búsqueda, veo que hay una sección para descargar software para dispositivos, bien! Procedo a buscar mi modelo...  Genial! No es que no haya parches o fixes... Es que directamente no hay nada... Aquí es donde me quedo trabado y ya no sé que hacer... ¿Qué puedo probar ahora? Un saludo y muchas gracias por adelantado. EDIT: Sigo buscando y lo único que encontré es otra consulta sobre exactamente el mismo problema de hace 2 años sin resolver. http://www.foroyoigo.com/topic/zte-f188
|
|
|
|
|
69
|
Comunicaciones / Redes / IPv6 me va a hacer estallar la cabeza! [Solucionado]
|
en: 21 Abril 2011, 11:02 am
|
|
Bueno, mi problema de hoy es IPv6... Estoy hosteando un server de un videojuego (Freelancer) en casa.
Dicho server no soporta el protocolo IPv6, y sólo trabaja correctamente con IPv4.
El problema es, que intenta arrancar siempre con una dirección IPv6, que el videojuego no comprende, y por tanto, no consigue conectarse nadie cuando esto ocurre. Tras unos 20-30 errores de conexión, intenta usar las direcciones IPv4 correctas. Pero es un incordio tener que intentar logear tantas veces para que cambie.
Ahora bien, he intentado deshabilitar IPv6 por completo en mi PC. (Windows 7 Home)
He ido al panel de control y deshabilitado allí IPv6 También he probado llendo al registro y editando la entrada correspondiente.
Pero ahí insiste, e IPv6 sigue intentando imponerse en el servidor, el cual aparece con una IPv6 en vez de las 2 posibles direcciones IPv4 que debería usar: (LAN y Hamachi) Causando problemas.
¿Hay alguna manera de cargarme IPv6 para no verlo nunca más (al menos en el server)? (Me ha metido tanto asco que no lo quiero ni ver).
Ya sé que en un futuro no muy lejano se usará IPv6... si hay alguna solución alternativa, lo agradecería. Lo que me da asco es que se auto-imponga de esa manera algo que hace que las cosas dejen de funcionar correctamente.
Un Saludo.
|
|
|
|
|
70
|
Programación / Programación C/C++ / Que puede estar fallando? (C)
|
en: 9 Marzo 2011, 17:24 pm
|
Llevo pegándome con este varias horas, pero no consigo que funcione. Enunciado: Se desea elaborar una encuesta con objeto de hacer un estudio sobre el consumo de tabaco. Para ello se solicita un programa que deberá permitir la recogida de datos sobre una muestra de 1000 personas fumadoras. La recogida de datos se realizará sobre un vector (DATOS) de 1000 elementos. Cada elemento recogerá la siguiente información: Codigo Cigarrillos Diarios Marca El programa deberá permitir: 1.- Recogida de datos 2.- Media de cigarrillos fumados por persona y dia 3.- Visualización del consumo por marcas 4.- Marca con mayor índice de fumadores 5.- Fin Opcion 1: Se llamara a un procedimiento que permitirá la carga del vector (esta opción no terminará hasta que se completen los datos de todo el vector. Opcion 2: Se llamará a una función que retornará dicha media Opcion 3: Para la realización de esta opción se dispondrá de un vector de estructuras que contendrá la siguiente información: Marca Numero cigarrillos Este vector se supone ya cargado con el campo Marca. El campo numero_cigarrillos está a cero, se completará por programa en esta opción. Para ello una vez que se hayan recogido los datos de la encuesta se recorrerá el vector datos enviando "cada registro" a un procedimiento que buscará la casilla correspondiente en el vector marcas para incrementar el campo Numero cigarrillos (se supone que estan incluidas todas las marcas) Con el vector marcas ya actualizado se procederá a la visualización Opción 4: Función que retornará dicha estructura para su posterior visualización. Esto es lo que tengo hecho, pero no funciona. #include <stdio.h> #include <stdlib.h> #include <string.h> #define N 5 /*Tras pruebas, 1000*/ #define M 5 /*Cantidad de marcas, no definida en enunciado, 5 por poner varias*/ #define L 20 /*Longitud de cadena*/ typedef struct { int cod; int cig; char marca; } encuesta; typedef struct { char marca2[L]; int numero_cig; } vector; void menu(); void intro(encuesta* dat); float media(encuesta* dat); void cons_marca(encuesta* dat, vector* mar); void mejor_marca(vector* mar); int posicionar(char data[], char mar[]); /*Modulo Principal*/ void main() { encuesta datos[N]; vector marcas[M]= /*Viene pre-cargado segun el enunciado*/ {{"Malboro",0}, {"Lucky",0}, {"Strike",0}, {"Camel",0}, {"Otra",0}}; int op; float mid; menu(); while(op!=5) { switch(op) { case 1: intro(datos); break; case 2: mid=media(datos); break; case 3: cons_marca(datos,marcas); break; case 4: mejor_marca(marcas); break; case 5: printf("\nSaliendo de la aplicacion..."); default: } menu(); } } /*0.- Menu*/ void menu() { printf("1.- Recogida de datos\n"); printf("2.- Media de Cigarrillos\n"); printf("3.- Consumo por Marcas\n"); printf("4.- Marca con Mayor Consumo\n"); printf("Seleccione una opcion... "); } /*1.- Recogida de datos*/ void intro(encuesta* dat) { int cont; for(cont=0;cont<N;cont++) { dat[cont].cod=cont; /*Cod Numerico automatico segun introduccion*/ printf("Cigarrillos Diarios: "); scanf("%d",&dat [cont ]. cig); scanf("%s",dat [cont ]. marca); } } /*2.- Media de cigarrillos fumados por persona y dia*/ float media(encuesta* dat) { int cont; float mid=0; for(cont=0;cont<N;cont++) { mid=mid+dat[cont].cig; } mid=mid/N; return mid; } /*3.- Visualizacion del consumo por marcas*/ void cons_marca(encuesta* dat, vector* mar) { int cont,pos; for(cont=0;cont<N;cont++) { pos=posicionar(&dat[cont].marca,mar); mar[pos].numero_cig=mar[pos].numero_cig+dat[cont].cig; } printf("Consumo por marcas:\n--\n"); for(cont=0;cont<N;cont++) { printf("%s: %d\n",dat [cont ]. marca,mar [pos ]. numero_cig); } } /*4.- Marca con mayor indice de fumadores*/ void mejor_marca(vector* mar) { int cont,max=0,pos; for(cont=0;cont<N;cont++) { if(mar[cont].numero_cig>max) { max=mar[cont].numero_cig; pos=cont; } } printf("Mejor Marca: %s", mar [pos ]. marca2); } /*3.1- Localizacion de la posicion correcta para incrementar el valor de dat[].cig*/ int posicionar(char data[], char mar[]) { int cont=0,pos,found=0; while((cont<M)||(!found)) { { pos=cont; found=1; } cont++; } return pos; }
A ver si me podéis echar una mano... todavía programo bastante mal y me queda mucho por aprender... Un saludo y gracias por adelantado.
|
|
|
|
|
|
| |
|