Ventanas.  virus  Cuadernos.  Internet.  oficina.  Utilidades.  Conductores

Biblioteca de componentes visuales (VCL) Delphi para visualización informacion grafica nos proporciona los siguientes componentes visuales: Image (imagen), PaintBox (ventana de dibujo), DrawGrid (tabla de imágenes), Chart (tablas y gráficos), Animate (videoclips de salida) y Form. Estos componentes tienen una propiedad Canvas (descrita anteriormente) que da acceso a cada píxel. Por supuesto, no tiene que dibujar píxel por píxel para trabajar con gráficos en Delphi, el sistema Delphi proporciona herramientas poderosas para trabajar con gráficos.

Echemos un vistazo más de cerca a los componentes anteriores:

Componente de imagen (imagen)

Es un objeto de la clase TImage. Se utiliza para mostrar imágenes leídas de archivos gráficos. Por defecto, muestra en la superficie del formulario imágenes presentadas en formato *.bmp. Para mostrar imágenes en formato jpg, debe incluir el módulo JPEG en la directiva de usos. Se encuentra en la pestaña Adicional de la Paleta de componentes.

Después de colocar el componente Imagen en el formulario, toma la forma de un área rectangular seleccionada.

Figura 9 - Componente de imagen en el formulario

Para abrir un cuadro de diálogo para seleccionar la imagen deseada, haga lo siguiente con el Inspector de objetos. Para hacer esto, busque la propiedad Imagen y haga clic en los tres puntos a la izquierda. Se abre la ventana Editor de imágenes y seleccione Cargar en ella, en la ventana que se abre, seleccione el archivo de imagen.

Esto también se puede hacer mediante programación llamando al método LoadFromFile de la propiedad Picture:

Imagen1.Imagen.LoadFromFile("nombre_imagen.jpeg") ;

donde name_pic.jpeg es el nombre del archivo.

Tabla 8 - Principales propiedades del componente Imagen

Propiedad

Descripción

Imagen mostrada en el campo del componente

Dimensiones de los componentes. Si estas dimensiones son más pequeñas que el tamaño de la ilustración y las propiedades Estiramiento, Tamaño automático y Proporcional se establecen en Falso, se muestra parte de la imagen.

Le permite escalar imágenes automáticamente sin distorsión. Para realizar el escalado, el valor de la propiedad AutoSize debe ser False

Le permite escalar (comprimir o estirar) automáticamente la imagen según el tamaño del componente Imagen. Si el tamaño del componente no es proporcional al tamaño de la imagen, la imagen se distorsionará.

Le permite cambiar automáticamente el tamaño de un componente para que coincida con el tamaño de la imagen

Le permite determinar la posición de la imagen en el campo del componente Imagen horizontalmente, si el ancho de la imagen es menor que el ancho del componente.

Superficie para mostrar gráficos

Especifica el color de fondo transparente de una imagen.

Ejemplo 1: escriba un visor de imágenes utilizando el componente Imagen. El programa debe tener las siguientes características:

  • ver imágenes en una carpeta;
  • Ver la imagen en tamaño completo o en el formato más adecuado para el tamaño de la ventana;
  • · administrar archivos de imagen, así como imprimir, guardar, eliminar y modificar imágenes;
  • si es necesario, abra la imagen en el programa de edición;

Figura 10 - Ventana del programa antes de su lanzamiento

Creación de proyectos:

  • 1. Cree una carpeta para los archivos del programa e inicie el entorno de desarrollo integrado de Delphi.
  • 2. Agregue componentes al formulario:

Primero colocaremos en el formulario el componente Imagen, el componente principal con el que tendremos que trabajar. Además de esto, necesitamos los siguientes componentes:

  • · ScrollBox Es necesario cuando en modo de tamaño completo la imagen va más allá de la Imagen. Asignamos el valor alClient a su propiedad Aling para que sus dimensiones cambien proporcionalmente con el tamaño de la ventana. Y le colocamos el componente Imagen;
  • · También agregaremos los componentes de diálogo SavePictureDialog y OpenPictureDialog para guardar y abrir imágenes. Necesitamos el primero para copiar la imagen en el directorio seleccionado, el segundo, para llamar al cuadro de diálogo abierto. archivo gráfico. Se encuentran en la página Diálogos de la Paleta de componentes. Desde esta página, también necesitamos el componente PrintDialog, al que debemos llamar el cuadro de diálogo de selección de impresora para imprimir.
  • Agreguemos MainMenu para agregar el menú principal al programa y XPManifest para un diseño más colorido
  • · También necesitamos un lugar para almacenar los nombres de las imágenes que están en el directorio de trabajo. Para estos fines, es conveniente el componente ListBox, que se puede ocultar al procesar el evento Create del formulario Form1.
  • · Para colocar los botones de navegación y trabajar cómodamente con ellos, agreguemos el panel Velo, en el que colocaremos estos botones (Imagen anterior, Imagen siguiente, Tamaño real, Ajustar al tamaño, Eliminar, Copiar a, Imprimir, Editar). SpeedButton se selecciona como un componente para ellos.
  • · Agrega un temporizador para atrapar presionando las teclas "Izquierda" (imagen anterior), "Derecha" (imagen siguiente) y la tecla "Del" (eliminar imagen).
  • · Y un componente más: ProgressBar, que muestra el proceso de carga de archivos *.Jpg de gran tamaño.
  • 3. Escriba el código para manejar el evento de clic de botón (Imagen anterior, Imagen siguiente, Tamaño real, Ajustar al tamaño, Eliminar, Copiar a, Imprimir, Editar). Escriba el código para manejar el evento de hacer clic en los elementos del menú MainMenu (Salir, Abrir, Cerrar, Crear).
  • 4. Establezca la configuración inicial para crear el formulario. Haga doble clic en un área vacía del formulario y escriba el código procedimiento procedimiento TForm1.FormCreate(Sender:TObject), consulte el código del módulo en el Apéndice 1.
  • 5. Escriba procedimientos de la siguiente forma:

