• Miércoles 20 de Noviembre de 2024, 14:34

Mostrar Mensajes

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 - Amilius

Páginas: 1 ... 8 9 [10] 11 12 ... 27
226
Pascal / Re: Sopa De Letras
« en: Domingo 15 de Enero de 2006, 16:20 »
Seria mejor una funcion más general como:

Para vertical descendente deltaX=0, deltaY=1;
Para horizontal normal deltaX=1, deltaY=0;
Para horizontal reverso deltaX=-1, deltaY=0;
Para diagonal deltaX=1, deltaY=1; deltaX=-1, deltaY=-1; deltaX=-1, deltaY=1; deltaX=1, deltaY=-1;

Código: Text
  1.  
  2. const maxX=10;
  3. const maxY=10;
  4. var Tablero: array[1..maxX,1..maxY] of char;
  5.  
  6.  
  7. function colocarEnLaSopa(cadena: string; PosX, PosY, deltaX, deltaY: integer): boolean;
  8.  
  9.   function PosicionValida(PosX, PosY:integer):boolean;
  10.   begin
  11.     PosicionValida:=(PosX>=1) and (PosX<=maxX) and (PosY>=1) and (PosY<=maxY);
  12.   end;
  13. var
  14.   i, caracteres: integer;
  15. begin
  16.   //Para normalizar posicion inicial a 0 y no 1:
  17.   caracteres:=length(cadena)-1;
  18.   //Revisar posicion inicial y final, si ambas son validas, entonces se puede colocar en la sopa.
  19.   if PosicionValida(PosX, PosY) and PosicionValida(PosX+caracteres*deltaX,PosY+caracteres*deltaY) then
  20.   begin
  21.     //Primero revisar por las casillas si estan libres
  22.     for i:=0 to caracteres do
  23.       if Tablero[PosX+i*deltaX,PosY+i*deltaY] <> ' ' then
  24.       begin
  25.         colocarEnLaSopa:=false;
  26.         exit;//casilla ocupada, salir
  27.       end;
  28.     //Agregar las letras
  29.     for i:=0 to caracteres do
  30.       Tablero[PosX+i*deltaX,PosY+i*deltaY] := cadena[i+1];
  31.     colocarEnLaSopa:=true;
  32.   end
  33.   else
  34.     colocarEnLaSopa:=false;
  35. end;
  36.  
  37.  

227
C# / Re: Timer
« en: Viernes 13 de Enero de 2006, 15:44 »
y por que no usas "Scheduled Tasks" un servicio esta pensado para trabajar todo el tiempo, si tu aplicacion se ejecuta solo una vez al dia el resto del tiempo va estar consumiendo recursos sin hacer mucho.

228
DirectX / Re: Directx En Pascal
« en: Miércoles 11 de Enero de 2006, 23:53 »
Cita de: "lalo_soft"
Microsoft ha ido cerrando Dx para lenguajes no producidos por ellos.
Direct X no esta "cerrado" a ningun lenguaje o compilador. Obviamente si utilizas el Visual Studio tienes la ventaja del SDK dedicado a directX por que es producto de microsoft y por logica tiene que apoyar al directX. En cambio en otros compiladores simplemente tendras que hacer todo el trabajo para utilizar las .Dll de directX si es que no tienen algo hecho para ayudar como el delphiX que te facilita el camino. Es necesario que el compilador que uses tenga la capacidad de generar codigo que pueda llamar a las funciones de una Dll de windows y el turbo pascal 7 NO tiene esa capacidad. (vamos, es para aplicaciones de 16 bits para DOS y no para windows)

229
Pascal / Re: Pascal Raya 4
« en: Lunes 9 de Enero de 2006, 16:37 »
Es mejor separar la interfaz de usuario de la logica del juego/aplicacion.

