• Martes 23 de Abril de 2024, 21:52

Autor Tema:  Centrar Texto (#2)  (Leído 4473 veces)

_.B._

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Centrar Texto (#2)
« en: Miércoles 4 de Febrero de 2004, 19:55 »
0
Este Procedure sirve para centrar un String, no importa si se encuentra dentro de un Window, o si la resolución es de 40 u 80 columnas.

Código: Text
  1.     PROCEDURE CentrarTxt (WriteTexto:STRING);
  2.       VAR X,Y,Z:BYTE;
  3.       BEGIN
  4.         X:=1;
  5.         Y:=WHEREY;
  6.         Z:=LO (WINDMAX) - LO (WINDMIN) + 1;
  7.         IF LENGTH (WriteTexto) < Z THEN
  8.           X:=((Z-LENGTH (WriteTexto)) DIV 2)+1;
  9.         GOTOXY (X,Y);
  10.         WRITE (WriteTexto)
  11.       END;
  12.  
¡Olmo, dame peras!
www.BernardoLG.net

bet@

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Centrar Texto (#2)
« Respuesta #1 en: Miércoles 31 de Marzo de 2004, 20:45 »
0
ke pascal usas yo no sabia ke se pudiera usar byte.
Me puedes explicar esta parte porfa
Y:=WHEREY;
       Z:=LO (WINDMAX) - LO (WINDMIN) + 1;
Todo sobre el emule (preguntas, descargas, ...)
Tb informacion de peliculas ke se estrenan, juegos y enlaces.
Informate en:
Emulea_Foro
y Emulea_Web

_.B._

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: Centrar Texto (#2)
« Respuesta #2 en: Miércoles 21 de Abril de 2004, 03:39 »
0
Saludos!.
Estoy utilizando Turbo Pascal 7.0.
Byte son enteros de 0 a 255, ambos inclusive.
whereX y whereY son funciones que regresan un valor entero, de la coordenada X y Y, respectivamente, del cursor en la ventana (window(x1,y1,x2,y2)) en que se encuentre, en el momento en que la funcion es llamada.
Ahora, windMin y windMax son funciones tambien, que devuelven las coordenadas X y Y de la esquina superior izquierda (windMin) y de la exquina inferior derecha (windMax) de la ventana actual.
Las funciones "lo" y "hi" no se como explicarlas :unsure: pero te digo que lo(windMin) o lo(windMax) retornan el valor de la X en las respectivas esquinas, y, de manera análoga, hi(windMin) y hi(windMax) retornan los Y.
Cuando no has definido ninguna ventana, la esquina superior izquierda de la pantalla sera (X1,Y1) = (0,0) (o sea, lo(windMin) = 0 y hi(windMin) = 0), y la inferior derecha sera (X2,Y2) = (49,79) (o sea, lo(windMax) = 49 y hi(windMax) = 79) para una resolucion de pantalla de 50X80.
Cuando hayas definido ventanas, la esquina superior sera (1,1).
Ahora, y si esta explicación sirvió de algo ;) :
Para calcular la distancia entre dos puntos A y B, se realiza asi: D = A - B + 1. De aqui el porque de la ecuacion
Z:=LO (WINDMAX) - LO (WINDMIN) + 1
Z seria la distancia entre los bordes de la ventana, cualquiera que sea, y luego la utilizo en el Z div 2 para calcular la mitad de las columnas de la misma ventana.
A programar! :comp:
¡Olmo, dame peras!
www.BernardoLG.net

FSR

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Centrar Texto (#2)
« Respuesta #3 en: Martes 11 de Mayo de 2004, 18:47 »
0
Sólo una aclaración. El tipo BYTE está presente desde la versión 4.0 de Turbo Pascal. El WindMin y WindMax no son funciones, sino vaiables de tipo WORD (valores entre 0 y 65535).

Lo de LO y HI se explica así:

Un Nº WORD está compuesto por 2 BYTEs. Ej: 1DFC (Hexadecimal). El LO obtiene la parte menos significativa del número (FC) y el HI la parte más significativa (1D).

Para el caso del WindMin y el WindMax, la parte menos significativa almacena la coordenada X, y la más significativa la coordena Y.

Así, WindMin almacena (X1,Y1) y el WindMax almacena (X2, Y2).

Saludos ;)

_.B._

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: Centrar Texto (#2)
« Respuesta #4 en: Lunes 17 de Mayo de 2004, 01:23 »
0
:good:
¡Olmo, dame peras!
www.BernardoLG.net