Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 15-12-2006
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 23
yusnerqui Va por buen camino
Recuerdo que hace tiempo con ayuda del Club, hice una unit que hace varias cosas de las que quieres, hechale un vistazo:

Código Delphi [-]
interface
 uses
 SysUtils,Windows;

Procedure CreaBordes(F,C,Cant:Integer;Carac:Char);
Procedure Limpia(F1,F2,C1,C2:Integer);overload;
Procedure Limpia;overload;
Procedure GotoXY(X,Y:Integer);
Procedure CreaTabla(Ancho,Alto:Integer);
implementation
{------------------------------------------------------------------------------
  Procedimiento utilizado para crear bordes de una tabla o esquema con
  un caracter especificado
-------------------------------------------------------------------------------}
Procedure CreaBordes(F,C,Cant:Integer;Carac:Char);
 var
   H         : THandle;
   P         : Cardinal;
   CoordAuxi : _COORD;
 begin
   CoordAuxi.X := C;
   CoordAuxi.Y := F;
   H := GetStdHandle(STD_OUTPUT_HANDLE);
   FillConsoleOutputCharacter(h,carac,cant,CoordAuxi,P);
 end;
 {------------------------------------------------------------------------------
  Procedimiento que limpia toda la pantalla
 -------------------------------------------------------------------------------}
 Procedure Limpia;
  Var
    H        : THandle;
    P        : Cardinal;
    LArea,
    Cord_Aux : _COORD;
    i        : integer;
 begin
   Cord_Aux.X := 0;
   H := GetStdHandle(STD_OUTPUT_HANDLE);

   LArea := GetLargestConsoleWindowSize(H);
   for i := 0 to LArea.Y do
   begin
     Cord_Aux.Y := i;
     FillConsoleOutputCharacter(H,#0,LArea.X,Cord_Aux,P);
   end;

   GotoXY(0,0);
 end;
  {------------------------------------------------------------------------------
   Procedimiento que limpia un área de la pantalla en dependencia de los
   parámetros especificados.
 -------------------------------------------------------------------------------}
 Procedure Limpia(F1,F2,C1,C2:Integer);
 Var
   H        : THandle;
   P        : Cardinal;
   LArea,
   Cord_Aux :_COORD;
   i        : integer;
 begin
   Cord_Aux.X := 0;
   H := GetStdHandle(STD_OUTPUT_HANDLE);
   LArea := GetLargestConsoleWindowSize(h);
   Cord_Aux.X := C1;
   for i := F1 to F2 do
   begin
     Cord_Aux.Y := i;
     FillConsoleOutputCharacter(H,#0,C2-C1,Cord_Aux,P);
   end;
   GotoXY(C1,F1);
 end;
 {------------------------------------------------------------------------------
  Procedimiento que ubica el cursor en un lugar específico de la pantalla
 -------------------------------------------------------------------------------}
 Procedure GotoXY(X,Y:Integer);
 Var
   H      : THandle;
   MyCord : _COORD;
 begin
   MyCord.X := x;
   MyCord.Y := y;
   H := GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleCursorPosition(H,MyCord);
 end;
 {------------------------------------------------------------------------------
  Crea una tabla de dos filas y una columna, la primera fila para un encabezado
  y tiene un alto fijo, la segunda para los detalles y se le puede especificar
  el alto. También podemos especificar el ancho de dicha tabla. 
 -------------------------------------------------------------------------------}
 Procedure CreaTabla(Ancho,Alto:Integer);
 var
  i:Integer;
 begin
  CreaBordes(1,2,Ancho,#205);
  CreaBordes(3,2,Ancho,#205);
  CreaBordes(1,1,1,#201);
  CreaBordes(1,Ancho+1,1,#187);
  CreaBordes(2,1,1,#186);
  CreaBordes(2,Ancho+1,1,#186);
  CreaBordes(3,1,1,#204);
  CreaBordes(3,Ancho+1,1,#185);
  for i := 4 to Alto do
  begin
   CreaBordes(i,1,1,#186);
   CreaBordes(i,Ancho+1,1,#186);
  end ;
  CreaBordes(Alto,2,Ancho,#205);
  CreaBordes(Alto,1,1,#200);
  CreaBordes(Alto,Ancho+1,1,#188);
 end;
end.
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:14:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi