Etiquetado: aplicaciones, c, programacion, programas, videojuegos
- Este debate tiene 7 respuestas, 1 mensaje y ha sido actualizado por última vez el hace 3 semanas, 5 días por
hazelvm2.
-
AutorEntradas
-
Snaked
ParticipanteBueno, me animo a escribiros este curso donde os guiaré con mano firme por el tortuoso camino de la programacion con C++ Builder 6
¿Que es C++ Builder 6? os preguntaréis, pues básicamente, es un compilador de C y C++ que tiene un IDE (entorno de desarrollo integrado) desde el cual podremos hacer todas las tareas que tengan que ver con el desarrollo de nuestros programas
Este compilador es del año 2002 y desde entonces, han salido cerca de 20 versiones mas modernas de Builder, Borland lo abandonó por ser obsoleto y no ofrece ningun tipo de soporte para el, por suerte para nosotros, circula por internet una version con su keygen que nos va de maravilla para ir aprendiendo algo mas sobre la programacion de juegos y aplicaciones para PC
Hay que destacar que C++ Builder 6 es un compilador 32bits puro, es decir, genera EXE’s normalmente (aunque tambien puede generar DLL’s de windows) que sirven para cualquier plataforma windows normalmente de windows Me y XP en adelante… yo la verdad no he pasado mas allá de windows 7 (que es el sistema que utilizo actualmente) pero si os digo que en Windows XP y en 7 este compilador funciona perfectamente y los ejecutables se ejecutan a la perfeccion.
Vale vale, pero yo lo que quiero es instalarlo y ponerme con el lo antes posible!! Sin problema, lo primero que tienes que hacer, es bajarte el fichero comprimido con WinRAR que está en esta direccion:
y a continuacion seguir este tutorial que indica los pasos a seguir para instalar el setup de instalacion y registrar la copia
los pasos son los siguientes
1. descomprimir el archivo en una carpeta en el Escritorio
2. Instalar mediante el archivo «Borland C++Builder 6.msi»Lanzar el Keygen y darle a «Generate» para generar un serial nuevo
Elegir en el tipo de instalacion el modo «Custom» y desactivar
las casillas siguientes:«Sample Programs»
«Help Files»
Estas carpetas pueden encontrarse en la carpeta BorlandAddon y las copiaremos despues de instalar el compilador manualmente a la carpeta donde esta el CBuilder6 (normalmente en Archivos de Programa / Borland /CBuilder6) ahi sera donde copiaremos las carpetas HELP y EXAMPLES3. Una vez termine el setup de instalacion, ejecutaremos «Register Now» desde el menu de inicio de windows -> Borland C++ Builder 6
en la ventana que se abre seleccionaremos «Register or activate by
phone or web browser»
y copiaremos y pegaremos el Serial number, Authorization key y
Registration Code para obtener el Activation Serial4. y ya esta listo el compilador, reiniciamos el PC y creamos el acceso directo en el escritorio arrastrando el ejecutable del compilador al Escritorio
Espero que todo os haya quedado claro y por si acaso, aqui os dejo el video explicativo en castellano del proceso que no os llevará mas de 20 minutos
Video de proceso de instalacion del compilador C++ Builder 6
-
Este debate fue modificado hace 5 años, 8 meses por
Snaked.
Snaked
ParticipanteContinuamos con este pequeño curso, suponiendo que todo haya ido bien en la instalacion y tengáis el C++ Builder 6 instalado os preguntaréis:
Muy Bonito todo pero ¿por donde empiezo?
Lo primero y lo mas sensato, seria coger un libro de C++ Builder en formato papel y leeroslo con tranquilidadyo os recomiendo este:
Resumen del libro
C++ Builder surgió de la fusión de dos tecnologías en un único entorno de desarrollo, nació siendo una herramienta de desarrollo de última generación sumamente mejorada hasta llegar a la actual versión 5. El entorno de desarrollo de C++ Builder es simple, flexible y potente al mismo tiempo, contando con un gran número de componentes prefabricados que facilitarán de forma notable la creación de cualquier aplicación. El compilador, por su parte, está altamente optimizado, procesando el código a una velocidad vertiginosa y generando ejecutables de un tamaño razonable. En este libro encontrará una definición clara de la estructura general del lenguaje C++, de muchos de los componentes de C++ Builder, de su utilización y de los distintos aspectos de la programación sobre Windows etc. El contenido de este libro, le aportará los conocimientos generales precisos para iniciar el desarrollo de cualquier aplicación. Francisco Charte es autor de cuarenta libros y dos centenares de artículos, tratando sistemas operativos y programación en múltiples lenguajes. Incluye CD-ROM, con todo el código de los programas ejemplos descritos en el libro, los cuales le despejarán cualquier duda que quede tras la lectura teórica.
Pero supongamos que la tranquilidad no es vuestro fuerte y la sensatez brilla por su ausencia….entonces no nos queda mas que cambiar a Visual BASIC (jajaja) no, ya en serio……intentaré explicaros como funciona el IDE del compilador
Antes de nada, os aclararé una cosa de vital importancia, el funcionamiento que sigue el compilador es el de la programacion por Eventos, un evento, no es mas que una caracteristica que se produce cuando sucede algo en Windows (que tambien es un sistema operativo por Eventos) por ejemplo….el usuario pulsa una tecla en su teclado, se produce un evento que notifica a la aplicacion que se ha pulsado esa tecla….otro tipo de eventos son por ejemplo el movimiento del raton, o del joystick o algo tan aparentemente trivial como la creacion de un nuevo archivo en el disco duro
Los objetos, propiedades, métodos y eventos son las unidades básicas de la programación orientada a objetos. Un objeto es un elemento de una aplicación, que representa una instancia de una clase. Propiedades, métodos y eventos son las unidades de creación básicas de los objetos y constituyen sus miembros.
Los componentes son unos elementos genéricos con una funcionalidad muy concreta, cuya única finalidad es la reutilización. Cada uno de ellos está destinado a realizar una tarea típica en una aplicación.
Un componente de la VCL es una clase que caracteriza a un control de Windows agregando propiedades, métodos y gestores de eventos a cada control.
La filosofía de los componentes en C++ Builder es exactamente la misma que en Visual Basic. Esto es tanto así que algunos componentes pueden utilizarse en ambos entornos (los componentes ActiveX).
Páginas de componentes
Como ya hemos comentado anteriormente los componentes se agrupan en la paleta de componentes en distintas páginas, a saber:
Standard: Incluye los componentes comunes y más habituales de los programas Windows.
Additional: Los componentes de esta página son controles especializados. propios de C++ Builder.
Win32: Componentes de cuadros de diálogo propios de Windows 95/NT.
System: Esta página incluye controles muy especializados para interacción con el sistema.
Internet: Componentes para distintos protocolos de acceso a Internet.
Data Access y Data Controls: Componentes especializados para acceso a bases de datos.
Midas: Esta página incluye componentes que permiten el desarrollo de aplicaciones multicapa con MIDAS.
Decision Cube: Incluye componentes para realizar análisis multidimensionales de datos con objeto de tomar decisiones.
QReport: Componentes para diseñar rápidamente informes y resúmenes.
Dialogs: Contiene cuadros de diálogo comunes en aplicaciones Windows listos para usar.
Win 3.1: Componentes propios de Windows 3.1, la mayoría de ellos se mantienen en C++ Builder sólo por compatibilidad con versiones anteriores.
Samples: Componentes de demostración (cómo hacer componentes personalizados).
Active X: Los componentes de esta página son objetos Active X, creados por otros desarrolladores puede que utilizando otros lenguajes de programación.
Propiedades, métodos y gestores de eventos
De un componente podemos destacar tres aspectos: sus propiedades, los métodos que puede ejecutar y los eventos a los que puede responder.
Propiedades.
Las propiedades son los elementos del componente que configuran su aspecto y controlan su comportamiento.
Muchos componentes tienen propiedades en común. Por ejemplo, todos los componentes visuales tienen las propiedades Top y Left que controlan la posición del componente en el formulario, tanto en tiempo de diseño como en tiempo de ejecución.
Hemos visto como pueden establecerse y modificarse las propiedades de los componentes en tiempo de diseño utilizando el inspector de objetos. Las propiedades tienen, normalmente, un método de acceso asociado que se ejecuta al modificar la propiedad en tiempo de ejecución. Para modificar una propiedad basta (generalmente) con asignarle el nuevo valor. Al realizar un cambio, la VCL invoca el método de acceso a la propiedad. En el caso concreto de la propiedad Left, la VCL dibuja de nuevo todo el formulario en la nueva ubicación.
A modo de resumen, las propiedades tienen dos especificadores de acceso que se emplean al consultar o modificar el valor de una propiedad en tiempo de ejecución. En definitiva, hay un especificador de lectura y un especificador de escritura.
Los especificadores de acceso asocian métodos de lectura o de escritura (funciones, en definitiva) con las propiedades. Al consultar o modificar el valor de una propiedad se invocan, automáticamente, las funciones respectivas asociadas:Al asignar un nuevo valor a una propiedad se está accediendo al especificador de escritura. La VCL comprueba si existe un método de acceso asociado al especificador de escritura y si es así, lo ejecuta. Si no existe, simplemente asigna el nuevo valor a la propiedad.
Al consultar el valor de una propiedad se está accediendo al especificador de lectura. En la mayoría de los casos el especificador de lectura no hace más que devolver el valor de la propiedad.
Métodos.
Los métodos son funciones asociadas al componente que pueden invocarse para que el componente realice distintas acciones.
Por ejemplo, todos los componentes visuales tienen un método llamado Show() para mostralos y otro llamado Hide() para ocultarlos. En el ejemplo 3 invocamos al método Terminate() asociado a la aplicación que se estaba ejecutando (Objeto Application) para terminar su ejecución como respuesta a la pulsación del botón.
En C++ los métodos son miembros de una clase, al igual que las propiedades.
Eventos.
Un evento es cualquier suceso que puede ocurrirle a un componente (movimiento del ratón, pulsación de algún botón del ratón, pulsación de una tecla del teclado, desplazamiento o redimensionamiento de una ventana, etc.) que pueden condicionar el comportamiento y apariencia del programa.
Cada componente poseerá una serie de eventos que puede recibir o generar. Se pueden tratar los eventos de un componente que necesitemos, y dejar que los demás sean tratados por defecto.
Cuando se responde a un evento se dice que se está manipulando el evento. Los eventos se manejan mediante los gestores o manipuladores de eventos.La forma de tratar un evento asociado a un componente en C++ Builder es sencilla: se activa el componente que va a responder al evento y utilizando el Inspector de Objetos (pestaña Events) se selecciona el evento al que debe responder y, cuando se active el editor de código, se escribe el código asociado al gestor del evento.
Se dice que Windows está orientado a eventos. Esto significa que cualquier programa está condicionado por lo eventos que ocurren en el entorno Windows. Un programa Windows está continuamente sondeando al sistema ante la ocurrencia de cualquier evento y de ocurrir, Windows avisa al programa enviándole un mensaje. Un programa Windows está ocioso la mayor parte del tiempo esperando a que ocurra algún evento.
Componentes visuales y no visuales
Se pueden establecer muchas clasificaciones para los componentes. Una de ellas es la de visuales o controles, frente a no visuales.
Un componente es visual cuando tiene una representación gráfica en tiempo de diseño y ejecución (botones, barras de scroll, cuadros de edición, etc.), y se dice no visual en caso contrario (temporizadores, cuadros de diálogo -no visibles en la fase de dieño-, etc). Por lo demás no existen más diferencias entre ellos, excepto, claro está, las derivadas de la visualización del componente.
Los componentes no visuales se pueden colocar en los formularios de la misma manera que los controles, aunque en este caso su posición es irrelevante.
El IDE, es la paleta de botones y componentes junto con algunas ventanas mas que conforman la parte de ESCRITORIO DE C++ Builder
pasamos a verlas
y aqui tienes un tutorial completo que deberias al menos leerte un par de veces
Snaked
Participanteimaginemos que ya habeis entendido lo que he explicado hasta ahora, y os habéis leido someramente el tutorial indicado al final del mensaje anterior….
¿Que seria lo siguiente?
Pues aprender el lenguaje C y sus particularidades y despues leer un poco sobre el lenguaje C++ para saber por donde nos moveremos (no hace falta conocer el C++ al dedillo pero si es necesario conocer un poco el lenguaje «C» standard y mas concretamente el juego de funciones que C++ Builder 6 pone a disposicion de los programadores)
Para aprender C, os recomiendo encarecidamente que os hagáis con un libro de Anaya titulado «Programacion En C»
es un libro que explica paso a paso y muy entretenidamente, todo lo que hay que saber sobre el lenguaje «C» …. yo pase 18 meses en la mili leyendomelo cada vez que tenia un rato libre en el cuartel… mis compañeros pensaban que estaba loco jajaj
Bueno historias de la Puta Mili como diria el otro….proseguimos….imaginemos nuevamente que ya conocemos el lenguaje «C» y hemos hecho algun que otro intento de programa y HEMOS FRACASADO porque el compilador parece que no entiende C ….siiii siiii si lo entiende lo que pasa que tiene una particular forma de hacerlo
1º funciones como el printf, scanf etc, son para usos de una forma particular y normalmente estan previstos para modo consola (el antiguo modo de MS-Dos) pero windows al ser un Shell Gráfico por encima del sistema operativo, tiene sus propias funciones de entrada o salida de mensajes asi que vamos a entrar en manteca y hacer nuestro primer programa
cuando abrimos un nuevo proyecto en C++ Builder, y miramos en la ventana del codigo fuente vemos algo como esto
esas lineas que veis ahi son las básicas para el Formulario (Form1) de nuestra aplicacion….existen 2 vistas principales para la aplicacion…el Form1 (llamado asi por defecto) que es digamos, la aplicacion en si o mas bien la ventana que windows mostrará cuando ejecutemos el programa y ver que hace en ejecucion
para cambiar del inspector de codigo fuente al form tenemos un par de botoncitos que son estos:
asi que cambiamos al form1 y seleccionamos por ejemplo, un LABEL de Texto (component TLabel) que lo tenéis aqui
Snaked
Participantepulsamos sobre el LABEL (simbolo de letra A) en la paleta de componentes (pestaña STANDARD) y luego pinchamos sobre el Form1 (nuestro form de la aplicación)
quedaria algo asi
bien, ya tenemos ahi el TLabel…. como cambiamos el texto?? muy fácil, nos aseguramos que el label esta seleccionado en el Form, y nos vamos al Inspector de Propiedades y buscamos la propiedad CAPTION y le ponemos el texto que queramos (en mi caso Hola Mundo)
Tambien podemos buscar la propiedad FONT y cambiar el estilo de letra y su tamaño mediante el panel de opciones que se muestra (para mostrar el dialogo de las fuentes, pulsamos en el botoncito con los 3 puntos que sale al cliquear en la columna derecha de la propiedad FONT (donde pone Sans Serif, 8))
y sale este panel:
le pondremos la fuente, tamaño y propiedades como queramos y le damos a ACEPTAR.
y asi me queda a mi con la fuente OLD ENGLISH MT a 26 pixeles de tamaño
tambien podemos cambiar la propiedad FONT->Color para cambiar el color del texto del Tlabel
y ya si queremos ver como saldria el programa le damos arriba del todo en la barra de menu a FILE->Save Project as: te preguntará si quieres guardar el Unit1.cpp le decimos que si (boton GUARDAR) y lo guardamos todo en dicha carpeta (y en la ventana que nos sale a continuacion ponemos el nombre de proyecto (terminado en .bpr) y lo guardamos en una carpeta) tambien
y ya por ultimo le damos al boton PROJECT->Build Proyecto y despues a RUN->Run o al botoncito con la flechita verde de PLAY en los botones de debajo de la barra de menu
saldra una ventana informativa de la compilacion y si no hay errores mostrará nuestro primer programa en ejecucion
Snaked
Participantebien, hemos puesto un TLabel en el Formulario de la aplicación pero por lo demás el programa no hace absolutamente nada….a ver como lo podemos mejorar
añadiremos un TButton al Formulario (Cliqueamos en el button en la paleta de componentes y luego sobre el form y nos aparecerá)
Si queremos cambiar el tamaño del boton solo tenemos que pinchar en los cuadraditos que lo rodean y con el boton pulsado estirar para darle el nuevo tamaño
seguidamente, cliqueamos 2 veces seguidas con el boton izquierdo del raton sobre el Botón que hemos creado en el Formulario de forma que se nos abrirá la ventana de codigo con la funcion TButtonclick ya automaticamente creada
dentro de las llaves es donde pondremos nuestro codigo en C/c++ que se ejecutará solamente en el preciso momento en que el boton es pulsado
añadimos el siguiente código:
Label1->Caption = "Esto es una prueba"; Label1->Refresh();
la funcion quedaria de esta forma:
le damos a File->Save All y guardamos todo el proyecto
finalmente le damos a Run->Run
ahora nos sale el Tlabel y el TButton en el formulario y si pulsamos el botón el texto del TLabel cambiará
Aqui hemos aprendido a como cambiar una propiedad de un componente desde el código
Puntualizar, que las propiedades normalmente se acceden desde una funcion poniendo el nombre del componente seguido de esto -> y el nombre de la propiedad que vayamos a cambiar.
En este caso la asignacion de una cadena de texto se hace encerrando la cadena entre comillas dobles y asignandola con el simbolo igual (=) y tambien hemos de saber que el final de una linea de codigo en C y C++ se ha de poner un punto y coma (;) esto siempre hemos de recordarlo porque es muy comun olvidarse de ponerlo y que el compilador al compilar de un error.
La segunda linea que es un Refresh() es un método del componente que se encarga de actualizar dicho componente….algunos componentes requieren ser refrescados si modificamos alguna de sus propiedades
-
Esta respuesta fue modificada hace 5 años, 8 meses por
Snaked.
Snaked
Participanteproseguimos con el curso, ahora vamos a hacer una modificacion que requiere el uso de variables y de una funcion de c++ builder llamada «rand()» que lo que hace, es darnos un numero aleatorio
la sintaxis de rand() es la siguiente:
rand() % 10
nos da un numero de entre 10 posibles pero ojo, el c++ builder siempre cuenta desde 0 hasta el numero que le pongamos en el codigo -1 o sea que esta funcion que comentamos nos daria un numero del 0 al 9….ambos inclusive
para arreglarlo utilizaremos la sentencia IF del lenguaje
volvemos a la funcion del TButton y ponemos lo siguiente (borramos las 2 lineas que pusimos en el ejercicio anterior) y ponemos esto:
int numero_aleatorio = 0; // creamos una variable de tipo entero (int) puesta a 0 randomize(); // iniciamos la semilla aleatoria con esta funcion numero_aleatorio = rand() % 100; //asignamos a la variable el resultado de rand() //si lo que hay en numero_aleatorio es igual a un 0, asignale el numero 100 a la variable if(numero_aleatorio == 0) numero_aleatorio = 100; //asignamos la variable al Caption del label y refrescamos Label1->Caption = numero_aleatorio; Label1->Refresh();
listo, ahora cada vez que pulsemos el boton, veremos como el TLabel cambia tomando diferentes numeros al azar
Nota: las lineas que empiezan con // son comentarios y no son tenidas en cuenta por el compilador, simplemente nos permiten documentar el codigo.
Snaked
ParticipanteEspero que todos hayáis entendido bien hasta ahora lo que voy explicando….vamos a proceder a continuación a explicar los tipos de DATO que podemos utilizar en C++ Builder
A toda variable que se use en un programa, se le debe asociar (generalmente al principio del programa) un tipo de dato específico.
Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de ejecución del programa y a lo largo de toda la vida útil del propio programa.
Los tipos de datos más comunes en C++Builder son:
Tipo – Tamaño – Rango
———————————————–unsigned char 8 bits 0 a 255
char 8 bits -128 a 127
short int 16 bits -32,768 a 32,767
unsigned int 32 bits 0 a 4,294,967,295
int 32 bits -2,147,483,648 a 2,147,483,647
unsigned long 32 bits 0 a 4,294,967,295
enum 16 bits -2,147,483,648 a 2,147,483,647
long 32 bits -2,147,483,648 a 2,147,483,647
float 32 bits 3.4 x 10-38 a 3.4 x 10+38(6 dec)
double 64 bits 1.7 x 10-308 a 1.7*10+308(15 dec)
long double 80 bits 3.4 x 10-4932 a 1.1 x 10+4932
AnsiString cadena de caracteres
AnsiString no es propiamente un tipo de dato, sino una clase que se especializa en al almacenamiento y manipulación de datos de tipo string, es decir, como clase ya contiene toda una serie de métodos (procedimientos y funciones) que pueden usar directamente las variables(objetos) que se declaren de tipo AnsiString, como en el siguiente ejemplo;
área de declaración carga normal de variables strings (que antes no se podía hacer directamente en C o C++)
ejemplo:
AnsiString MI_CADENA_DE_TEXTO = «Hola, me llamo pepe.»;
tambien, se pueden efectuar procesos con las variables ya considerándolas como objetos de la clase AnsiString estos procesos antes ocupaban una librería especial llamada < string.h > * Interesante este nuevo tipo (Clase) AnsiString y también interesante estos dos métodos ( LowerCase() y ToInt() ), el resto de métodos, se deben buscar en la ayuda del C++Builder (solo abrir folder o libro llamado “referencia del programador”, pedir índex y luego escribir AnsiString ).
ejemplos de declaraciones de variables:
int NUMERO_ENTERO = 100;
AnsiString CADENA_DE_TEXTO = «El C++ es Genial»; //las cadenas se encierran entre comillas dobles
float NUMERO_CON_DECIMALES = 9.2;
double NUMERO_CON_MUCHOS_DECIMALES = 100.43232342342342323432″;
bool VARIABLE_BOOLEANA = true; //solo admite ‘true’ o ‘false’ o 0 y 1
char = ‘C’; //los caracteres de TIPO Char se entrecomillan con comillas simplesVariables locales y globales.
Las reglas de ámbito de un lenguaje son las reglas que controlan si un fragmento de código conoce o tiene acceso a otro fragmento de código o de datos.
Una variable local es aquella cuyo ámbito se restringe a la función que la ha declarado se dice entonces que la variable es local a esa función. Esto implica que esa variable sólo va a poder ser manipulada en dicha sección, y no se podrá hacer referencia fuera de dicha sección. Cualquier variable que se defina dentro de las llaves del cuerpo de una función se interpreta como una variable local a esa función.
Cuando una variable x es local a una función func1, significa que la función func1 es la propietaria de dicha variable, y puede acceder a ella y modificarla. Si cualquier otra función del programa necesita conocer el valor de la variable x, es la función func1 la que debe transferir el valor de x a través del paso de argumentos en la llamada a la función. Si además esta función desea modificar el valor de dicha variable, entonces tendrá que devolver el nuevo valor a func1, y será func1 quien se encargue de asignar el valor devuelto a su variable x.
El argumento formal (los veremos en la siguiente sección) ámbito de un argumento formal es el mismo que el de una variable local; el argumento formal definido en la cabecera de una función sólo podrá ser accedido dentro del cuerpo de dicha función, y no en otros lugares del programa.
Una variable global es aquella que se define fuera del cuerpo de cualquier función, normalmente al principio del programa, después de la definición de los archivos de biblioteca (#include), de la definición de constantes simbólicas y antes de cualquier función. El ámbito de una variable global son todas las funciones que componen el programa, cualquier función puede acceder a dichas variables para leer y escribir en ellas. Es decir, se puede hacer referencia a su dirección de memoria en cualquier parde del programa.
El uso de variables globales no es aconsejable a pesar de que aparentemente nos parezca muy útil, esto se debe a varias razones fundamentales:
Legibilidad menor.
Nos condiciona en muchos casos que el programa sólo sirvapara un conjunto de casos determinados.
El uso indiscriminado de variables globales produce efectos colaterales. Esto sucede cuando existe una alteración no deseada del contenido de una variable global dentro de una función, bien por invocación, bien por olvidar definir en la función una variable local o un parámetro formal con ese nombre. La corrección de dichos errores puede ser muy ardua.
Atenta contra uno de los principios de la programación, la modularidad. El bajo acoplamiento supone no compartir espacios de memoria con otras funciones, y potenciar el paso de información (llamadas) para que la función trate la información localmente.
Las variables declaradas dentro de una función son automáticas por defecto, es decir, sólo existen mientras se ejecuta la función. Cuando se invoca la función se crean estas variables en la pila y se destruyen cuando la función termina. La única excepción la constituyen las variables locales declaradas como estáticas ( static ). En este caso, la variable mantiene su valor entre cada dos llamadas a la función aún cuando su visibilidad sigue siendo local a la función.
Una función siempre es conocida por todo el programa, excepto cuando se declara como estática, en cuyo caso sólo la podrán utilizar las funciones del mismo módulo de compilación.
En C, todas las funciones están al mismo nivel de ámbito. Es decir, no se puede definir una función dentro de otra función. Esto es por lo que C no es técnicamente un lenguaje estructurado en bloques.
También puede suceder que en un mismo ámbito aparezcan variables locales y globales con el mismo nombre. Cuando sucede esta situación, siempre son las variables locales y argumentos formales los que tienen prioridad sobre las globales.
Snaked
ParticipanteDicho lo cual, vamos a hacer otro programa sencillito
Nos vamos al menu de arriba…a File->New->Application y preparamos el builder para una nueva aplicacion (si tenemos algun proyecto abierto lo guardamos y lo cerramos todo con File->Close All)
Nos dirigimos a la paleta de componentes PESTAÑA STANDARD y colocamos sobre el Form 3 componentes que serán un TButton, y un TLabel
Cambiamos la propiedad Caption del TButton y le ponemos un texto descriptivo (en mi caso he puesto «Muestrame la Fecha de Hoy»
hacemos doble click sobre el boton y ponemos la siguiente linea en el cuerpo de la funcion onClick del boton
Label1->Caption = DateToStr(Date());
creo que ya habréis adivinado por donde van los tiros….la funcion DateToStr convierte a cadena de texto el resultado de la llamada a la funcion Date() que lo que hace es darnos la fecha del reloj del ordenador (fecha actual)
y compilamos y ejecutamos el programa
el Resultado seria este Form1… quedaria así:
-
Esta respuesta fue modificada hace 5 años, 8 meses por
Snaked.
-
Este debate fue modificado hace 5 años, 8 meses por
-
AutorEntradas