procedimiento FindFileInFolder(ruta, ext: cadena);

Este procedimiento escanea la carpeta de ruta en busca de archivos con la máscara ext.

En el Apéndice 1 (Listado de programa 3) se encuentra una lista completa de códigos del módulo de programa.

  • 1. Enumere las capacidades del componente Imagen.
  • 2. ¿Qué objeto de clase es el componente Imagen?
  • 3. 3. ¿Qué tipo de archivo admite el componente Imagen de forma predeterminada?
  • 4. 4. Enumere las principales propiedades del componente Imagen.
  • 5. 5. ¿Qué propiedad almacena la imagen del componente Imagen?

TRABAJO DE LABORATORIO

SUJETO: « Gráficos enDelfos- construcción de los más simples
formas geométricas"

Breve información de la teoría.

Delphi proporciona al desarrollador tres formas de mostrar gráficos:

    trazar mientras el programa se está ejecutando

    uso de gráficos creados previamente

    creación de imágenes utilizando componentes gráficos

Para el trazado, se han creado clases especiales que proporcionan herramientas y métodos para dibujar: las herramientas se describen en tres clases: Tfont, Tpen, Tbrush; el área de dibujo y los métodos son proporcionados por la clase Tcanvas.

Clasefuente- establece las características de la fuente utilizada para mostrar el texto en el lienzo. Las propiedades de la clase se describen en la sección "Propiedades básicas disponibles para la mayoría de los componentes".

Clasebolígrafo– establece las características del bolígrafo (lápiz) con el que se dibujan las líneas.

Propiedades clase bolígrafo:

color:Tcolor - color de línea (negro por defecto)

Ancho:integer – grosor de línea en píxeles;

estilo = (psSolid, psDash, psDot, psdashDot, psClear) - define el estilo de línea (sólido, discontinuo, punteado, guión-punto, invisible)

ClaseCepillo– establece las características del pincel utilizado para pintar sobre las superficies de la imagen.

Propiedades clase Cepillo:

color:Tcolor - color del pincel (el valor predeterminado es blanco)

estilo- adorno de pincel, puede tomar los siguientes valores:

BsSolid - coloración sólida

BsClear - sin relleno

BsVertical - líneas verticales

BsBdiagonal - líneas diagonales derechas

BsDiagCross - celda oblicua

BsHorisontal- lineas horizontales

BsFdiagonal - líneas diagonales izquierdas

BsCruz - celular

Clasetelas- define la superficie sobre la que se coloca la imagen creada y las herramientas con las que se crea la imagen: fuente, lápiz, pincel.

De forma predeterminada, toda el área de cliente del formulario se utiliza como área de trabajo (lienzo, "lienzo") (sin el título, el menú principal y las líneas de desplazamiento del formulario), pero puede asignar áreas de trabajo más pequeñas dentro del formulario usando componentes caja de pintura o Imagen. El origen del lienzo es la esquina superior izquierda del área de trabajo, el ancho del área de trabajo está determinado por la propiedad Ancho del cliente, altura - propiedad ClientHeight.

Propiedades clase telas:

Lienzo:Tcanvas - define el área de dibujo

Cepillar:Tbrush - pincel para pintar formas cerradas

Fuente:Tfont - fuente para mostrar texto en el lienzo

bolígrafo:Tpen - lápiz (bolígrafo) para dibujar

PenPos:Tpoint - la posición actual del cursor invisible en el lienzo

Comentario : Tipo Tpoint - definido de la siguiente manera:

Tipo Tpoint = registro

Píxeles: Tcolor: establece los colores de los píxeles del lienzo, X, Y: coordenadas de píxeles. La propiedad Píxeles es útil para trazar gráficos usando puntos del color seleccionado.

Métodos principales de la clase TCanvas

    procedimiento Mover a(x,y:entero); - mueve el lápiz sin trazar una línea a un punto con coordenadas (x, y).

    procedimiento línea a(x,y:entero); - dibuja una línea desde el punto actual hasta el punto con coordenadas (x, y).

Ejemplo : Dibuje una línea diagonal azul en la forma desde la esquina superior izquierda de la forma hasta la esquina inferior derecha.

Pen.color:= clblue;

MoverA(0,0); LineTo(ClientWidth, ClientHeight);

    procedimiento Rectángulo(x1,y1,x2,y2: entero); - dibuja un rectángulo: x1, y1 - coordenadas de la esquina superior izquierda; x2, y2 - coordenadas de la esquina inferior derecha.

Ejemplo : Dibuja un cuadrado relleno de amarillo de 60 px en el medio de la forma.

variable Xc,Yc: entero; //

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.color:=clyellow;

Lienzo.rectángulo(xc-30,Yc-30,xc+30,Yc+30);

    procedimiento Elipse(x1,y1,x2,y2: entero); - dibuja una elipse inscrita en un rectángulo con las coordenadas especificadas.

Ejemplo : dibuja una elipse que está inscrita en el componente PaintBox.

PaintBox1.Canvas.Pen.Width:=4; // ancho de línea = 4 píxeles

PaintBox1.Canvas.Ellipse(0,0, PaintBox1.ClientWidth, PaintBox1.ClientHeight);

    procedimiento Polígono(); - dibuja un polígono cerrado dado por una matriz de coordenadas.

Ejemplo : dibuja un rombo relleno que conecta los puntos medios de los lados de la forma

Var Xc, Yc: entero; // coordenadas del centro del área del cliente del formulario

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Lienzo.Pincel.Color:=Rgb(275,140,70); // naranja color sombreado

Lienzo.Polígono();

fin;

    procedimiento Arco(x1,y1,x2,y2,x3,y3,x4,y4: entero); - muestra un arco de elipse delimitado por un rectángulo (x1, y1, x2, y2). El arco se muestra desde un punto con coordenadas (x3,y3) hasta un punto con coordenadas (x4,y4) contra horario.

Ejemplo : dibuje un arco de elipse que conecte el centro del lado superior del componente
PaintBox con la mitad de su lado derecho.

