|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - SergioyoPlayer
1
« en: Sábado 13 de Febrero de 2010, 15:00 »
Hola gente. Estoy empezando a programar para Android, y cacharreando por la documentación he conseguido hacer "bastante", pero se me traba algo tan simple como es el poder cambiar los frames visibles. Quiero poder tener varios Activity de una misma aplicación (tengo entendido que un Activity es como un JFRame pero para dispositivos Android), como por ejemplo un menú principal y otras sibventanas, y poder irlas cmabiando.
He probado a poner el siguiente evento en mi botón del layout main: class BEquipamientoClick implements Button.OnClickListener{ @Override public void onClick(View v) { setContentView(R.layout.ventana2); } } }
ventana2 es otro layout con su Activity por debajo. Ahí sí que muestra mi ventana2, pero al hacer: class BAtrásClick implements Button.OnClickListener{ @Override public void onClick(View v) { setContentView(R.layout.ventana1); } } }
No hace absolutamente nada :s
Alguna sugerencia?? Gracias de antenamo ^^
2
« en: Martes 24 de Marzo de 2009, 08:58 »
Me estoy creando un lote de "componentes" en ObjectPascal en FreePascal. Me gustaría saber cómo puedo hacer mi propio evento "OnClick", como en Delphi. Sé manejar las propiedades (PROPERTY) y conozco los punteros a procedimientos y funciones. Lo que no sé es cómo hacer para que en todo momento, mi programa esté viendo si e ratón está sobre algún "componente" o no. Pd.: todos mis "componentes" tienen los campos PosicionX, PosicionY, Ancho y Largo, todos BYTE. Me gustaría poder hacer algo tipo: PROVATE (...) fOnClick:PROCEDURE(sender:TObject); (...) PUBLIC (...) PROPERTY OnClick:PROCEDURE(sender:TObject) READ fOnClick WRITE fOnClick; (...) Lo del ratón, así a lo "bruto" lo lleov haciendo tipo "REPEAT GetMouseEvent(estadoraton); UNTIL raton_sobre_comonente; donde raton_sobre_componente hace una burrada de AND y OR para ver que el mouse está sobre alguno de todos los componentes, que encima, tengo que poner a mano. Es muy "de piedra", y quiero saber cómo lo hace Delphi, por eemplo, para poder hacerlo yo a mi antojo. Gracias de antemano
3
« en: Sábado 28 de Febrero de 2009, 02:39 »
Gracias por tan pronta respuesta ^^ Ya sé que Pascal es fuertemente tipado. Quero ir a un nivel un poco más bajo, y estoy convencido de que FreePascal me trae las herramientas, solo que aún no sé cómo emplearlas: Encontré en la unidad TypInfo en el rtl.pdf que viene con FreePascal (carpeta DOC) utilidades como la estructura de la definición de tipos (su tamaño, dirección, etc). Me da igual si he de utilizar ensamblador. También leí algo sobre punteros a tipos (que no punteros a una variable con tipo; sino punteros a tipos), pero no sé cómo indicarlo. Sé que lo que pido es muy técnico, pero me gustaría llegar al fondo del asunto y saber "guisarme" las cosas a mi gusto. En algún momento alguien habrá hecho eso, ¿no? Pascal tiene el SizeOf, el INC, etc., que reciben la variable con su tipo, que son 2 cosas distintas. A mí me interesaría obtener ambas (saber identificarlas). Algo similar a los objetos, cuando pones "If clase1 IS TClase1 THEN ..." pero genérico y para tipos. Gracias de todas formas por el interés
4
« en: Viernes 27 de Febrero de 2009, 22:02 »
Hola; quería saber cómo declarar un tipo "comodín" en la cabecera de un subprograma; por ejemplo: { Subprograma que inicialice a 0 toda la memoria ocupada por la variable, que puede ser de cualquier tipo No me compila el TAnyType, porque no sé cómo se pondría) } PROCEDURE Inicializar (VAR X:TAnyType{en la doc del FreePascal aparece, pero el compilador no lo identifica T.T}); //El VAR es para que tome como dirección la original de la variable, y no una copia en el stack VAR i:QWORD; pivote:^BYTE; BEGIN pivote:=@X; FOR i:=1 TO SizeOf X DO BEGIN pivote^:=pivote^XOR pivote^;//forma más eficiente que :=0 INC(pivote); END; END;
Este es un ejemplo de para qué lo quiero utilizar, pero atmbién lo necesito para más casos. ¿Alguien tiene alguna idea? Por ahora mi "Inicializar" recibe una dirección y su tamaño, pero me gustaría saber cómo hacer lo de arriba Gracias de antemano
5
« en: Viernes 27 de Febrero de 2009, 20:15 »
Mira; lo acabo de ver hoy en la facultad: MemAvail ==> Memoria total disponible, pero lo más probable es que esté dividad en bloques. MaxAvail ==> Bloque de memoria más grane disponible Con esto, podrás saber si puedes o no obtener la memoria suficiente
6
« en: Viernes 6 de Febrero de 2009, 09:33 »
Veréis... Hasta ahora toda mi experiencia se limita a programar para Windows, con FreePascal y Delphi. Veo que mucha gente hace sus programillas para Nintendo DS, y que FreePascal tiene la posibilidad de compilar para dicho procesador (ARM7 y ARM9). ¿Qué pasos he de seguir para "activar" la posibilidad? En el IDE me voy al menú de Compiler y en Targets, aparecen Inte Pentiums y demás, pero no hay ARM. He visto info de cómo "agregarlo" al compilador o algo así entendí, pero no sé cómo. ¿Alguien me puede ayudar? (pasito a pasito, como si fuera tonto porfa )
7
« en: Domingo 25 de Enero de 2009, 23:21 »
La primera asignación se puede omitir, poniendo en la segunda esto (dentro del FOR, me refiero): parteDecimal:=(CharToInt(cadenaDecimal )*potencia(10,(-i)))+ParteDecimal;
Esto es porque primero resuelve la función algebraica de la derecha, y el resultado lo mueve a la parte izquierda de la asignación. Sabiendo esto, te ahorras un paso omisible (inútil) como es el crear una variable auxiliar, y estar haciendo una asignacón por pasada de bucle.
Ánimo
8
« en: Domingo 25 de Enero de 2009, 11:41 »
Mira; te puedes guiar por la "distancia" hasta la "coma" o fin de subcadena:
Pongamos 20.5: la parte de la derecha dices que no tienes problema; la omito (yo la haría simétricamente al bucle de abajo)
Empleo la subcadena subcadena:=COPY(cadena,1,POS('.',cadena));
(si no tienes la función COPY, pues la haces a mano con un WHILE)
por ahora tenemos 0.5;
Luego, haces:
FOR i:=LENGTH(subcadena) DOWNTO 1 DO BEGIN numero:=numero+ChartoINT(subcadena)*Potencia(10,LENGTH(cadena)-i); END;
Que quedaría (por pasadas de bucle): 0.5+0*10^(2-2)=0.5+0*1=0.5 0.5+2*10^(2-1)=0.5*2*10^1=0.5+20=20.5
Espero no haberme equivocado :s
9
« en: Domingo 25 de Enero de 2009, 00:58 »
Juas! Pues lo que dijeron arriba Quita todos los caracteres que no sean números o punto. Verifica que solo hay aun punto Y a partir de ahí, tendrás 2 cadenas (salvo que no haya punto, que tendrás una). La "de la izquierda", multiplicas por 10^n, y la "de la derecha", por 10^(-n) y yatá (lo de ^-n, es por 0.1, 0.01, 0.001, etc.)
Suerte ^^
10
« en: Sábado 24 de Enero de 2009, 21:07 »
El procedimiento VAL te lo hace ^^ VAL(cadena_a_convertir:STRING,VAR número_que_devuelve:BYTE/WORD/INTEGER/LONGINT/REAL,etc.,VAR error:BYTE - indica la posición del STRING donde hay un caracter erróneo) La puedes ver en la carpeta "FPC/versión/DOC/rtl.pdf Y en el pdf, en la unidad SYSTEM (es la que viene "por defecto" con los mínimos para programar). Concretamente, en el apartado "Procedures and Functions". Suerte
11
« en: Jueves 22 de Enero de 2009, 13:01 »
Yo me crearía una matriz de 2 dimensiones a modo de tablero Luego, las navecitas, aparecerían centradas en la fila superior, dejando un espacio a ambos lados para poder hacer el zig-zag. A la hora de avanzar las invasoras, sería cuestión de moverlas a la fila inferior y desplazarlas sucesivamente a izquierda y derecha (para eso reservamos el hueco a ambos lados).
CONST maxfilas=***; maxcolumnas=***;
TYPE TNave=RECORD esta:BOOLEAN;//para indicar si la nave está, o es un simple cuadrado vacío color:BYTE; figura:CHAR;//para ponerle la "figurita" que quieras END;
TTablero=ARRAY[1..maxfilas,1..maxcolumnas] OF TNave.
TDesplazamiento=(dderecha,dizquierda,darriba,dabajo);
Con esto, creo que lo mínimo está
12
« en: Jueves 22 de Enero de 2009, 12:40 »
Jum... No sé qué quieres hacer con eso tan raro :s No lo entiendo xD Yo te propongo 2 soluciones, a mi parecer mucho más simples que lo que has comentado (no lo he oído en mi vida :s) Opción 1 (la más eficiente): Hacer Gauss-Jordan: triangulas la matriz a ambos lados de la diagonal principal (haces 0 sumando y restando unas filas con otras, haciendo los cáculos pertinentes - eso es de matemáticas de bach., y luego álgebra de uni también). Opción 2, "válida" fácilmente para una matriz 3*3: el simplón de Sarrus, que coge y hace lo siguiente con este ejemplo: Dada esta matriz: a b c 1 5 3 4 2 2 1 6 3 9 8 7 Haces: a1*b2*c3+b1*c2*a3+c1*a2*b3-(c1*b2*a3+b1*a2*c3+a1*c2*b3). Puedes ver una imagagen que lo ejemplifica AquíHaces
13
« en: Jueves 22 de Enero de 2009, 12:31 »
Yo, lo más que te puedo decir, es que cuando te quedes sin memoria RAM te dará una interrupción de error, que buscando un poco así por Google no he sido capaz de encontrar :s Si pudieras controlar el aviso sin que se cerrara el programa (como cuando abres un fichero que no existe y haces el {$I-} y {$I+} para cerrar las directivas de error), podrías evitar que se cerrar y dar tú el aviso controlándolo. Ahora; para obtener la cantidad de memoria libre que hay... sé que para la del disco duro está la unidad "dos", pero para RAM... es menos común
Siento no poder ser de más ayuda
14
« en: Viernes 16 de Enero de 2009, 11:13 »
Hola; tengo un "problemilla" (realmente solo es cuestión de estética y privacidad), y es que mi programa utiliza varios archivos en las carpetas .DAT y .IMG
Lo que quiero es tener un sólo fichero ejecutable que "contenga" las carpetas con los ficheros que necesita, para que solo se vea un exe.
Lo más que he encontrado para poder hacer eso es u programa llamado "Alloy", pero slo me permite dos tipos de directorios (SYSTEM y TEMP).
Cómo puedo lograr esto?
Gracias de antemano ^^
15
« en: Jueves 20 de Noviembre de 2008, 15:10 »
Veréis: he buscado en San Google, y no he encontrado cómo ejecutar el explorador de Internet pasándole como parámetro la dirección web.
En Pascal (con FreePascal compiler) era el procedimiento "Exec(dirección_ejecutable,parámetro)", pero en Delphi no sñe cuál es (lo intenté, pero no coló T.T).
Mis preguntas entonces son 2:
1ª. ¿Cómo averiguo el la dirección del ejecutable del explorador web por defecto que tiene el usuario? y
2ª. ¿Cómo lo abro y le paso la direcciónn web?
Gracias de antemano ^^
16
« en: Miércoles 19 de Noviembre de 2008, 23:15 »
Me encanta la ayuda. Si pregunto ees porque YA he buscado ¬¬
A pesar de no haber encontado nada, he "descubierto" que si pongo la unidad JPEG (descubrí que trae una) en USES, el TImage automáticamente se "compatibiliza" con los jpg/jpeg sin problemas (a no me da el error de que no es compatible co la extensión jpg).
Gracias; espero que le sirva a otros que veo que han preguntado lo mismo sin una solución concreta :s
17
« en: Miércoles 19 de Noviembre de 2008, 17:35 »
Veréis. Como novato que soy, estoy haciendo una aplicación, pero las imágenes que cargo tiene que ser MBP porqe no acepta otro formato (bueno; el ICO sí, pero no me sirve).
Esto me provoca que las imágenes me ocupan muuucho más del doble de lo que ocuparia un JPEG "normalito". He mirado en otros subforos, y no me ha solucionado nada T.T. Si he de instalar algún complemento, qué son y cómo se hace??
Pd.: tengo Delphi 2007
Gracias de antemano ^^
18
« en: Lunes 20 de Octubre de 2008, 23:53 »
Muchas gracias por las sugerencias ^^ Ya hice entre ayer y hoy toda la declaración de tipos y funciones del binario y hexadecimal (a mi manera), y conseguí leer correctamente cualquier tipo de fichero del disco duro, y representar los bytes en binario, hexadecima, numérico y carácter ^^ Una cosilla a anotar: si en vez de INTEGER, declaras WORD, en este caso podrás contar el doble de datos. Y si en vez de LONGINT utilizas CARDINAL, igual (en su momento me empollé la documentación que trae FPC jeje). Gracias de nuevo
19
« en: Domingo 19 de Octubre de 2008, 21:31 »
Te refieres al procedimiento BLOCKREAD?? Jum... Lo estuve mirando. Lo intentaré con eso ^^ Pero aún así, me gustaría oír la propuesta de eternity (por si acaso me falla esta y el error está en la interpretación :s) Pero muchas gracias!! Me pongo a ello
20
« en: Domingo 19 de Octubre de 2008, 15:27 »
Parece ser que no está muy bien visto eso de hacer el trabajo de los demás, pero eso se borran las diecciones e-mail. Pues, este juego fue lo que nos mandaro el curso pasado cuando apenas llevaba 3 meses con la idea de qué era programar :s
Podéis verlo todo en es.geocities.com/pove_14_10/
Ahí he colgado los "encargos" que nos mandaban los profesores (simulan que son nuestros clientes) el primer curso, y los ejecutables, con documentación incluída. Espero que el aporte os vaya bien ^^
Pero ya os digo por experiencia de un amigo mío, que aprendes más y mejor pensando tú, que descifrando lo que ha hecho otro. Ánimo, y cualquier duda, la podéis poner aquí, que responderé gustoso ^^
21
« en: Domingo 19 de Octubre de 2008, 15:20 »
Si lo que pretendes es conseguir una aplicación con una interfaz "amigable" (imágenes incluídas) sin cambiar de tu lenguaje favorito (este es el mío ^^), te aconsejo que cacharees con Delphi y cojas soltura. Tra subprogramas fáciles de usar que te ahorran tareas tan utilizadas como la de cargar una imagen en memoria y mostrarla en una región de la pantalla. Ya te digo, que mostrar una imagen en modo GRAPH con la consola de DOS es un petardo. Y ya, si quieres usar el ratón con la unidad MOUSE, se te monta un barullo enorme. Decide si te merece o no la pena, pero la ironía de la profesora es todo dun reto para un pricipiante Resumen: Delphi te soluciona el tema gráfico sin perder la soltura de Pascal
22
« en: Domingo 19 de Octubre de 2008, 13:04 »
Es precisamente lo que dice Eternity jeje
Pero quiero que sea capaz de abrir cualquier tipo de dato escrito en disco (con lo de BYTE solo me abre los de texto y los demás, abre "solo un cacho", porque el EOF salta antes de acabar :s)
Respecto a lo de bajar una aplicación que en efecto, no sabes de dónde ha salido, está en rar por algo ¬¬
Pd.: Si me puedes decir cómo declarar el tipo y cómo leerlo, te lo agradecería mucho eternity
23
« en: Sábado 18 de Octubre de 2008, 21:48 »
Veréis: quiero poder leer y crear ficheros en mdo binario ("a pelo"). Yo codifico e interpreto cómo está guardado el fichero, al estilo "editor hexadecimal", que te abre lo que sea y ves cómo está. Ya me he definido las funciones necesarias para represetar el binario y todo eso, pero no sé de qué tipo tiene que ser declarado el fichero :s
O he intentado con BYTE, y traducir a binario, pero es igual que abrirlo en modo texto (no es lo que yo quiero, ya que no abre todos los ficheros). He probado con declararlo de tipo BOOLEAN, alternando el TRUE a 1 y luego probé a 0, pero nada.
Alguna idea?? Os pongo mi "aplicación experimental" como adjunto
Sobre todo, quedáos con la idea de que necesito poder abrir CUALQUIER FICHERO como un editor hexadecimal lo hace.
Gracias de antemano!!
24
« en: Sábado 18 de Octubre de 2008, 21:41 »
Me alegro de que no soy el único que sigue con Pascal ^^ Cuando tengas una unidad creada, llamémosla "mi_unidad", puedes utilizarla en tu programa, u otra unidad citándola en el apartado "USES". Un ejemplo: PROGRAM mi_programa; USES crt, mi_unidad; ... END. Gracias a Delphi se pueden crear entornos muy buenos sin dejar el Pascal ^^ Y facilita el tema de los objetos Ánimo!!
25
« en: Viernes 11 de Julio de 2008, 10:32 »
Utilizo el IDE y compilador FreePascal (la última versión siempre), que se supone que es compatible también con la sintaxis de Delphi (en el menú del compilador).
Lo intentaré hacer así ("simple FTP download") jje
Muchas gracias Enko
|
|
|