230
C++ Builder / Re: Hacer Zoom A Una Imagen
« en: Domingo 8 de Enero de 2006, 20:52 »
Tienes que tener separados los datos de la imagen Tbitmap y la zona donde deseas pintarlo: Tcanvas, luego aplicas CopyRect para copiar de un rectangulo de tu bitmap a otro que corresponde a la pantalla.

231
C++ Builder / Re: Juego Del Ahorcado
« en: Domingo 8 de Enero de 2006, 20:49 »
Colocas un boton "otra vez!"

Y al presionarlo modificas el estado del programa a su estado inicial, algo como inicializar y solo evitando repetir la palabra... No es necesario construir otro formulario.

232
DirectX / Re: Cursor En Directx
« en: Domingo 8 de Enero de 2006, 20:46 »
Por el bien de la jugabilidad... seria bueno que tenga una opcion para usar un puntero a 4 colores (blanco, negro, transparete e inverso)... solo para evitar que no puedas jugar cuando hay mucha accion en pantalla (pocos fps) por ejemplo en un RTS cuando no tienes una buena maquina...  <_<

233
Delphi / Re: Algun Instalador Que Me Recomienden?
« en: Sábado 7 de Enero de 2006, 21:36 »
Cita de: "bartolomeo"
Cita de: "Amilius"
El mas potente, no es cosa fácil de utilizar pero si necesitas hacer cosas realmente fuera de lo comun lo recomendado es el open source de microsoft: wix. Además que es 100% gratuito.
 

Cosas fuera de lo comun como que   :alien: , que has hecho fuera de lo comun, puede que pueda haber encontrado algo muy muy interesante para mi proyecto  :o
Basicamente usar XML para crear un instalador, o mejor crear una herramienta que crea el XML a partir del cual WIX crea el instalador en MSI.  ;)

234
Delphi / Re: Algun Instalador Que Me Recomienden?
« en: Sábado 7 de Enero de 2006, 14:30 »
El mas potente, no es cosa fácil de utilizar pero si necesitas hacer cosas realmente fuera de lo comun lo recomendado es el open source de microsoft: wix. Además que es 100% gratuito.

http://sourceforge.net/projects/wix

El mejor tutorial hasta el momento, (si encuentran otro mejor avisen), aunque es posible que tengas que buscar "custom actions" para la instalacion de la base de datos access. Lo probe con sql server y va de maravilla, pero con access habria que ver...

http://www.tramontana.co.hu/wix/

y por supuesto la ayuda en msdn del msi.
Y para editar los msi el orca.  ;)

235
Pascal / Re: Ordenacion Por Selección
« en: Viernes 30 de Diciembre de 2005, 19:38 »
Cita de: "thot_ohm"
Hola Amilus:

He probado así como dices tú, incluso acabo de modificar el procedimiento para probar la forma que me indicas, pero la lista no se ordena.

No entiendo cuando dices que dejo un montón de nodos huérfanos  <_< . Simplemente cambio la información de un nodo a otro, pero no toco la estructura de la lista. Si te refieres al Aux que queda siempre por ahí pues con un dispose lo arreglo, no?

Bueno, tu me dices en que me estoy equivocando. Gracias.
Si, efectivamente me referia al Aux. Si Datos es un registro y no un puntero no hay problema, pero no es eficiente por que mueves toda la memoria del registro en lugar de sólo modificar los punteros. (De todas formas un codigo que funciona es mejor que uno que no funciona aunque en teoria si funcionara fuera mas eficiente  :P ) Si Datos es un puntero el new() esta demás por que sólo necesitas intercambiar las posiciones de memoria que contienen.

Finalmente si no utilizas: var Lista : TipoListaEnlazada , seria bueno que lo quites para no desperdiciar tiempo de cpu al pasar ese parametro.

P.D.

Para asegurarte que todo marcha bien seria bueno que al reservar memoria y al liberarla pusieras en pantalla algun mensaje y mejor si tienes un contador en alguna variable global para saber cuantas veces reservaste memoria para un nodo y cuantas veces liberaste la memoria de un nodo.