Procedimiento Tform1.Button1Click(Sender:Tobject);

Var X3,y3,x4,y4: Número entero;

Con PaintBox1 hacer

Canvas.Pen.Color:= clBlanco;

Lienzo.Pen.Ancho:= 3;

Canvas.rectangle(0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight);

X3:= ClientWidth div 2;

X4:=AnchoCliente;

Y4:= AlturaCliente div 2;

Canvas.Pen.Color:= clMaroon;

Canvas.ARC(0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight, x3, y3, x4, y4);

fin;

    procedimiento Acorde(x1,y1,x2,y2,x3,y3,x4,y4: entero); - dibuja una cuerda - una línea recta que conecta 2 puntos de la elipse: un punto con coordenadas (x3, y3) con un punto (x4, y4).

Ejemplo : sustituya en el ejemplo dado por el método ARC, el método Chord y obtenga este resultado.

    procedimiento Tarta(x1,y1,x2,y2,x3,y3,x4,y4: entero); - dibuja un segmento de elipse que conecta el centro de la elipse con las coordenadas (x3,y3) y (x4,y4).

Ejemplo : presente en el ejemplo dado para el método ARC, el método PIE y obtenga este resultado.

    procedimiento fuera de texto(x,y:entero;Texto:cadena); - muestra la cadena pasada en el parámetro Texto en un rectángulo, cuya esquina superior izquierda se especifica coordenadas x,y. Las características de la fuente las establece la herramienta Fuente.

Ejemplo : escribe el nombre del gráfico construido al pie del formulario.

Canvas.Font.Height:=20 ; // altura del carácter 20 píxeles

Canvas.Font.Color:=clblue;

Canvas.TextOut(10, ClientHeight-24, 'Gráfico de función SIN(X)');

Componentes gráficos

Delphi ofrece una serie de componentes listos para usar para mejorar interfaz de usuario. Estos componentes se colocan en la página. Adicional Y Sistema paleta de componentes.

ComponenteImagen(ClaseTiempo) – diseñado para mostrar imágenes gráficas almacenadas en archivos externos con extensiones:

    ico(icono, pictograma);

    bmp (mapa de bits, mapa de bits);

    Wmf, .emf (metarchivo);

    Jpg, .jpeg (imagen comprimida en JPEG).

Principal propiedades :

tamaño automático:booleano: si es verdadero, el componente ajusta su tamaño al tamaño de la imagen cargada; falso por defecto.

Estirar:booleano: si es verdadero, el valor cargado ocupa toda el área del componente; el valor predeterminado es falso.

Lienzo:Tcanvas: se utiliza para dibujar dentro del componente en tiempo de ejecución.

imagen:Tpicture - Especifica la imagen colocada en el componente.

Principal métodos clase imagen:

procedimiento Carga del archivo(nombre de archivo:cadena); - carga una imagen en el componente desde un archivo llamado Nombre de archivo.

procedimiento Guardar en archivo(nombre de archivo:cadena); -guarda la imagen del componente en un archivo llamado Nombre de archivo.

Componentecaja de pintura - define un área rectangular para dibujar. La propiedad principal es Lienzo, todos los métodos de la clase Tcanvas están disponibles, no tiene propiedades independientes.

Ejemplo : dibujar una elipse color amarillo El inscrito en el componente PaintBox1.

Procedimiento Tform1Button1Click(remitente:Tobject);

Con PaintBox1.Canvas hacer

Pincel.Color:=clamarillo;

Elipse(0,0,PaintBox1.ClientWidth, PaintBox1.ClientHeight);

fin;

ComponenteBitBtn botón de mapa de bits

El botón BitBtn, a diferencia del estándar, puede contener, además del nombre (Caption), una imagen especificada por la propiedad glifo. Hay un conjunto de botones BitBtn estándar, con propiedades predefinidas (con una imagen, título y propósito específicos): el tipo de botón estándar se selecciona a través de la propiedad amable. Tipo=(bkPersonalizado, bkAbortar,bkCancelar, bkCerrar...)

Tarea número 1

Cree una aplicación que contenga dos componentes de imagen y 4 botones en el formulario principal ("Subir imagen", "Crear forma geométrica", "Cambiar color", "Salir") y le permita:

a) cargar en el componente Imagen1 una imagen gráfica seleccionada por el usuario de tal manera que la imagen ocupe toda el área del componente Imagen.

b) en el componente Imagen1, muestre la inscripción “Esta es una imagen de un archivo.

(para cualquier medida de las dimensiones y posición del componenteImagen1 inscripción obligatoria
estar estrictamente por debajo del componente).

c) dibuje una forma geométrica dentro del componente Imagen2: un segmento relleno de una elipse que conecte el centro del componente Imagen con los puntos medios de los lados inferior y derecho del componente Imagen.

(con cualquier cambio en el tamaño y la posición del componenteImagen2, la figura debe construirse correctamente, es decir según la asignación relativa al componenteImagen2)

d) cambiar el color de la línea de la figura dibujada en Image2 a petición del usuario utilizando el componente ColorDialog.

Tarea número 2

Cree una aplicación que le permita colocar aleatoriamente varias etiquetas en un componente de imagen (por ejemplo, la palabra "¡Hurra!"). Para implementar, use un generador números al azar Randomize y la función Random.

El usuario debe ingresar las dimensiones del componente Imagen, la palabra que se muestra en la Imagen y el número de palabras.

Tarea número 3

Cree una aplicación que le permita seleccionar el nombre de una forma geométrica del ListBox y dibujar la forma seleccionada en el componente Imagen. El color de la forma se selecciona del componente RadioGroup.

Tarea número 4

Divida el componente PaintBox1 en 4 partes iguales, pinte cada parte con un color diferente, por ejemplo: azul, amarillo, verde, rojo.

Junto a cada esquina de PaintBox1, escriba las coordenadas de esa esquina (en relación con el origen de la forma en la que se encuentra el componente PaintBox1).

