Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-12-2015
andrecuellar andrecuellar is offline
Miembro
NULL
 
Registrado: sep 2015
Posts: 13
Poder: 0
andrecuellar Va por buen camino
Programar en consola, sin formularios

Buenas, mi consulta es la siguiente, resulta que tengo que programar ciertas cosas, pero yo estaba acostumbrado a hacerlo con formularios y usando el diseñador, ahora mi profesor me está pidiendo que lo haga en consola, me pueden dar una ayudita? según yo era lo mismo que pascal pero cuando pongo:

uses crt y
ClrScr

me da errores ("cannot resolve unit name 'crt' at line 3 (3:13)". "Undeclarated identifier 'ClrScr' at line 7 (7:3)", y cuando ejecuto sale file not found crt.dcu en la sección de mensajes). y si los saco también me da errores en una ventana que dice "runtime error 105 at 0040A18A", cómo puedo resolverlo? o como se programa en consola? yo lo hacía con fomularios, labels y edit's, gracias de antemano!

esto es lo que quiero hacer, es un simple ejercicio de prueba, una vez entienda como se programa en consola lo demás es relleno y va por mi cuenta


SIN CRT NI CLSCR

Código Delphi [-]
program Project1;
uses
  SysUtils;
  var
  n:integer;
begin
  write ('Digite un número: ');
  readln(n);
  if (n mod 2=0) then
  write ('Es par')
  else
  write ('Es impar');
end.


CON CRT Y CLRSCR
Código Delphi [-]
program Project1;
uses
  SysUtils, crt;
  var
  n:integer;
begin
  ClrScr;
  write ('Digite un número: ');
  readln(n);
  if (n mod 2=0) then
  write ('Es par')
  else
  write ('Es impar');
end.

repito gracias de antemano, soy nuevo en esto, uso embarcadero rad studio 2010 y le doy en console application al abrir un nuevo proyecto y nada mas, sin forms ni nada
Responder Con Cita
  #2  
Antiguo 05-12-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola andrecuellar.

La unidad Crt es usada por Turbo Pascal en aplicaciones de 16 bits y por Free Pascal en linux/DOS.

Delphi 1 la soportaba y aunque no me animo a afirmarlo, creo que en Delphi 2 también era posible usarla. Pero ya no se contempló nativamente en las posteriores versiones de Delphi.

Fijate si encontras algún enlace útil aquí: Crt unit for Delphi 2010

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 05-12-2015
andrecuellar andrecuellar is offline
Miembro
NULL
 
Registrado: sep 2015
Posts: 13
Poder: 0
andrecuellar Va por buen camino
entonces como programo directamente en la consola sin que salgan esos errores? por favor si me podrías decir
Responder Con Cita
  #4  
Antiguo 05-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Es que no son "errores", simplemente estas queriendo usar en tu codigo unidades que no existen, y luego llamadas a funciones que no existen (en tu version actual de Delphi por lo menos no existen)
Responder Con Cita
  #5  
Antiguo 05-12-2015
andrecuellar andrecuellar is offline
Miembro
NULL
 
Registrado: sep 2015
Posts: 13
Poder: 0
andrecuellar Va por buen camino
y como podría hacer para programar en consola? o sea, sin formularios, gracias
Responder Con Cita
  #6  
Antiguo 05-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
El codigo que pusiste mas arriba es correcto sin Crt te da algun problema? Porque a mi me parece correcto
Responder Con Cita
  #7  
Antiguo 05-12-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Como te comenta Agustin, quitando la alusión a la unidad Crt (y a ClrScr), ese código funciona correctamente en modo consola.

Para lo único que estas incluyendo la unidad Crt es para usar la función ClrScr y, de necesitarla si o si, podes escribir la tuya:
Código Delphi [-]
program Project1; {$APPTYPE CONSOLE}

uses SysUtils, Windows;

procedure ClrScr();
var
  hnd   : THandle;
  scrnfo: CONSOLE_SCREEN_BUFFER_INFO;
  st    : string;
  co    : _COORD;