236
Pascal / Re: Ordenacion Por Selección
« en: Viernes 30 de Diciembre de 2005, 16:46 »
Cita de: "thot_ohm"
Rescatando un poco este post y para dejar la solución al problema que planteaba para futuras consultas.

Lo del "error while linking" y el "exitcode=216" al parecer lo provocaba el compilador (FreePascal), probé con TurboPascal y corre sin problemas.

El procedimiento cambiar quedó definitivamente de la siguiente manera:

Código: Text
  1.  
  2. procedure Cambiar (var Lista : TipoListaEnlazada; var Mayor, Menor : PunteroLista);
  3.  
  4. var
  5.   Aux : PunteroLista;
  6. begin
  7.         new(Aux);
  8.   Aux^.Datos := Mayor^.Datos;
  9.   Mayor^.Datos := Menor^.Datos;
  10.   Menor^.Datos := Aux^.Datos;
  11. end;
  12.  
  13.  

Lo que hice fué simplemente cambiar los datos contenidos en los punteros sin cambiar sus enlaces. No se si será medio chapucera esta forma, pero así funciona.

Agradecería cualquier sugerencia, pero como digo, funciona.
Pues estas dejando muchos nodos huerfanos de padre y madre...  :lol:

Normalmente la cosa funciona asi:

Código: Text
  1.  
  2. procedure Cambiar (var Mayor, Menor : PunteroALosDatos);
  3. var
  4.   Aux : PunteroALosDatos;
  5. begin
  6.   Aux := Mayor;
  7.   Mayor := Menor;
  8.   Menor := Aux;
  9. end;
  10.  
  11.  

Y luego tienes que asegurarte que sus punteros de enlace al anterior y siguiente apunten a donde quieres. Complicacion que te ganaste por el tipo de estructura de datos que estas usando. Una forma más comoda es usar 3 punteros: al anterior, al actual y al siguiente, asi cuando quieres intercambiar valores de los nodos solo intercambias los indices a ese gran arreglo estatico llamado ram guardados en los punteros "actuales", sin tener las complicaciones de evitar que tu lista quede fragmentada.

P.D. "Datos" no figura en los tipos que definiste, es simplemente una forma de abreviar o efectivamente Datos ahora es una variable del tipo puntero a los datos de tu nodo?

237
Pascal / Re: Ordenación Por Inserción
« en: Viernes 30 de Diciembre de 2005, 16:35 »
Por que replantear todo?

Simplemente agrega el puntero a tu nodo anterior y crea un algoritmo para encadenarlos en reversa si es necesario.

238
Pascal / Re: Pascal Raya 4
« en: Miércoles 28 de Diciembre de 2005, 21:32 »
Podrias usar un par de ciclos para poner unos puntos "." que simbolicen cada posicion y las fichas podrian ser letras como  x X o O. En modo full consola redibujando todo cada vez que algo cambie tratando de que aparezca en la misma posicion tu tablero.

Recuerdo haber hecho el codigo en pascal... a ver si lo encuentro...  :rolleyes:

239
C++ Builder / Re: Timers En Threads
« en: Miércoles 28 de Diciembre de 2005, 20:54 »
El timer es del S.O. o es uno propio?

240
ASM (Ensamblador) / Herramientas, Modo Protegido Y Otros Temas
« en: Miércoles 28 de Diciembre de 2005, 16:49 »
Navegando casualmente encontre esta página con mucha información y herramientas que espero que les sea de utilidad:

http://www.nu2.nu/utilities/

http://www.nu2.nu/bootdisk/

http://alexfru.chat.ru/epm.html

241
C++ Builder / Re: Manejo De Pantalla
« en: Viernes 23 de Diciembre de 2005, 21:28 »
El efecto de alpha blending lo realiza el sistema operativo, sin embargo ese y otros efectos van a quedar eventualmente deprecados en lonhorn (vista) con el "Windows Presentation Foundation" (Avalon) Entre las caracteristicas realmente practicas esta la posibilidad de  diseñar tu formulario sin tener que tomar en cuenta la resolucion de la pantalla, ya que como en un juego full 3D mantendra las proporciones a cualquier resolucion, con la diferencia que a mayores resoluciones y una buena pantalla que le haga justicia a la resolucion :P tu formulario se vera mucho mas nitido.