Tarea número 5

CON

seleccione el tipo de figura dibujada del componente Radiogroup1, el color de relleno del componente Radiogroup2 y dibuje la figura seleccionada en el componente Imagen.

Tarea número 6

Cree una aplicación que permita al usuario establecer las dimensiones del componente PaintBox1 (en píxeles).

Divida el componente PaintBox1 en 2 partes iguales, dentro de cada parte dibuje una elipse rellenada con el color seleccionado por el usuario en ColorDialog.

Tarea número 7

CON crear una aplicación que te permita:

seleccione el nombre de la figura geométrica de la lista ListBox y dibuje la figura seleccionada en el componente Imagen. La forma debe rellenarse con el color seleccionado por el usuario en el componente ColorDialog si se selecciona Sí en el componente RadioGroup.

Tarea número 8

Cree una aplicación que permita al usuario establecer las dimensiones del componente PaintBox1 (en píxeles).

Divida el componente PaintBox1 en 4 partes iguales, dentro de cada parte dibuje una forma geométrica diferente (elipse, rombo, triángulo y rectángulo). El usuario selecciona el color de cada forma en ColorGrid.

Tarea número 9

seleccione el nombre de la geometría del ListBox
formas (elipse, rombo, rectángulo) y dibujar
la forma seleccionada en el componente Imagen. Ubicación
formas en el componente Imagen (I cuarto, II cuarto,

III o IV trimestre) y se selecciona el color de relleno de la figura
de los componentes de RadioGroup.

Tarea número 10

Cree una aplicación que permita al usuario establecer las dimensiones del componente PaintBox1 (en píxeles).

Proporcione que el tamaño del lado no puede ser texto, no puede ser un número negativo y no puede exceder el tamaño más pequeño del formulario.

Divida el componente PaintBox1 en 4 partes iguales, dentro de cada parte dibuje una forma geométrica seleccionada por el usuario en el Combobox (elipse, rombo, triángulo y rectángulo). El usuario selecciona el color de la forma en el ColorBox.

Tarea número 11

Crea una aplicación que te permita:

seleccione la posición del dibujable del componente Radiogroup

en el componente Imagen del triángulo rectángulo, establezca
el color de relleno de la forma o el color del contorno, dependiendo de
habilitando los botones de casilla de verificación. Selección de color a través de
Componente ColorGrid.

Tarea número 12

Cree una aplicación que permita al usuario establecer las dimensiones del componente PaintBox1 (en píxeles).

Proporcione que el tamaño del lado no puede ser texto, no puede ser un número negativo y no puede exceder el tamaño más pequeño del formulario.

Divida el componente PaintBox1 en 2 partes iguales, dentro de una de las partes dibuje una figura geométrica seleccionada por el usuario en el Combobox (elipse, rombo, triángulo y rectángulo). El usuario selecciona el color de la forma en el ColorBox.

Por ejemplo, puede cambiar el color de un formulario como este:

form1.Color:= ColorBox1.Colors;

Tarea número 13

Crea una aplicación que te permita:

a) dibuje un cuadrado en el medio de la forma (el usuario ingresa el tamaño del lado del cuadrado). Proporcione que el tamaño del lado no puede ser texto, no puede ser un número negativo y no puede exceder el tamaño más pequeño del formulario.

b) divida el cuadrado con una o dos diagonales, dependiendo de la inclusión de los botones de casilla de verificación, y pinte sobre cada triángulo resultante en un color diferente. La elección del color la hace el usuario.

Tarea número 14

Cree una aplicación que permita al usuario establecer las dimensiones del componente PaintBox1 (en píxeles).

Proporcione que el tamaño del lado no puede ser texto, no puede ser un número negativo y no puede exceder el tamaño más pequeño del formulario.

Divida el componente PaintBox1 en 2 partes iguales, dibuje un rombo dentro de una parte y dibuje cualquier triángulo dentro de la otra parte. El usuario selecciona el color de la forma en el ColorBox.

Por ejemplo, puede cambiar el color de un formulario como este:

form1.Color:= ColorBox1.Colors;

Tarea número 15

Crea una aplicación que te permita:

a) establecer las dimensiones del componente Imagen horizontal y verticalmente para que sean iguales e iguales al número ingresado por el usuario desde el teclado;

(siempre que el tamaño del lado no pueda ser texto, no pueda ser un número negativo y no pueda exceder el tamaño más pequeño del formulario)

b) dividir el componente Imagen en 4 cuadrados iguales con dos líneas azules;

c) dentro de cada cuadrado resultante, dibuje un círculo inscrito en él (el usuario puede seleccionar el color de los círculos a través del cuadro de diálogo de selección de color).

Tarea número 16

Cree una aplicación que permita al usuario establecer las dimensiones del componente PaintBox1 (en píxeles).

Proporcione que el tamaño del lado no puede ser texto, no puede ser un número negativo y no puede exceder el tamaño más pequeño del formulario.

Divida el componente PaintBox1 en 9 partes iguales y pinte cada rectángulo de tablero de ajedrez resultante. El usuario selecciona el color de relleno en el ColorBox.

Por ejemplo, puede cambiar el color de un formulario como este:

form1.Color:= ColorBox1.Colors;

Tarea número 17

Coloque dos componentes Imagen y cuatro botones en el formulario: Color de línea, Color de relleno, Aceptar y Salir; y el componente Editar.

Cuando hace clic en el botón Aceptar, Image1 dibuja un cuadrado con lado X e Image2 dibuja un triángulo rectángulo con lados iguales, cada uno de los cuales tiene una longitud X.

El vértice del triángulo coincide con el origen de la Imagen2. Uno de los vértices del cuadrado coincide con el origen de la Imagen1.

El botón Aceptar está disponible solo cuando se seleccionan el color de línea y el color de relleno para dibujar la forma.

X: selecciona aleatoriamente, utilizando la función Aleatorio y el valor del valor X debe mostrarse en el componente Editar.

Tarea número 18

