sábado, 25 de abril de 2026
martes, 6 de enero de 2026
Turbo Pascal 6.0
Hurgando en la memoria… Turbo Pascal 6.0, una herramienta para el desarrollo de software que incluía un compilador. Desarrollado por Borland en 1990.
Turbo Pascal 6.0 se convirtió en la herramienta ideal para
desarrollar programas científicos y de ingeniería. Descendiente del lenguaje
Pascal que apareció por primera vez en
1971, de la mano de Niklaus Wirth.
El compilador de Pascal de Borland, que data de 1985, fue el de mayor venta, sobre todo para la plataforma IBM-PC.
lunes, 14 de julio de 2025
Tablas de Matemáticas
domingo, 4 de mayo de 2025
Clipper 5 (El Mejor de los 80's-90's)
Hurgando en la memoria... Clipper 5, el mejor desarrollador de aplicaciones de base de datos de los 80's y 90's, bajo MS-DOS, con su preprocesador, su compilador y enlazador para crear archivos ejecutables (EXE). Fue el mejor de su época. Aunque no estaba Orientado a Objetos, su programación modular lo convirtió en el mejor entorno para desarrollar aplicaciones comerciales de escritorio.
Con la aparición de Windows, y el desarrollo de aplicaciones para este sistema operativo, los programadores optaron por la librería FiveWin y FiveWinHarbour para construir programas de 32-64 bits usando la API de Windows.
Desarrollado en 1985 por Nantucket Corporation y vendido posteriormente a Computer Associates, la que lo comercializó como CA-Clipper, hasta su última versión CA-Clipper 5.3 de 1997.
Hasta el año 2011, el Proyecto Harbour era compatible con la versión CA-Clipper 5.2 (La mejor, y la más usada). Sin duda, Clipper 5 fue una de las mejores herramientas de programación de alto nivel.
jueves, 10 de octubre de 2024
Problema de pothenot
jueves, 3 de octubre de 2024
La Espiral de Transición (La Clotoide)
domingo, 11 de agosto de 2024
La Curva Circular
lunes, 27 de mayo de 2024
Curso Práctico de Java - Capítulo Nº 6
y
contraseña en Java
Toda aplicación debe contar con una función que permita ingresar con seguridad al sistema y cuidar de que usuarios no autorizados puedan ingresar a la misma. Por eso es típico implementar la muy conocida caja de diálogo donde se exija ingresar con un usuario y contraseña.
En esta sección se ilustrará con detalle cómo construir una ventana o caja de diálogo donde el usuario deba colocar su nombre de usuario y una contraseña para poder ingresar al sistema.
Para mostrar en pantalla la ventana o diálogo, como se muestra en la figura mostrada abajo, es necesario construir una clase llamada "Password.java" y utilizar algunos métodos como setBounds, setResizable y setLayout.
setResizable: Para manejar si la ventana se puede maximizar o no.
setBounds (x,y,Largo,Ancho): Para ubicar los elementos en el formulario.
setLayout: Para anular el gestor de diseño por defecto.
Password.java
//***************************************************************************************
//**** Universidad Nacional Sistema de Inscripción Regular (UNSIR
3.0.0) ****
//****
****
//**** CLASE: Password (Para crear el diálogo que sirve para ingresar
usuario y ****
//**** contraseña de acceso)
****
//**** ****
//**** AUTOR: CARLOS CÓRDOVA - CC DESARROLLO DE SOFTWARE 2007-2024 ****
//***************************************************************************************
//***************************************************************************************
// Paquetes de la librería estándar de clases de Java que se usarán en
esta clase
//***************************************************************************************
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//***************************************************************************************
// Inicio Clase Password (Clase principal)
//***************************************************************************************
public
class Password extends JFrame implements ActionListener
{
//*** Se asigna a la variable
curDir la ruta actual de nuestra carpeta de trabajo
String curDir =
System.getProperty("user.dir");
ImageIcon imagen = new
ImageIcon(curDir+"/Usuarios.gif");
//*** Se asignan a los objetos la imagen, etiquetas, cajas de texto y botones
JLabel EtiquetaInUsuario = new JLabel("Usuario :");
static TextField CajaTextoInUsuario = new
TextField(11);
JLabel EtiquetaInContrasena = new JLabel("Contraseña :");
static TextField CajaTextoInContrasena = new
TextField(11);
JButton BotonAceptar = new JButton("Aceptar");
JButton BotonCancelar = new
JButton("Cancelar");
//*** Se define el método principal "main" de la Clase Password
//*** Se define el aspecto
de ventanas propio del sistema operativo (windows, Mac, Linux, etc.)
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e)
{
e.printStackTrace();
}
new Password();
}
{
//*** Se define el título y
tamaño de la ventana
setTitle("Usuario y contraseña");
setBounds( 0, 0, 280, 210 );
setResizable(false);
//*** Se cambia el icono de la ventana por el archivo "UN.gif" que está en nuestra carpeta de trabajo
setIconImage (new ImageIcon(curDir+"/UN.gif").getImage());
//*** y botones del diálogo
o ventana
CajaTextoInUsuario.setText("");
CajaTextoInContrasena.setEchoChar('*');
BotonAceptar.setToolTipText("Ingresar usuario...");
BotonCancelar.setToolTipText("Cancelar y salir");
// 2.- Ubicar el elemento
-> elemento.setBounds (x,y,a,b)
// 3.- Agregar al formulario
o dialogo el elemento -> add.(elemento)
//*** Anulamos el Gestor de Diseño
setLayout(null);
add(EtiquetaImagen);
add(EtiquetaInUsuario);
add(CajaTextoInUsuario);
add(EtiquetaInContrasena);
add(CajaTextoInContrasena);
add(BotonAceptar);
add(BotonCancelar);
Dimension pantalla, cuadro;
pantalla =
Toolkit.getDefaultToolkit().getScreenSize();cuadro = this.getSize();
this.setLocation(((pantalla.width -
cuadro.width)/2),(pantalla.height - cuadro.height)/2);
setVisible(true);
//*** Eventos producidos por los botones de la ventana
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent
e)
{
//*** Se ejecuta el
método CierraVentana
CierraVentana();
}
});
{
public void actionPerformed(ActionEvent
evt)
{
//*** Aquí se coloca la
función que produzca el evento luego de pulsar el botón
"Aceptar"
}
});
{
public void actionPerformed(ActionEvent
evt)
{
//*** Se ejecuta el
método CierraVentana
CierraVentana();
}
});
}
{
Object s = e.getSource();
}
{
JRootPane rootPane = new JRootPane();
KeyStroke stroke1 =
KeyStroke.getKeyStroke("ESCAPE");
KeyStroke stroke2 =
KeyStroke.getKeyStroke("ENTER");
//*** Acción para cerrar la ventana pulsando la tecla "ESC"
{
public void actionPerformed(ActionEvent
actionEvent)
{
CierraVentana();
}
} ;
InputMap inputMap =
rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(stroke1,
"ESCAPE");
rootPane.getActionMap().put("ESCAPE", SalirEscape);
{
public void actionPerformed(ActionEvent
actionEvent)
{
if(getFocusOwner() instanceof
JButton)
{
Component boton =
getFocusOwner();
((JButton)boton).doClick();
}
else if(getFocusOwner() instanceof
TextField)
{
getFocusOwner().transferFocus();
}
}
} ;
InputMap inputMap2 =
rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap2.put(stroke2,
"ENTER");
rootPane.getActionMap().put("ENTER", EnterFoco);
return rootPane;
}
{
setVisible(false);
dispose();
System.exit(0);
}
}
//***************************************************************************************
// Fin Clase Password (Clase principal)
//***************************************************************************************
Al compilar y
ejecutar esta clase en Java, se mostrará por pantalla lo siguiente:
jueves, 25 de abril de 2024
¿Qué es un Azimut?
miércoles, 29 de noviembre de 2023
¿Ha Muerto Visual Basic 6.0?
Han pasado más de 30 años desde que se publicó la primera versión de Visual Basic. Fue por muchos años el lenguaje de programación más popular, son muchas las aplicaciones desarrolladas con este entorno que aún funcionan, incluso en Windows 10.
Mucho se ha escrito sobre su obsolescencia, fue desincorporado por Microsoft de su suite de herramientas de programación, y sustitutído por otros que prometían cubrir por más, las deficiencias de este popular lenguaje.
Visual Basic 6.0 fue la última versión conocida, y desde entonces (esto lo afirman muchos programadores de la vieja escuela en artículos publicados en la web), son muchas las pequeñas compañías, empresas o como se le llame, que aún prefieren seguir usando sus viejas aplicaciones desarrolladas en Visual Basic motivados por la vieja premisa: "De que si algo sigue funcionado, por qué cambiarlo".
En el caso del uso hoy, de Visual Basic y sus antiguas aplicaciones, de seguro una de las razones de peso debe ser que migrar a nuevas tecnologías tiene un costo considerable, además al parecer la tecnología COM (Component Object Model) es la tecnología básica para las tecnologías OLE (Object Linking and Embedding), la cual sigue usando Microsoft en su Suite Office. Esto último, será en realidad la razón de porque las viejas aplicaciones de 32 bits desarrolladas en Visual Basic 6.0 siguen funcionando en sistemas como Windows 10.
Microsoft terminó el soporte oficial para Visual Basic 6.0 en 2008, pero hoy se especula que las aplicaciones desarrolladas en Visual Basic 6.0 seguiran funcionando hasta el 2024, a ciencia cierta no se sabe con absoluta seguridad que esto sea así. Lo cierto es que hasta ahora, y esto es fácilmente demostrable, que un programador, haga modificaciones al viejo código de una aplicación hecha en Visual Basic, lo compile, y el ejecutable resultante (.EXE) funcione perfectamente en un sistema Windows 8, 8.1 ó 10 de 32-63 bits.
Por esto, habría que preguntarse ¿Ha muerto Visual Basic 6.0?.




.jpg)