http://msdn.microsoft.com/library/default....eaturesM7-2.asp

242
Visual Basic 6.0 e inferiores / Re: Eliminar El Parpadeo
« en: Viernes 23 de Diciembre de 2005, 21:01 »
Pues el doble buffer fue creado precisamente para eliminar el parpadeo. Hay variantes pero son optimizaciones de la idea principal para reducir la cantidad de memoria que pasas de la ram a la de video al hacer el bitblt. Por ejemplo solo moviendo el o los rectangulos de la pantalla que fueron modificados.

243
Visual Basic 6.0 e inferiores / Re: Crear Archivos De Ayuda (*.hlp)
« en: Martes 20 de Diciembre de 2005, 16:42 »
Cita de: "cpmario"
El formato antiguo viene desde el Win 3.1 y los archivos tienen extensión HLP.
Los nuevos formatos de ayuda tienen extensión CHM el cual guarda la información en HTML.

 :comp:
Pues asi es, que mejor que el HTML que puedes editarlo en lo que quieras para crear una ayuda completa, llena de hiperenlaces, graficos, jscript, etc, etc.

P.D.

Por que el pdf es tan popular, si es horroroso leerlo, sus letras nunca se ven bien, es lento, el programa que lee esos archivos es ultra pesado y ni siquiera es un formato estandar?  :unsure:

244
Pascal / Re: Pascal Raya 4
« en: Martes 20 de Diciembre de 2005, 16:39 »
... Déjà Vu ...   :rolleyes:  :D  ???

P.D.

Deberias usar el buscador del foro antes de postear. Este tema del conecta 4 lo postean por lo menos 2 a 3 veces por semana y ya es bastante molesto verlos aparecer tan seguido.