Cree una aplicación que permita al usuario establecer las dimensiones del componente PaintBox1 (en píxeles).

Divida el componente PaintBox1 en 4 partes iguales, dentro de la parte seleccionada por el usuario, se debe construir un círculo relleno, cuyo tamaño lo establece el usuario. El usuario selecciona el color de relleno en el ColorBox.

Por ejemplo, puede cambiar el color de un formulario como este:

form1.Color:= ColorBox1.Colors;

Para mostrar información gráfica en la biblioteca Delphi, se proporcionan componentes, cuya lista se proporciona en la Tabla. 6.

Tabla 6

Componentes para mostrar información gráfica

Componente Página Descripción
imagen (imagen) Adicional Se utiliza para mostrar gráficos.
PaintBox (ventana para dibujar) Sistema Se utiliza para crear un área en el formulario en la que puede dibujar
DrawGrid (mesa de dibujo) Adicional Se utiliza para mostrar datos que no son de texto en filas y columnas
Chart (tablas y gráficos) Adicional El componente pertenece a la familia de componentes TeeChart que se utilizan para crear tablas y gráficos.
Chartfx (tablas y gráficos) ActiveX Editor de tablas y gráficos
FIBook (páginas de Excel) ActiveX Componente para ingreso y procesamiento de información numérica
VtChart (Gráficos) ActiveX Ventana de diagrama

Además, puede mostrar e ingresar información gráfica en la superficie de cualquier componente de ventana que tenga la propiedad Lienzo- lienzo.

Tablas de imágenes: componentes DrawGrid y StringGrid

Componente DibujarCuadrícula se utiliza para crear una tabla en una aplicación que puede contener gráficos. Este componente es similar al componente cuadrícula de cuerdas, ya que este último se deriva de rejilla Por lo tanto, en DibujarCuadrícula todas las propiedades, métodos, eventos del componente están presentes cuadrícula de cuerdas, distintos de los relacionados con el texto, es decir, Aparte de las propiedades Células, Columnas, Filas, Objetos. Desde este punto de vista, el componente StringGrid tiene mucho más potencial que rejilla de tracción, porque puede almacenar tanto imágenes como textos en celdas. Y si desea ingresar texto en algunas celdas rejilla de tracción, entonces deberá usar métodos para enviar texto al lienzo para esto, lo cual no es muy conveniente.

Componentes DrawGrid y StringGrid tener un lienzo Lienzo, donde se pueden publicar imágenes.

Hay un método celda recta, que devuelve el área del lienzo asignada para la celda dada. Este método se define como

function CellRect(ACol, ARow: Entero largo): TRect;

Dónde ACol y ARrow- índices de columna y fila, a partir de 0, en la intersección de los cuales se encuentra la celda. El área devuelta por esta función es el área del lienzo en el que se puede dibujar la imagen deseada. Por ejemplo, el operador

DibujarCuadrícula.Canvas.CopyRect(DibujarCuadrícula.CellRect(1,1),

BitMap.Canvas,Rect(0,0,BitMap.Height,BitMap.Width));

copias por método Copiar Recto a la celda (1,1) de la tabla DibujarCuadrícula imagen del componente mapa de bits Esta celda es la segunda desde la izquierda y la segunda desde arriba en la tabla porque los índices comienzan en 0. Tenga en cuenta que si las dimensiones de la celda son más pequeñas que el tamaño de la imagen copiada, solo aparecerá la celda izquierda en la celda. parte superior Fotos.

Imagen de lienzo del componente DrawGrid y StringGrid como en el lienzo de cualquier componente, está sujeto a borrado cuando la ventana de la aplicación se superpone con otras ventanas o, por ejemplo, cuando la aplicación está minimizada.

Manera conveniente insertar imágenes en celdas DibujarCuadrícula es usar un controlador de eventos OnDrawCell. Estos eventos ocurren para cada celda de la tabla en el momento de su redibujado. El encabezado del controlador se ve así:

procedimiento TForml.DrawGridlDrawCell(Sender: TObject;

ACol, ARrow: Entero; Recto: TRecto; Estado: TGridDrawState)

Parámetro Estado indica el estado de la celda. Es un conjunto que puede contener los siguientes elementos: gdSeleccionado- celda resaltada gdEnfocado- la celda que está enfocada, gdCorregido- una celda en un área fija de la mesa. Parámetro Estado se puede usar para mostrar celdas de manera diferente en diferentes estados.

Componente de forma

Componente de forma solo puede atribuirse condicionalmente a los medios de visualización de información gráfica, ya que simplemente representa varias formas geométricas, sombreadas adecuadamente. La propiedad principal de este componente es forma(formulario), que puede tomar los siguientes valores:

StRectangle - un rectángulo;

StSquare - cuadrado;

StRoundRect: un rectángulo con esquinas redondeadas;

StRouhdSquare - cuadrado con esquinas redondeadas;

StEllipse - elipse;

StCircle - un círculo.

Otra propiedad esencial del componente es Cepillar(cepillar). Esta propiedad es un objeto de tipo pincel, que tiene una serie de subpropiedades, en particular color (Pincel.Color) y estilo (Estilo de pincel) relleno de forma. Puede ver el relleno en algunos valores de Estilo en la Fig. 3.2. La tercera de las propiedades específicas del componente. forma- bolígrafo(bolígrafo) que define el estilo de línea.

Componente de gráfico

Ahora considere el componente Cuadro. Este componente le permite crear varios cuadros y gráficos que se ven muy impresionantes. Componente cuadro tiene muchas propiedades, métodos, eventos, por lo que si los considera todos, entonces tendría que dedicar un capítulo completo a esto. Por lo tanto, nos limitamos a considerar solo las características principales Cuadro. Y el resto lo puede encontrar en la ayuda integrada de Delphi o simplemente probarlos experimentando con diagramas.