begin
  hnd  :=  GetStdHandle(STD_OUTPUT_HANDLE);
  GetConsoleScreenBufferInfo(hnd, scrnfo);
  st   := StringOfChar(' ', scrnfo.dwSize.X * scrnfo.dwSize.Y);
  Writeln(st);
  co.X := 0;
  co.Y := 0;
  SetConsoleCursorPosition (hnd, co);
end;

begin
  ClrScr();
  ...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 05-12-2015
andrecuellar andrecuellar is offline
Miembro
NULL
 
Registrado: sep 2015
Posts: 13
Poder: 0
andrecuellar Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
El codigo que pusiste mas arriba es correcto sin Crt te da algun problema? Porque a mi me parece correcto
entonces hay un problema aquí, por que con el código que cité arriba no corre, sale una ventana que dice "runtime error 105 at 0040A18A", alguien me podría ayudar?
Responder Con Cita
  #9  
Antiguo 05-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Eso es porque sacaste la directiva {$APPTYPE CONSOLE};

De hecho el Wizard cuando pones Console Application te lo genera el solo, solo que hay que dejarlo

El codigo completo seria asi

Código Delphi [-]
program Project1;

{$APPTYPE CONSOLE} // no me elimines!!! 

uses
  SysUtils;

var
  n: integer;

begin
  write('Digite un número: ');
  readln(n);
  if (n mod 2 = 0) then
    write('Es par')
  else
    write('Es impar');

end.
Responder Con Cita
  #10  
Antiguo 05-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Edito: El mensaje me salio duplicado, aprovecho para editar este para agregar algunas lineas mas

Otra cosa que te recomiendo es que dejes una llamada a Readln al final de todo, porque cuando llega al fin del programa la consola se cierra y no vas a poder "ver los resultados"

Con un Readln al final el programa se quedara esperando hasta que alguien de enter para cerrarse (el clasico 'Presione ENTER para salir...')

Última edición por AgustinOrtu fecha: 05-12-2015 a las 23:50:31.
Responder Con Cita
  #11  
Antiguo 05-12-2015
andrecuellar andrecuellar is offline
Miembro
NULL
 
Registrado: sep 2015
Posts: 13
Poder: 0
andrecuellar Va por buen camino
Cita:
Empezado por AgustinOrtu Ver Mensaje
Edito: El mensaje me salio duplicado, aprovecho para editar este para agregar algunas lineas mas

Otra cosa que te recomiendo es que dejes una llamada a Readln al final de todo, porque cuando llega al fin del programa la consola se cierra y no vas a poder "ver los resultados"

Con un Readln al final el programa se quedara esperando hasta que alguien de enter para cerrarse (el clasico 'Presione ENTER para salir...')
Gracias! que estupidez que me mandé jajaja, ahora otra cosa que no me agrada es que se cierra apenas muestra el último mensaje, es posible hacer que la ventana quede sin cerrarse? o que al menos el resultado sea visible? jaja
Responder Con Cita
  #12  
Antiguo 06-12-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por andrecuellar Ver Mensaje
Gracias! que estupidez que me mandé jajaja, ahora otra cosa que no me agrada es que se cierra apenas muestra el último mensaje, es posible hacer que la ventana quede sin cerrarse? o que al menos el resultado sea visible? jaja
Cita:
Empezado por AgustinOrtu Ver Mensaje
...
Otra cosa que te recomiendo es que dejes una llamada a Readln al final de todo, porque cuando llega al fin del programa la consola se cierra y no vas a poder "ver los resultados"

Con un Readln al final el programa se quedara esperando hasta que alguien de enter para cerrarse (el clasico 'Presione ENTER para salir...')
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Se pueden programar apps para iOS sin saber programar? nlsgarcia La Taberna 7 04-08-2014 11:09:36
LL Modo Consola. rxaxx9 API de Windows 1 09-05-2011 10:20:34
GUI con Consola JXJ Varios 2 03-12-2007 22:08:17
Timer en consola b2k Varios 7 20-07-2007 15:26:29
Consola con IB1.5 Iván Firebird e Interbase 5 21-05-2003 09:56:42


La franja horaria es GMT +2. Ahora son las 00:40:59.


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