245
Pascal / Re: :blink: Error 113: Error In Statement!!!!!!!!!
« en: Sábado 17 de Diciembre de 2005, 22:10 »
Cita de: "Enko"
Citar
Tambien seria bueno que echaras un ojo a compiladores como http://www.lazarus.freepascal.org/
Lazarus no está mal, pero un "hola mundo" ocupa algo de 1 mega :(

Si quieres pasarte a Delphi, práctica POO, es lo que más cuesta en el cambio.
:P  Es cierto los .exe crecen y crecen sin medida... :P

Es el costo de la comodidad: cientos de miles de lineas de codigo (no exagero) que posiblemente no serán utilizados pero estan alli de todos modos.

Pero ese es un problema bastante común, aunque algunas veces los disimulan bien como con el vs c#.NET.  Los .exe tienen tamaño proporcional a tu codigo, un hola mundo es diminuto, pero por detras están varios de megas del .NET framework. :P

P.D.

Adjunto un pequeño hola mundo para delphi3 en modo consola, para que a partir de el puedan hacer sus aplicaciones el modo consola teniendo los ejecutables bastante chicos siempre y cuando no utilicen otras bibliotecas con "uses". ( Hola mundo de 16KB, nada de POO para los que no les guste :D )

¿Que hace esto en el foro de pascal?

Pues simplemente para mostrar que con delphi pueden programar de la forma que lo hacian en pascal, sin tener que meterse con POO, al menos en aplicaciones exclusivas de modo consola. El siguiente paso será utilizar los objetos de delphi pero programando en forma estructurada (es decir sin crear tus propias clases ni extender las que ya existen). Y finalmente, si es que lo necesitan y realmente empiezan a ver que les facilita las cosas empezar a programar sus propias clases.

246
Pascal / Re: :blink: Error 113: Error In Statement!!!!!!!!!
« en: Sábado 17 de Diciembre de 2005, 21:43 »
Cita de: "micropais"
Citar
Todos los nuevos lenguajes son POO, por algo será ¿NO?

¿Para sacarnos la PASTA? (PLATA).

Te voy a poner un ejemplo en VB
has visto alguna vez Visual Basic , los modulos que acompañan al lenguaje,
mira Crystal Report , se engancha al programa y permite entre otras Navegar
por internet , imprimir en cualquier impresora  etc.
has visto el control RichTexBox que permite editat ficheros RFT importar y pegar ventanas de cualquier aplicación que soporte windows.
bueno precisamente estos controles y otros muchos más que de echo facilitan
la programacion con el solo echo de heredarlos y que realmente ahorran muchisimo trabajo , precisamente  los controles que nesecitas , los mejores ,
 :o  - NO SON GRATUITOS - :o  . y en caso de crear una aplicacion comercial deberas pagar un canon por cada objeto y copia suministrada , al estilo canon MP3, aparte que quien utilice esos controles deberá notificarselo a microsoft .

No se si realmente es una ventaja , lo que si es verdad que ahorran
muchissisimo trabajo a la hora de programar.
 :whistling:

Pero realmente no me referia a eso , me referia , a usar nuetrsos poropios controles , o crear objetos para despues reutilizarlos , no creo que llegemos
a ser comerciales ya que los mejores controles no estan echos en ningún
lenguaje de alto nivel ya que estos suelen ser lentisimos , los mejores se programan en Assembler.
En cuanto a reutilizar el código , podemos hacerlo mediante funciones o procedimientos , y aun así , está comprobado que es más rápido crear código
lineal que generar un bucle aunque tambien genere más gasto de espacio en memoria .
- Reducir el código, compactar  , Pa Qe, si nos sobran TeraByts


por cierto:
has programado alguna vez en P.O.O? ,aunque realmente no sea un
nuevo tipo de programacion si no otra forma de pensar.

- ¿cuanto tiempo de más has gastado en crear pastillas reutilizables propias?
 y ¿cuantas realmente has reutilizado?.

 :whistling:  :whistling:  :whistling:

Salu-  D.O.S  ;)
La verdad es que por experiencia personal veo que la gran mayoria no aprende bien a sacar provecho de la POO, pueden dominar la teoria pero en la practica al usar POO se enredan solos. La idea basica de la POO es facilitarte las cosas, no enredarlas.

Cuanto más grande el proyecto más notarás el impacto beneficioso de la POO, si es que el sistema esta diseñado correctamente, caso contrario las cosas sólo se complicarán cada vez más y nunca llegarás a notar que tus clases y objetos te estan ahorrando trabajo. Esto de dominar realmente la POO no es trivial, como ya dijeron, es otra forma de pensar y a menos que te pongas a vibrar a la misma frecuencia estarás como un carpintero usando un serrucho como martillo.  :P

P.D. Si estas haciendo un programa muy muy chico que no esperas convertirlo en algo más grande, olvidate de la POO.

247
Delphi / [Código Fuente] Triangulos coloridos
« en: Sábado 17 de Diciembre de 2005, 01:10 »
Este codigo muestra varios triangulos formados por vertices leidos de un archivo de texto y los colorea interpolando los valores de los vertices de acuerdo a varios tipos de interpolacion. Se puede utilizar para mostrar en forma interpolada una superficie formada por triangulos cuyos vertices representen por ejemplo tension, temperatura, etc.

El codigo utiliza la clase TDIB que adjunte anteriormente con algunos cambios adicionales.

248
Pascal / Re: :blink: Error 113: Error In Statement!!!!!!!!!
« en: Viernes 16 de Diciembre de 2005, 20:30 »
Cita de: "M4R14N0"
Muchas gracias enko y micropais.