Componente cuadro es un contenedor de objetos Serie- descendientes de clase TchartSeries. Cada uno de estos objetos representa una serie de datos caracterizados por un cierto estilo de visualización: uno u otro gráfico o tabla. Cada componente cuadro puede incluir varias series. Si desea mostrar un gráfico, cada serie corresponderá a una curva en el gráfico. Si desea mostrar gráficos, para algunos tipos de gráficos puede superponer varias series diferentes una encima de otra, para otros (por ejemplo, para gráficos circulares) probablemente se verá feo. Sin embargo, en este caso, puede configurar para un componente cuadro varias series de los mismos datos con diferente tipo diagramas Luego, al hacer que uno de ellos esté activo en cada momento del tiempo, puede darle a elegir al usuario el tipo de gráfico que muestra los datos de su interés.

Coloque uno o dos componentes cuadro en el formulario y observe las propiedades que se abren en el Inspector de objetos. Expliquemos algunos de ellos.

AllowPanning: determina la capacidad del usuario para desplazarse por la parte observada del gráfico durante la ejecución presionando el botón derecho del mouse. Valores posibles: pmNone: el desplazamiento está deshabilitado, pmHori/ontal, pm Vertical o pmBoth: respectivamente, se permite el desplazamiento solo en dirección horizontal, solo en dirección vertical o en ambas direcciones.

AhowZoom: permite al usuario cambiar el zoom de la imagen en tiempo de ejecución cortando fragmentos de un cuadro o gráfico con el cursor del mouse. Si el marco del fragmento se dibuja hacia la derecha y hacia abajo, entonces este fragmento se estira a todo el campo del gráfico. Y si el marco se dibuja hacia arriba y hacia la izquierda, se restaura la escala original.

Título: define el título del gráfico.

Pie: define el título debajo del gráfico. Ninguno por defecto. El texto de la etiqueta está definido por la subpropiedad Texto.

Marco: define el marco alrededor del gráfico.

Junto a muchas de las propiedades enumeradas en el Inspector de objetos, hay botones con puntos suspensivos que le permiten llamar a una u otra página del Editor de gráficos, una ventana de varias páginas que le permite configurar todas las propiedades de los gráficos. También es posible llamar al editor de diagramas haciendo doble clic en el componente cuadro o haga clic en él botón derecho del ratón ratón y seleccionando el comando Editar gráfico en el menú emergente.

Haga doble clic en el componente superior Cuadro. Accederá a la ventana del Editor de gráficos a la página Gráfico, que tiene varias pestañas. En primer lugar, le interesará la pestaña Serie. Haga clic en el botón Agregar: agregue una serie. Accederá a una ventana donde puede seleccionar el tipo de tabla o gráfico. EN este caso seleccione Circular - Gráfico circular. Usando la pestaña Títulos, puede establecer el título del diagrama, la pestaña Leyenda le permite establecer las opciones de visualización para la leyenda del diagrama (lista de símbolos) o eliminarla de la pantalla por completo, la pestaña Panel determina la apariencia del panel en el que se muestra el diagrama, la pestaña 3D le permite cambiar la apariencia de su diagrama: inclinación, corte, espesor, etc.

Cuando está trabajando con el Editor de gráficos y ha seleccionado un tipo de gráfico, los componentes cuadro su formulario muestra su apariencia con datos condicionales ingresados ​​en él. Por lo tanto, puede observar de inmediato el resultado de aplicar varias opciones a su aplicación, lo cual es muy conveniente.

La página Serie, que también tiene varias pestañas, le permite seleccionar características de visualización adicionales para la serie. En particular, para un gráfico circular en la pestaña Formato, es útil habilitar la opción Circular circular, lo que garantizará que el gráfico se muestre como un círculo en cualquier tamaño del componente Gráfico. En la pestaña Marcas, los botones del grupo Estilo determinan lo que se escribirá en las etiquetas relacionadas con los segmentos individuales del gráfico: Valor - valor, Porcentaje - porcentajes, Etiqueta - nombres de datos, etc.

Si lo desea, puede agregar otra serie idéntica a este componente Gráfico haciendo clic en el botón Clonar en la pestaña Serie de la página Gráfico y luego, para esta nueva serie, haga clic en el botón Cambiar y seleccione un tipo de gráfico diferente, como Barra .

Salga del Editor de gráficos, seleccione el componente Gráfico inferior en su aplicación y repita la configuración de propiedades para él usando el Editor de gráficos. En este caso, deberá especificar dos series si desea mostrar dos curvas en el gráfico y seleccionar el tipo de gráfico Línea. Porque el estamos hablando En cuanto a los gráficos, puede utilizar las pestañas Eje y Paredes para establecer las características de las coordenadas de los ejes y las caras tridimensionales del gráfico.

en este diseño apariencia finaliza la aplicación. Queda por escribir el código que especifica los datos que desea mostrar. Para la aplicación de prueba, definamos algunos datos constantes en el gráfico circular y algunas funciones en los gráficos.

Para establecer los valores mostrados, utilice los métodos de la serie. Centrémonos en tres métodos principales.

Método Claro borra la serie de los datos ingresados ​​previamente.

Método Agregar:

Add(Const AValue:Double; Const ALabel:String; AColor:TColor) ,

le permite agregar un nuevo punto al gráfico. Parámetro Un valor corresponde al valor agregado, parámetro Una etiqueta- una etiqueta que se mostrará en el gráfico y en la leyenda, Un color- color. Parámetro Una etiqueta- opcional, se puede dejar vacío: ‘ ’. Método Agregar XY:

AddXY(Const AXValue, AYValue: Doble; Const ALabel: String; AColor: TColor)

le permite agregar un nuevo punto al gráfico de la función. Opciones Valor AX Y Valor AY hacer coincidir el argumento y la función. Opciones ALabel y AColor igual que en el método Agregar.

Por lo tanto, el procedimiento para cargar datos en nuestro ejemplo puede verse así:

constanteAl=155; A2=251; A3=203; A4=404; var i:palabra; comenzar

Con Seriesl empieza

Add(Al,"Tienda l",clAmarillo);

Añadir(A2,"Diseño 2",clBlue);

