[ Foro de Pascal ]

units

26-Jan-2014 00:17
natalia tavora
3 Respuestas

acabo de crear mi primer unidad... quisiera saber si esta bien y donde la debo colocar para que funcione con cualquier programa que haga....


unit efectos;
	interface
		procedure barra_de_progreso();
		procedure Maquina_de_escribir(palabra:string;color,fila,columna:integer);
		procedure Muevepalabra(palabra:string;fila,columna:integer);
		procedure parpadeo(palabra:string;fila,columna:integer);
	implementation
	uses crt;
	procedure Maquina_de_escribir(palabra:string;color,fila,columna:integer);
		var
		z,i:integer;
	begin
		z:=length(palabra);
		for i:=1 to z do
		begin
			textcolor(color);
			gotoxy(fila+i,columna); writeln(palabra[i]);
			delay(100);
			
		end;
	end;
	procedure barra_de_progreso();
		var
			i,a:integer;
		begin
			clrscr;
			gotoxy(24,10); writeln('<');
			gotoxy(36,10); writeln('>');
			a:=0;
			for i:=1 to 10 do
			begin
				textcolor(white);
				gotoxy(25+i,10); writeln('¦');
				a:=a+10;
				gotoxy(25,12); writeln('cargando...',a,'%');
				delay(150);
			end;
		end;
	procedure Muevepalabra(palabra:string;fila,columna:integer);
		var
		cant,i:integer;
	begin
		cant:=length(palabra);
		for i:=0 to cant do
		begin
			clrscr;
			gotoxy(fila+i,columna); writeln(palabra);
			delay(100);
		end;
	end;
	procedure parpadeo(palabra:string;fila,columna:integer);
		var
		i:integer;
	begin
	for i:=0 to 2 do
		begin
			textcolor(yellow);
			gotoxy(fila,columna); writeln(palabra);
			delay(100);
			textcolor(red);
			gotoxy(fila,columna); writeln(palabra);
			delay(100);
			textcolor(yellow);
			gotoxy(fila,columna); writeln(palabra);
			delay(100);
			textcolor(red);
			gotoxy(fila,columna); writeln(palabra);
			delay(100);
		end;
	end;
end.


depaso la comparto para que el que le sirva la use


26-Jan-2014 02:19
Nacho Cabanes (+84)

Parece estar bien. Para usarla desde cualquier programa, bastaría con colocar este fichero en la misma carpeta, e incluir en tu programa la línea


uses efectos;


Por comentar alguna cosa más:

El paréntesis vacío que incluyes junto a "barra_de_progreso" no sería necesario en Pascal estándar, es algo heredado de C y que sólo permitirán compiladores muy modernos, como Free Pascal.

Hay alguna cosa mejorable, como que la barra de progreso podría recibir como parámetros unas coordenadas y un porcentaje, de modo que se pudiera usar realmente para indicar el avance de algún proceso lento, porque ahora mismo es simplemente un efecto vistoso, pero podría ser aún más útil.

A nivel estilístico, para que resulte más legible, yo tabularía una posición menos (que los nombres de los "procedures" estuvieran pegados al margen izquierdo) y no usaría el carácter de tabulación sino 4 espacios (casi cualquier editor moderno te permite reemplazar tabulaciones por una cierta cantidad de espacios que tú elijas).

En cuanto a los nombres de los procedimientos, debes escoger un estilo: en unos separas con "subrayados" y en otros enlazas las palabras sin separadores. El primero es un estilo C un tanto desfasado. El estilo preferido en Pascal suele ser el de juntar las palabras y usar mayúsculas al comienzo de cada nueva palabra para ayudar a que sea más legible: MuevePalabra, BarraDeProgreso.

Pero ves que son sólo sugerencias de poca importancia, en general está bien así.


29-Jan-2014 23:24
natalia tavora

puse la unidad en la misma carpeta del programa en el que la quiero utilizar pero no funciona.... tambien agregue la linea de uses efectos;


30-Jan-2014 00:18
natalia tavora

ya lo arregle :D






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)