[ Foro de Pascal ]

como seria un gotoxy para...

07-Jul-2011 18:13
oscar gomez
2 Respuestas

Hola profesor Nacho.

queria pedirte ayuda respecto a que no logro organizar en bloque la visualizacion para las horas introducidas , ya solucione como me indicaste con el procedimiento para que  el formato de visualizacion sea siempre hh:mm, pero no logro ordenar su visualizacion, es decir quiero algo asi:



 codigo     dia1      dia2     dia3       total por empleado

  128       08:50     09:00    07:30           25:20    
  120       08:00     09:50    07:00           24:50
  221       07:30     08:30    09:40           25:40



el problema que tengo es que no he podido hacer para que salga asi tal y como lo ves, es decir sin ninguna hora desfazada en ninguna linea

yo estoy haciendo esto para la visualizacion anterior, pero en las horas de los dias (dia1 dia2 dia3), apartir de la segunda fila se me distorciona la tabla no se que este haciendo mal en mi codigo o como hacer un gotoxy() en la parte donde te lo indico con /***:

for i:=1 to maxempleados  do
   begin
     gotoxy(10,16+i);
     write(empleados[i].codigo,' ');
     gotoxy(28,16+i);
     for j:=1 to maxdias do
       begin
         write(empleados[i].horas[j].hh,':');
         write(empleados[i].horas[j].mm);
         write(' ':7);/**********************

       end;
       convertir_A_militar(sumaminutosXempleado,i,t);
       gotoxy(63,16+i);
       write(t.hh:2,':',t.mm:2);
       writeln;
   end;

podrias ayudarme con esto es que llevo horas intentandolo y no lo consigo, mil gracias profesor nacho por tu paciencia, amabilidad y ayuda que nos brindas brillantemente.


08-Jul-2011 00:43
Nacho Cabanes (+84)

Si quieres escribir datos en las columnas 25, 35 y 45 (por ejemplo), sería algo como

columnaActual := 25 + j*10;
gotoxy(columnaActual, 16+i);

si empiezas a contar desde cero.

Si, como en tu programa, empiezas a contar desde 1, la operación es apenas un poco más complicada: sigues aumentando de 10 en 10 (25, 35, 45), pero el valor inicial será 15, de modo que al sumarle 1*10 se convierta en ese 25 en el que quieres que aparezca la primera columna:

columnaActual := 15 + j*10;
gotoxy(columnaActual, 16+i);


08-Jul-2011 09:41
oscar gomez

Gracias profesor Nacho, mil gracias por fin pude hacerlo llevaba horas intentandolo y no lo lograba ,pero gracias a tu genialidad de profesor y tus orientaciones ya  pude hacer que ejecute perfectamente como yo queria, mil gracias de verdad , nos haces crecer, gracias.






(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.)