Añadir(A3,"Piso 3",clRojo);

Añadir(A4,"Diseño 4",clPúrpura); fin;

Serie2.Claro; SerieS.Claro; para i:=0 a 100 empezar

Serie2.AddXY(0.02*Pi*i,sin(0.02*Pi*i)

SerieS.AddXY(0.02*Pi*i,cos(0.02*Pi*i) end;

ClRojo); ,clAzul);

Operadores Claro son necesarios si va a actualizar los datos durante el funcionamiento de la aplicación.

Esto concluye nuestra introducción al componente. Cuadro. Es cierto que consideramos solo una pequeña parte de sus capacidades.


“Mostrar información gráfica en Delphi” Plan temático: 1.С С pppp oooo ssss oooo bbbb yyyy v v vyyyy vvv oooo dddd aaaa yy grrrr aaaa ffff iii hhhh eeee ssss kkkk oooo yyyy nnnn ffff oooo rrrr mmmm ahhh zzzz iiiiii iiiiii c c c c D D D D eeee llll pppp hhhh iiii O O tttt ooooh bbbb rrrr aaaa zhzhzhzh eeee nnnn eeee eeee k k k aaaa rrrr tttt nnnn oooo kkkk O O tttt oooo bbbb rrrr ahhh zhzh eeeeeeeeeeeeeeeeeeeeeeeee y yeeee oooo mmmm eeee tttt rrrr yiii hhhh eeeesssssssss i i d d daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaammmmmmmm....


1. Métodos de visualización de información gráfica. Hay varias formas de mostrar información gráfica en Delphi: Salida de imágenes preparadas previamente (componentes Imagen, Forma); P Construcción de gráficos y tablas (componente Chart, etc.); Imágenes F programáticamente(Objeto de lienzo).


2.Mostrar 2.Mostrar imágenes. Examinamos la visualización de imágenes utilizando el componente de imagen cambiando periódicamente la imagen mostrada en los componentes de imagen. PPPP EDURRRREEEE YYYE TTTT IIII n N N n AAAAAA PP PRRR IIII MMMMEEEE RRRRR ...






3. Display 3. Display de formas geométricas. Y puede crear dibujos simples a partir de varios componentes de forma. P Cambiando programáticamente la posición (.Left,.Top), el tamaño (.Width,.Height) y el color (Brush.Color) de los componentes Shape en la figura, puede implementar elementos de la animación más simple. R R R R aaaa sssssssssss mmmm oooo tttt rrrr eeee tttt b pp pp rrrr iiiiii mmmm eeee rrrr...


4. Construcción 4. Construcción de gráficos y tablas. Los diagramas están destinados a una representación más visual de conjuntos de datos numéricos, su visualización y análisis. RRRR iiiiii mmmm eeee rrrr.... Hay varios componentes para trazar gráficos en Delphi, uno de ellos es el componente Chart (sección TeeChart Std).










Gráficos y diagramas. Los datos para mostrar generalmente se pasan al gráfico mediante programación, por ejemplo: Series1.Clear; (serie clara) for i:=1 to N do Series1.addxy(i, A[i], clGreen); Valor del eje x Valor de eje X-AXIS Color de datos de etiqueta en el gráfico aaaaaaese es rrrrrrrrrrrrrr y y y y y y y y y y y = = = = s s s s iii nnnn ((((xxxx)))))


Siguiente: Trabajo de laboratorio "" "" oooo tttt oooo bbbb rrrraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa! la aplicación para la realización de la animación más simple al cambiar periódicamente la imagen mostrada en los componentes de Imagen. (El número de imágenes es de al menos tres, elija las imágenes usted mismo).