acomode el programa segun las modificaciones q me dijistes enko y lo pude compilar bien, bueno ahora me queda por acomodar bien la funcion que me dice si el nomber q estoy ingresando ya existe, el procedimiento q muestra los datos, y bueno despues me ire fijando q correcciones mas tendre q hacerle. una ves q lo tenga terminado lo pongo en el foro para que le eche un vistaso el que quiera :) .

bueno les cuento, curse primer año de ing. en sistemas en tandil hace 4 años (programaba en turbo pascal 7, por un tema economico y otro q lo unico q me interesaba era programar, tuve q dejar.
hace rato q queria empesar de nuevo a programar y no encontraba un solo manual q me ayudara, me baje cantidad de manuales...bla bla bla...
ahora empese a practicar de nuevo, encontre un buen manual de free pascal y estoy usando ese :comp: .
cuando empese me sorprendi de la cantidad de cosas q me avia olvidado. bueno programo porque me gusta-hobby y tambien porque me gustaria hacer plata con esto :D .

lo que me recomendaron fue q practique bien con pascal y despues me pase a delphi, que opinan de esto?.
Pasate a delphi de una vez.   ;)
La ayuda que tiene es bastante buena, muchisimo mejor que la de otros IDEs como visual studio. Ademas que existe gran variedad de componentes gratuitos para bajarlos y en mi opinion tiene el mejor balance de facilidad de uso y tiempo de programacion vs eficiencia de codigo. De hecho puedes programar codigo tan eficiente como si utilizaras  C (compatible con todos los tipos de datos de C), puedes optimizarlo con ASM, pero si no tienes tiempo para darte esos lujos puedes ahorrarte trabajo utilizando componentes, ni que decir de sus capacidades para aplicaciones de bases de datos.

Tambien seria bueno que echaras un ojo a compiladores como http://www.lazarus.freepascal.org/

249
C/C++ / Re: Sugerencia
« en: Viernes 16 de Diciembre de 2005, 16:24 »
Cita de: "Eternal Idol"
Me sigue pareciendo horrendo  :devil:  Pero claro que es cuestion de gustos, yo lo haria asi:

Código: Text
  1.  
  2. int funcion (int)   // función que realiza ...
  3. {
  4.   for (i = 0; i < j; i++) // recorremos hasta j
  5.   {
  6.     for(h=0; h < MAX; h++)   //comentario
  7.     {
  8.       if (numero == 23)  //comentario
  9.       {
  10.         numero = 20;
  11.       }
  12.       if (i < 10)  //comentario
  13.       {
  14.         instrucciones;
  15.       }
  16.       else
  17.       {
  18.         numero2 = 0;
  19.       }
  20.     }
  21.   }
  22. }
  23.  
  24.  
Generalmente no me gusta usar tantas llaves, a menos que uses el VS2005 u otro compilador que te resalta las llaves inicial y final. Respecto a si se ve mejor o peor usando todas las llaves depende del espaciado entre lineas en tu editor de codigo. Si el espacio es muy chico sin las llaves el codigo se ve horrible, si tienes bastante espaciado entre lineas el codigo se ve horrible si usas las llaves para una sola linea de codigo y especialmente si usas resolucion de 800x600 (ves menos cantidad de codigo en la pantalla), en 1024x768 no es problema. De hecho la unica razon por la que no uso llaves para una sola linea de codigo es poder ver mayor cantidad de codigo en la pantalla al mismo tiempo sin tener que abusar de la barra de desplazamiento.

P.D.

250
HTML / Re: Ajustar La Pantalla
« en: Jueves 15 de Diciembre de 2005, 15:21 »
Este codigo funciona con los anteriores y versiones antiguas de ie y netscape

Código: Text
  1.  
  2. function getElmntById(anID){
  3.   if (document.getElementById)
  4.     return document.getElementById(anID)
  5.   else if (document.layers)
  6.     return document.layers[anID]
  7.   else if (document.all)
  8.     return document.all[anID];
  9.   else return null;
  10. }
  11.  
  12.  

Páginas: 1 ... 8 9 [10] 11 12 ... 27