A continuación: Trabajo de laboratorio ““““ PPPP oooo ssss tttt rrrr oooo eeee nnnn iiiiii eeee yy y gr rrrr aaaa ffff iii kkkk oooo vvvv and i and dd dd iii AAAA yyyy rrrr aaaa mmmm mmmm """".. ..Tarea: 1) Modificar la aplicación de trabajo de laboratorio 9 (Mostrar datos en una tabla). Agregue la capacidad de mostrar algunos datos de la tabla en un gráfico de barras o circular. 2) Construir un gráfico de una función dada.

Trabajar con gráficos en Delphi no se trata solo de líneas y dibujos, sino también de impresión documentos de texto. Por lo tanto, en Delphi trabajando con gráficos necesita tomar un poco de tiempo. Trabajar con gráficos en Delphi implica acceder al lienzo: la propiedad Canvas de los componentes. Lienzo Delfos es un lienzo que le permite al programador tener acceso a cada punto (píxel) y, como un artista, mostrar lo que se requiere. Por supuesto, dibuje píxel por píxel para trabajar con gráficos en Delphi no es necesario, el sistema Delphi proporciona potentes herramientas gráficas que facilitan el trabajo del programador.

Cuando se trabaja con gráficos en Delphi, el programador tiene a su disposición el lienzo (canvas, canvas - propiedad Lienzo componentes Delphi), lápiz (propiedad bolígrafo), un pincel (propiedad Brush) del componente u objeto sobre el que se supone que debe dibujar. en el lápiz bolígrafo y cepillos Cepillar Puede cambiar el color (propiedad Color) y el estilo (propiedad Style). El acceso a las fuentes lo proporciona la propiedad canvas Fuente. Estas herramientas le permiten mostrar tanto texto como gráficos bastante complejos de contenido matemático y de ingeniería, así como dibujos. Además, trabajar con gráficos le permite utilizar tales recursos en Delphi ventanas como gráficos y archivos de video.

Por supuesto, no todos los componentes de Delphi tienen estas propiedades. en la pestaña Adicional componente especializado localizado Imagen, diseñado específicamente para dibujar, pero también una propiedad Lienzo tener, por ejemplo, componentes como ListBox, ComboBox, StringGrid, así como el formulario en sí, que coloca nuestros componentes. Además, Delphi usa la propiedad Canvas de un objeto como una impresora para imprimir documentos.

La propiedad principal de un objeto como Canvas Delphi es Píxeles tipo TColor, es decir, es una matriz bidimensional de puntos (píxeles) especificados por su color. El dibujo sobre el lienzo se produce en el momento de asignar un determinado color a cualquier punto del lienzo. A cada píxel se le puede asignar cualquier disponible color de las ventanas. Por ejemplo, ejecutar la instrucción

Imagen1.Canvas.Pixels:=clRed;

Dará como resultado dibujar un punto rojo con coordenadas. Puede obtener el color de un píxel mediante la asignación inversa:

Color:=Imagen1.Canvas.Pixels;

Tipo TColor definido como un entero largo (LongInt). Sus cuatro bytes contienen información sobre las proporciones de los colores azul (B), verde (G) y rojo (R). En sistema hexadecimal se ve así: $00BBGGRR. La proporción de cada color puede variar de 0 a 255. Por lo tanto, para mostrar el punto rojo máximo, debe asignarse color $000000FF.
Para los colores estándar, Delphi define un conjunto de constantes de texto. Puedes verlo abriendo la propiedad Color en el Inspector de Objetos, por ejemplo, del mismo Formulario.

La siguiente tabla contiene algunas propiedades y métodos del lienzo:

Procedimiento TextOut(X, Y: Entero; constante Texto: cadena ancha);
Produce una salida de cadena Texto comenzando en (X, Y) - el píxel superior izquierdo del texto.
Propiedad TextWidth( variable Texto: Cadena): Entero;
Contiene la longitud de la cadena. Texto en píxeles.
Propiedad TextHeight( variable Texto: Cadena): Entero;
Contiene la altura de la línea. Texto en píxeles.
Procedimiento MoveTo(X, Y: Entero);
Mueve la posición al píxel con la dirección (X, Y).
Procedimiento LineTo(X, Y: Entero);
Dibuja una línea recta desde el punto de la posición actual hasta el píxel con la dirección (X, Y). La dirección (X, Y) se convierte en el punto de posición actual.
Procedimiento LlenarRect( constante Recto: TRecto);
Rellena un rectángulo recto en el lienzo usando el pincel actual. Se puede utilizar, entre otras cosas, para borrar parte de la imagen en el lienzo.

Escribamos, usando solo estos métodos de lienzo, una aplicación para una imagen en el lienzo de un componente Imagen texto que se ingresa en el componente memorándum:

Lo primero que haremos será inicializar las variables cuando arranque el programa. Es necesario determinar las dimensiones del área de dibujo (para esto crearemos una variable global Rect del tipo TRect) y establecer el color de fondo Imagen blanco:

procedimiento TForm1.FormCreate(Remitente: TObject);
comenzar
Rect.Izquierda:=0;
Recto Superior:=0;
Rect.Derecha:=Imagen1.Ancho;
Rect.Bottom:=Imagen1.Altura;
Imagen1.Canvas.Brush.Color:=clBlanco;
fin;

Luego dibuja un borde alrededor de los lados de la Imagen:

procedimiento TForm1.página;
comenzar
con Imagen1.Canvas hacer
comenzar
MoveTo(0, 0);
LineTo(Imagen1.Ancho-1, 0);
LineTo(Imagen1.Ancho-1, Imagen1.Altura-1);
LineTo(0, Imagen1.Altura-1);
LíneaA(0, 0);
fin;
fin;

Probemos lo que pasó. Todo funciona, pero el marco aún no se muestra. Así que agreguemos un procedimiento página en el procedimiento FormularioCrear. Ahora es hermoso. A continuación, escribiremos un procedimiento simple para borrar, limpiar Imagen. Deberá llamarse antes de cualquier actualización de imagen, de lo contrario, las imágenes anterior y siguiente se superpondrán.

procedimiento TForm1.limpieza;
comenzar
Imagen1.Canvas.FillRect(Rect); //Rectángulo recto llena de blanco, la imagen se borra.
fin;

Ahora es el turno del propio procedimiento de salida de texto. Comencemos a mostrar el texto desde el punto (3, 3), la esquina superior izquierda de la hoja, con una pequeña sangría de 3 píxeles. Cada línea subsiguiente se desplazará a la altura de la línea:

procedimiento TForm1.prn;
variable yo: entero;
comenzar
con Imagen1.Canvas hacer
para yo:=1 a Memo1.Lines.Count hacer
TextOut(3, 3+(i-1)*TextHeight("A"), Memo1.Lines);
fin;

Ahora todo está listo para la salida de texto. Haremos esto por el evento OnChange:

procedimiento TForm1.Memo1Change(Remitente: TObject);
comenzar
claro;
prn;
página;
fin;

Y finalmente, el procedimiento para cambiar el tamaño de fuente:

procedimiento TForm1.Edit1Change(Remitente: TObject);
comenzar
Memo1.Font.Size:=UpDown1.Position;
Image1.Canvas.Font.Size:=UpDown1.Position;
Memo1Change(Remitente);
fin;

Puede modificar este programa para imprimir texto. Para trabajar con la impresora, debe conectar el módulo impresoras:

unidad unidad 1;

Interfaz

usos
Windows, Mensajes, SysUtils, Variantes, Clases, Gráficos, Controles, Formularios,
Diálogos, StdCtrls, impresoras ;

Cuando se trabaja con la impresora como lienzo, se llama al método para comenzar a imprimir. BeginDoc, luego se imprime el documento, la impresión se completa llamando al método EndDoc:

Impresora.BeginDoc;
con Impresora.Canvas hacer
comenzar
... Imprimiendo un Documento...
fin;
Impresora.EndDoc;

El ancho y la altura del lienzo de la impresora están disponibles a través de propiedades Impresora.PageWidth Y Impresora.PageHeight. Puede terminar de imprimir en una página y comenzar a imprimir en otra usando el método Impresora.NuevaPágina.

Si nota un error, seleccione un fragmento de texto y presione Ctrl + Enter
COMPARTIR: