Componentes para mostrar información gráfica. Presentación sobre el tema "Visualización de información gráfica en Delphi". Breve información de la teoría.

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

Tabla 6

Componentes para mostrar información gráfica.

Componente Página Descripción
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 puedes dibujar.
DrawGrid (tabla de dibujos) Adicional Se utiliza para mostrar datos que no son de texto en filas y columnas.
Cuadro (cuadros y gráficos) Adicional El componente pertenece a la familia de componentes TeeChart, que se utilizan para crear cuadros y gráficos.
Chartfx (tablas y gráficos) ActiveX Editor de cuadros y gráficos
FIBook (páginas de Excel) ActiveX Componente de procesamiento y entrada de información numérica.
VtChart (gráficos) ActiveX Ventana de diagramación

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 imágenes gráficas. Este componente es similar al componente Cuadrícula de cuerdas ya que este último se deriva de Dibujar cuadrícula. Por lo tanto en dibujarcuadrícula todas las propiedades, métodos y eventos del componente están presentes Cuadrícula de cuerdas excepto aquellos relacionados con el texto, es decir. excepto propiedades Células, Cols, Filas, Objetos. Desde este punto de vista, el componente Cuadrícula de cuerdas tiene capacidades significativamente mayores que dibujarcuadrícula ya que puede almacenar tanto imágenes como textos en celdas. Y si quieres ingresar texto en algunas celdas dibujarcuadrícula entonces necesitarás usar métodos para mostrar texto en un esquema, lo cual no es muy conveniente.

Componentes DrawGrid y StringGrid tener un esquema Lienzo, en el que puedes publicar imágenes.

Hay un método Rectificado celular, que devuelve el área del lienzo asignada para una celda determinada. Este método se define como

función CellRect(ACol, ARow: Longint): TRect;

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

DrawGridl.Canvas.CopyRect(DrawGridl.CellRect(1,1),

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

método de copias CopiarRect 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, ya que los índices comienzan en 0. Tenga en cuenta que si la celda es más pequeña que el tamaño de la imagen copiada, solo la parte superior izquierda de la imagen aparecerá en la célula.

Imagen en el lienzo del componente. DrawGrid y StringGrid, Al igual que 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 se minimiza.

Una forma conveniente de ingresar imágenes en celdas. dibujarcuadrícula es utilizar un controlador de eventos OnDrawCell. Estos eventos ocurren para cada celda de la tabla en el momento en que se vuelve a dibujar. El encabezado del controlador se ve así:

procedimiento TForml.DrawGridlDrawCell(Remitente: TObject;

ACol, ARow: Entero; Rectificado: TRect; Estado: TGridDrawState)

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

Componente de forma

Componente de forma Sólo puede clasificarse condicionalmente como un medio para mostrar información gráfica, ya que simplemente representa varias formas geométricas, adecuadamente sombreadas. La propiedad principal de este componente es Forma(formulario), que puede tomar los siguientes valores:

StRectangle – rectángulo;

StSquare – cuadrado;

StRoundRect: rectángulo con esquinas redondeadas;

StRouhdSquare: cuadrado con esquinas redondeadas;

StEllipse – elipse;

StCircle - círculo.

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

Componente de gráfico

Ahora veamos 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, de modo que si los consideráramos todos, tendríamos que dedicarle un capítulo completo. Por tanto, nos limitaremos a considerar únicamente las características principales. Cuadro. Puede encontrar el resto en la ayuda integrada de Delphi, o simplemente probarlos experimentando con los diagramas.

Componente Cuadro es un contenedor de objetos Serie- herederos de la clase Serie TChart. Cada uno de estos objetos representa una serie de datos caracterizados por un determinado estilo de visualización: un gráfico o diagrama particular. Cada componente Cuadro Puede incluir varios episodios. 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 (como los gráficos circulares) probablemente se verá feo. Sin embargo, incluso en este caso, puede configurar para un componente Cuadro varias series de los mismos datos con diferentes tipos de gráficos. Luego, al activar uno de ellos en cada momento, puede brindarle al usuario la opción de elegir el tipo de gráfico que muestra los datos que le interesan.

Coloque uno o dos componentes. Cuadro en el formulario y observe las propiedades que se abren en el Inspector de objetos. A continuación se ofrecen algunas explicaciones de 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: pmNinguno: el desplazamiento está prohibido, pmHori/ontal, pm Vertical o pmBoth: el desplazamiento está permitido, respectivamente, solo en dirección horizontal, solo en dirección vertical o en ambas direcciones.

AhowZoom: permite al usuario cambiar el zoom de una imagen en tiempo de ejecución recortando partes de un cuadro o gráfico con el cursor del mouse. Si el marco de un fragmento se dibuja hacia la derecha y hacia abajo, entonces este fragmento se estira para cubrir 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 diagrama.

Pie: define el título debajo del diagrama. Ninguno por defecto. El texto de la firma está determinado por la subpropiedad Texto.

Marco: define el marco alrededor del diagrama.

Junto a muchas de las propiedades enumeradas en el Inspector de objetos, hay botones con elipses que le permiten abrir 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 se puede acceder al Editor de diagramas haciendo doble clic en el componente Cuadro o haciendo clic derecho sobre él y seleccionando el comando Editar gráfico en el menú emergente.

Haga doble clic en el componente superior Cuadro. Se le dirigirá a la ventana del Editor de gráficos en 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. Serás llevado a una ventana donde podrás seleccionar el tipo de cuadro o gráfico. En este caso, seleccione Circular: un gráfico circular. Usando la pestaña Títulos, puede configurar el título del gráfico, la pestaña Leyenda le permite establecer parámetros para mostrar la leyenda del gráfico (lista de símbolos) o eliminarla de la pantalla por completo, la pestaña Panel determina la apariencia del panel en donde se muestra el gráfico, la pestaña 3D le brinda la oportunidad de cambiar la apariencia de su gráfico: inclinación, desplazamiento, grosor, etc.

Cuando está trabajando en el Editor de gráficos y ha seleccionado un tipo de gráfico, los componentes Cuadro Su formulario muestra su apariencia con los datos condicionales ingresados ​​en él. Por lo tanto, puede ver inmediatamente 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 brinda la posibilidad de seleccionar opciones 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, 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 segmentos individuales del gráfico: Valor - valor, Porcentaje - porcentajes, Etiqueta - nombres de datos, etc.

Puede, si lo desea, agregar otra serie idéntica a este componente de Gráfico haciendo clic en el botón Clonar en la pestaña Serie de la página Gráfico, y luego para esto series nuevas Haga clic en el botón Cambiar y seleccione un tipo de gráfico diferente, por ejemplo, Barra.

Salga del Editor de gráficos, seleccione el componente de gráfico inferior en su aplicación y repita la configuración de sus propiedades 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 de líneas. Porque el estamos hablando acerca de En cuanto a los gráficos, puede utilizar las pestañas Eje y Paredes para especificar las características de las coordenadas de los ejes y los bordes tridimensionales del gráfico.

Eso es todo por el diseño. apariencia finaliza la aplicación. Todo lo que queda es escribir el código que especifica los datos que desea mostrar. Para la aplicación de prueba, establezcamos solo algunos datos constantes en el gráfico circular y algunas funciones en los gráficos.

Para establecer los valores mostrados, debe utilizar métodos de serie. Centrémonos sólo en tres métodos principales.

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

Método Agregar:

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

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

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

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

Por tanto, el procedimiento para cargar datos en nuestro ejemplo podría verse así:

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

Con la serie comienza

Add(Al,"Taller l",clYellow);

Agregar(A2,"Taller 2",clBlue);

Agregar(A3,"Taller 3",clRed);

Agregar(A4,"Taller 4",clPúrpura); fin;

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

Serie2.AddXY(0,02*Pi*i,sin(0,02*Pi*i)

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

ClRed); ,clAzul);

Operadores Claro son necesarios si va a actualizar datos mientras la aplicación se está ejecutando.

Con esto concluye nuestra introducción al componente. Cuadro. Es cierto que hemos considerado sólo una pequeña parte de sus capacidades.

Trabajar con gráficos En Delphi no se trata sólo de líneas y dibujos, sino también de impresión. documentos de texto. Por lo tanto en Delfos en el trabajo con graficos necesitas dedicar un poco de tiempo. Trabajar con gráficos en Delfos Implica acceder al lienzo, la propiedad Canvas de los componentes. Lienzo Delfos este es un lienzo que permite al programador tener acceso a cada uno de sus puntos (píxeles) y, como un artista, mostrar lo que requiere. Por supuesto, dibuja píxel por píxel para trabajando con gráficos en Delphi no es necesario, el sistema Delphi proporciona potentes herramientas graficas, facilitando la tarea del programador.

Al trabajar con gráficos en Delphi, el programador tiene a su disposición un esquema (lienzo, lienzo - propiedad Lienzo componentes Delphi), lápiz (propiedad Bolígrafo), pincel (propiedad Pincel) del componente u objeto sobre el que se supone que vas a pintar. en el lapiz Bolígrafo y cepillos Cepillar puede cambiar el color (propiedad Color) y el estilo (propiedad Estilo). El acceso a las fuentes lo proporciona la propiedad del lienzo. 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, trabajando con gráficos le permite utilizar dichos recursos en Delphi ventanas como gráficos y archivos de vídeo.

Por supuesto, no todos los componentes de Delphi tienen estas propiedades. en la pestaña Adicional se encuentra un componente especializado TImagen, diseñado específicamente para dibujar, pero también la propiedad Lienzo tener, por ejemplo, componentes como ListBox, ComboBox, StringGrid, así como el propio Formulario, donde se ubican nuestros componentes. Además, para imprimir documentos, Delphi accede a la propiedad Canvas de un objeto como la impresora.

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 color determinado a cualquier punto del lienzo. A cada píxel se le puede asignar cualquier color disponible para Windows. Por ejemplo, ejecutando la declaración

Imagen1.Canvas.Pixels:=clRed;

Resultará en dibujar un punto rojo con coordenadas. Puedes averiguar el color de un píxel mediante 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, es necesario asignarlo color $000000FF.
Para colores estándar en Delphi se define un conjunto de constantes de texto. Puedes verlo abriendo la propiedad Color, por ejemplo, del mismo Formulario en el Inspector de Objetos.

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 desde (X, Y): el píxel superior izquierdo del texto.
Propiedad TextWidth( var Texto: Cadena): Entero;
Contiene la longitud de la cadena. Texto en píxeles.
Propiedad TextHeight( var 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 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 la posición actual.
Procedimiento LlenarRect( constante Rect: TRect);
Llena un rectángulo recto en el lienzo usando el pincel actual. Se puede utilizar, entre otras cosas, para borrar parte de una imagen del lienzo.

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

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

procedimiento TForm1.FormCreate(Remitente: TObject);
comenzar
Rect.Izquierda:=0;
Rect.Arriba:=0;
Rect.Derecha:=Imagen1.Ancho;
Rect.Abajo:=Imagen1.Altura;
Imagen1.Canvas.Brush.Color:=clWhite;
fin;

Luego dibuja un marco a los lados de la Imagen:

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

Intentemos lo que pasó. Todo funciona, pero el marco aún no se muestra. Por lo tanto, agreguemos un procedimiento. página en el procedimiento Crear formulario. Ahora es hermoso. A continuación, escribiremos un procedimiento simple para borrar y borrar imágenes. Será necesario llamarlo antes de cualquier actualización de imagen; de lo contrario, las imágenes anterior y posterior se superpondrán.

procedimiento TForm1.clarificación;
comenzar
Imagen1.Canvas.FillRect(Rect); //Rectángulo recto se llena de blanco y la imagen se borra.
fin;

Ahora es el turno del propio procedimiento de salida de texto. Comencemos a dibujar texto desde el punto (3, 3): la esquina superior izquierda de la hoja, con una ligera sangría de 3 píxeles. Cada línea subsiguiente estará compensada por la altura de la línea:

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

Ahora todo está listo para generar texto. Haremos esto usando el evento OnChange:

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

Y por último, el procedimiento para cambiar el tamaño de fuente:

procedimiento TForm1.Edit1Change(Remitente: TObject);
comenzar
Memo1.Font.Size:=UpDown1.Position;
Imagen1.Canvas.Font.Tamaño:=ArribaAbajo1.Posición;
Memo1Change(Remitente);
fin;

Puede modificar este programa para imprimir texto. Para trabajar con la impresora es necesario conectar el módulo. Impresoras:

unidad Unidad 1;

Interfaz

usos
Windows, Mensajes, SysUtils, Variantes, Clases, Gráficos, Controles, Formularios,
Cuadros de diálogo, StdCtrls, Impresoras ;

Cuando se trabaja con la impresora como lienzo, se llama al método para comenzar a imprimir ComenzarDoc, luego se genera el documento, la impresión se completa llamando al método FinDoc:

Impresora.BeginDoc;
con Impresora.Lienzo hacer
comenzar
...Imprimir documento...
fin;
Impresora.EndDoc;

El ancho y alto de la web de la impresora están disponibles a través de las propiedades Impresora.Ancho de página Y Impresora.AlturaPágina. Puede terminar de imprimir en una página y comenzar a imprimir en otra usando el método Impresora.NuevaPágina.

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

    crear imágenes usando componentes gráficos

Para construir gráficos, 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 los proporciona la clase Tcanvas.

Clasefuente– especifica 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".

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

Propiedades clase Tpen:

Color:Tcolor – color de línea (predeterminado – negro)

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

Estilo = (psSolid, psDash, psDot, psdashDot, psClear): define el estilo de línea (sólida, discontinua, punteada, guion-punto, invisible)

Clasecepillo– establece las características del pincel que pinta la superficie de la imagen.

Propiedades clase cepillo:

Color:Tcolor – color del pincel (predeterminado – blanco)

Estilo– patrón de pincel, puede tomar los siguientes valores:

BsSolid – coloración sólida

BsClear – falta de sombreado

BsVertical – líneas verticales

BsBdiagonal – líneas diagonales derechas

BsDiagCross – celda oblicua

BsHorizontal – líneas horizontales

BsFdiagonal – líneas diagonales izquierdas

BsCross – jaula

Claselienzo– determina 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) (sin el encabezado, el menú principal y las líneas de desplazamiento del formulario), pero puede asignar áreas de trabajo más pequeñas dentro del formulario utilizando componentes. Caja de pinturas o Imagen. El origen de las coordenadas 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 Altura del cliente.

Propiedades clase lienzo:

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

Bolígrafo:Tpoint – posición actual del cursor invisible en el lienzo

Comentario : Tipo de punto T – definido de la siguiente manera:

Tipo Punto = registro

Píxeles: Tcolor: establece los colores de los píxeles del lienzo, X, Y: coordenadas de píxeles. La propiedad Píxeles es cómoda de utilizar para trazar gráficos utilizando 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 hasta 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 : Dibuja una línea diagonal azul en la forma desde la esquina superior izquierda de la forma hasta la esquina inferior derecha.

Color.pluma:= clblue;

MoverA(0,0); LineTo(AnchoCliente, AlturaCliente);

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

Ejemplo : Dibuja un cuadrado sombreado en amarillo con un lado de 60 píxeles en el medio de la forma.

var Xc,Yc: número entero; //

Xc:=AnchoCliente div 2;

Xy:=AlturaCliente div 2;

Canvas.Brush.color:=clamarillo;

Lienzo.rectangle(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 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 especificado por una serie de coordenadas.

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

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

Xc:=AnchoCliente div 2;

Xy:=AlturaCliente div 2;

Color.del.pincel.del.lienzo:=Rgb(275,140,70); // naranja color sombreado

Lienzo.Polígono();

fin;

    Procedimiento Arco(x1,y1,x2,y2,x3,y3,x4,y4:entero); - muestra el arco de una elipse delimitada 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 agujas del reloj.

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

Procedimiento Tform1.Button1Click(Remitente:Tobject);

var X3,y3,x4,y4: Entero;

Con PaintBox1 haz

Canvas.Pen.Color:= clWhite;

Ancho.del.lápiz.del.lienzo:= 3;

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

X3:= Ancho del cliente div 2;

X4:= Ancho del Cliente;

Y4:= AlturaCliente div 2;

Canvas.Pen.Color:= clGranate;

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 el método Chord en el ejemplo dado por el método ARC y obtenga el siguiente 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 : En el ejemplo dado para el método ARC, imagine el método PIE y obtenga este resultado.

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

Ejemplo : escriba el nombre del gráfico trazado en la parte inferior del formulario.

Altura.de.fuente.del.lienzo:=20 ; //altura del carácter 20 píxeles

Color.de.fuente.del.lienzo:=clblue;

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

Componentes gráficos

Delphi ofrece una serie de componentes listos para usar que le permiten mejorar interfaz de usuario. Estos componentes se encuentran en la página. Adicional Y Sistema paletas de componentes.

ComponenteImagen(Claseimagen) – creado 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 JPEG).

Básico propiedades :

Tamaño automático:booleano: cuando se establece en verdadero, el componente ajusta sus dimensiones al tamaño de la imagen cargada; el valor predeterminado es falso.

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 durante la ejecución del programa.

Imagen:Tpicture: define la imagen colocada en el componente.

Básico métodos clase Imagen:

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

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

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

Ejemplo : dibuja una elipse amarilla inscrita 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 trama

El botón BitBtn, a diferencia del estándar, puede, además del título (Caption), contener una imagen especificada por la propiedad Glifo. Hay un conjunto de botones BitBtn estándar, con propiedades predefinidas (con una imagen, inscripción 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 ("Cargar imagen", "Construir una figura geométrica", "Cambiar color", "Salir") y le permita:

a) cargar en el componente Imagen1 seleccionado por el usuario imagen grafica para que la imagen ocupe toda el área del componente Imagen.

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

(para cualquier medida del tamaño y posición del componenteImagen1 inscripción debe
ubicado estrictamente debajo del componente).

c) dibujar una figura geométrica dentro del componente Imagen2: un segmento de elipse relleno que conecta el centro del componente Imagen con el centro de los lados inferior y derecho del componente Imagen.

(para cualquier cambio en el tamaño y posición del componenteImagen2 la figura debe estar construida correctamente, es decir según las especificaciones del componenteImagen2)

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

Tarea número 2

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

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 de un ListBox y dibujar la forma seleccionada en el componente Imagen. El color de la forma se selecciona en el componente RadioGroup.

Tarea número 4

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

Al lado de cada esquina de PaintBox1, escriba las coordenadas de esa esquina (relativas al origen del formulario en el que se encuentra el componente PaintBox1).

Tarea número 5

CON

seleccione el tipo de forma que se dibujará del componente Radiogroup1, el color de relleno del componente Radiogroup2 y dibuje la forma 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, rellena con el color seleccionado por el usuario en ColorDialog.

Tarea número 7

CON Crea una aplicación que te permita:

seleccione el nombre de una forma geométrica del ListBox y dibuje la forma 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 color de cada forma lo selecciona el usuario en ColorGrid.

Tarea número 9

seleccione el nombre de la forma geométrica 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 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).

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

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 color de la figura lo selecciona el usuario en ColorBox.

Tarea número 11

Crea una aplicación que te permita:

seleccione del componente Radiogroup la posición del dibujo

en el componente Imagen del triángulo rectángulo, establezca
el color del sombreado o del contorno de la figura, dependiendo de
habilitando los botones de casilla de verificación. Seleccione el color mediante
Componente ColorGrid.

Tarea número 12

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

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

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

Por ejemplo, puede cambiar el color del formulario de la siguiente manera:

formulario1.Color:= ColorBox1.Colors;

Tarea número 13

Crea una aplicación que te permita:

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

b) divida el cuadrado en una diagonal o dos, dependiendo de la inclusión de los botones de casilla de verificación, y pinte cada triángulo resultante de 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).

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

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

Por ejemplo, puede cambiar el color del formulario de la siguiente manera:

formulario1.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 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 del formulario más pequeño)

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 (permita al usuario elegir 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).

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

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

Por ejemplo, puede cambiar el color del formulario de la siguiente manera:

formulario1.Color:= ColorBox1.Colors;

Tarea número 17

Coloque dos componentes de 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, se dibuja un cuadrado con el lado X en la Imagen1 y un triángulo rectángulo con catetos iguales, cada uno de los cuales tiene una longitud X, en la Imagen2.

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

El botón Aceptar estará disponible solo cuando haya seleccionado un color de línea y un color de relleno para dibujar la forma.

X: selecciona aleatoriamente usando la función Aleatorio y el valor de 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 ColorBox.

Por ejemplo, puede cambiar el color del formulario de la siguiente manera:

formulario1.Color:= ColorBox1.Colors;

Lista de componentes para mostrar información gráfica.

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

Tabla 4.1 Componentes de visualización de información gráfica Pictograma

Componente

Página

Descripción

Imagen

Se utiliza para mostrar gráficos: iconos, mapas de bits y metarchivos.


PaintBox (ventana para dibujar)

Se utiliza para crear un área en el formulario en la que se puede dibujar.


DrawGrid (tabla de dibujos)

Se utiliza para mostrar datos que no son de texto en filas y columnas.


Cuadro (cuadros y gráficos)

El componente pertenece a la familia de componentes TChart, que se utilizan para crear cuadros y gráficos.


Además, puede mostrar e ingresar información gráfica en la superficie de cualquier Mostrar gráficos en un lienzo.

Lienzo Lienzo no es un componente, por lo que estrictamente hablando no debe considerarse dentro del alcance de este libro. Pero dado que muchos componentes, en particular los formularios, tienen un contorno y el contorno ofrece la posibilidad de mostrar información gráfica diversa, sigue siendo aconsejable dar alguna información inicial sobre el contorno.

El lienzo es el área de un componente en la que se puede dibujar o mostrar imágenes terminadas. Contiene propiedades y métodos que simplifican enormemente los gráficos de Delphi. Todas las interacciones complejas con el sistema están ocultas para el usuario, por lo que una persona que no tenga ninguna experiencia en gráficos por computadora puede dibujar en Delphi.

Cada punto del contorno tiene coordenadas. X Y Y. El sistema de coordenadas del lienzo, como en otras partes de Delphi, tiene su origen en la esquina superior izquierda del lienzo. Coordinar X aumenta al moverse de izquierda a derecha, y la coordenada Y- al moverse de arriba a abajo. Las coordenadas se miden en píxeles. Un píxel es el elemento más pequeño de la superficie de un diseño que se puede manipular. La propiedad más importante de un píxel es su color.

El lienzo tiene la propiedad. Píxeles. Esta propiedad es una matriz bidimensional responsable de los colores del lienzo. Por ejemplo, Lienzo. Píxeles coincide con el color del píxel décimo desde la izquierda y vigésimo desde arriba. Puede tratar una matriz de píxeles como cualquier propiedad: cambiar el color dándole al píxel un nuevo valor o determinar su color a partir de un valor almacenado en él. Por ejemplo, Lienzo. Píxeles:=0 o Lienzo. Píxeles:=clNegro- esto es para configurar el píxel en negro.

Propiedad Píxeles Se puede utilizar para dibujar sobre lienzo. Intentemos dibujar un gráfico píxel por píxel de una sinusoide en el contorno del formulario. Para hacer esto, en el formulario controlador de eventos En pintura(dibujo) puedes insertar el siguiente código:

TForm1. FormPaint(Remitente: TObject);

var,Y:real; // coordenadas de función,PY: entero largo; // coordenadas de píxeles

comenzar:=clBlanco;

para PX:=0 a Ancho del cliente hacer

(X es el argumento del gráfico,

:=PX*4*Pi/AnchoCliente;:=Sin(X);

(PY - coordenada de píxeles,

: =trunc (AlturaCliente - (Y+1) *AlturaCliente/2);

(Establece el color del elemento seleccionado

píxel (Acerca del brillo). Píxeles: = 0;

fin;

Ejecute esta aplicación de prueba y verá el resultado que se muestra en la Figura 4.1 a. El gráfico de onda sinusoidal resultó, aunque no muy bueno, porque se divide en puntos individuales: píxeles.

Lienzo - objeto de clase lienzo tiene muchos métodos que le permiten dibujar gráficos, líneas y formas usando la propiedad Bolígrafo- pluma. Esta propiedad es un objeto que a su vez tiene varias propiedades. Uno de ellos es una propiedad que ya conoces. Color- el color con el que se aplica el dibujo. Segunda propiedad - Ancho(ancho de línea). El ancho se especifica en píxeles. El ancho predeterminado es 1.

Propiedad Estilo determina el tipo de línea. Esta propiedad puede tomar los siguientes valores:

El lienzo tiene la propiedad. Bolígrafo tipo PuntoT(cm .). Esta propiedad determina la posición actual del lápiz en las coordenadas del lienzo. Mover el bolígrafo sin trazar una línea, es decir. cambiar Bolígrafo, producido por el método del lienzo. Mover a(X,Y). Aquí ( X, Y) - coordenadas del punto hacia el que se mueve la pluma. Este punto actual se convierte en el punto de partida, a partir del cual el método Línea a (X,Y) puedes dibujar una línea hasta un punto con coordenadas ( X,Y). En este caso, el punto actual se mueve al punto final de la línea y se realiza una nueva llamada. Línea a dibujará un punto a partir de este nuevo punto actual.

Intentemos dibujar el gráfico de senos del ejemplo anterior con un bolígrafo. En este caso, el controlador de eventos del formulario En pintura puede parecerse a:

procedimiento TForm1. FormPaint(Remitente: TObject);

var,Y:real; // coordenadas de función,PY: entero largo; // coordenadas de píxeles

comenzar: =clBlanco;. MoveTo(0,ClientHeight div 2);

para PX: =0 a Ancho del cliente hacer

(X es el argumento del gráfico,

correspondiente al píxel con coordenadas РХ):=PX*4*Pi/AnchoCliente;:=Sin(X);

(PY - coordenada de píxeles,

correspondiente a la coordenada Y):=trunc(AlturaCliente - (Y+1) *AlturaCliente/2);

(Se dibuja una línea en el gráfico). LíneaA(PX,PY);

Puedes ver el resultado de la aplicación en esta versión en la Fig. 4.1 b. Como puedes ver, la calidad de los gráficos ha mejorado significativamente.

El bolígrafo puede dibujar no sólo líneas rectas, sino también formas. Para obtener una lista completa de los métodos de lienzo que utilizan el lápiz, consulte la ayuda integrada de Delphi. Por ahora, como ejemplo, daremos solo uno de ellos: Elipse, que dibuja una elipse o un círculo. Se declara como

procedimiento Elipse(X1, Y1, X2, Y2: Entero);

donde estan los parametros X1, X2, Y1, Y2 determinar las coordenadas de un rectángulo que describe una elipse o un círculo. Por ejemplo, el operador

Elipse(10, 40, 20, 50);

dibujará un círculo con un diámetro de 10 y coordenadas centrales (15, 45).

En el caso general, las figuras no se dibujan vacías, sino que se rellenan utilizando la propiedad del lienzo. Cepillar- cepillar. Propiedad Cepillar Es un objeto que a su vez tiene una serie de propiedades. Propiedad Color define el color de relleno. Propiedad Estilo define el patrón de relleno (sombreado). Valor por defecto Estilo es igual bsSólido, que significa coloración sólida Color.

en la pluma Bolígrafo Hay una propiedad más que aún no hemos considerado. Esta propiedad es Modo(modo). Valor por defecto Modo = pmCopiar. Esto significa que las líneas se dibujan con el color especificado en la propiedad. Color. Pero también son posibles otros modos en los que no sólo se tiene en cuenta el color Color, pero también el color de los píxeles de fondo correspondientes. El más interesante de estos modos es el pmNotXor- adición con fondo usando OR exclusivo inverso. Si se configura este modo, al dibujar la misma figura nuevamente en el mismo lugar del lienzo se elimina la imagen dibujada previamente y se restauran los colores de píxeles que estaban antes de la primera imagen de la figura.

Esta característica del modo pmNotXor se puede utilizar para crear animaciones simples. Basta con dibujar algo, luego borrar lo que dibujó, volver a dibujarlo ligeramente modificado y el dibujo parecerá cobrar vida.

Intente hacer usted mismo una animación sencilla: un círculo en movimiento. Inicie una nueva aplicación y vaya a implementación insertar anuncio

X,Y: número entero;

Esto introducirá variables globales. X Y Y- coordenadas de la imagen actual.

En el evento de forma En pintura insertar declaraciones

Cepillar. Color:=clBlanco;:=clBlanco;. Bolígrafo. Modo:=pmNotXor;

El primero de estos operadores establece el color del pincel en blanco. Cepillar. Esto significa que su círculo estará pintado de blanco por dentro. El segundo operador establece el color de fondo de la superficie del formulario en blanco.

El tercer operador configura el modo de lápiz. pmNotXor, que te permitirá borrar la imagen antigua antes de dibujar una nueva.

Incluso la animación más simple necesita sincronización. De lo contrario, la velocidad del movimiento estará determinada por la velocidad de la computadora. Por lo tanto, transfiera el componente al formulario. Temporizador- temporizador desde la página Sistema. Este componente se describe en la sección 5.7. .

Puedes verlo ahí Descripción detallada. Por ahora, establezca su propiedad Intervalo igual a, por ejemplo, 30 (este es el tiempo de exposición en milisegundos, pero tiempo real la velocidad de obturación será mayor (consulte la sección 5.7) y configure la propiedad Activado igual FALSO(Esto significa que el cronómetro no se iniciará automáticamente cuando se inicie la aplicación).

En el controlador de eventos de este componente A tiempo insertar declaraciones

//Borra la imagen anterior. Elipse (X-5, Y, X+5, Y-1Q);(X);

// Dibuja una nueva imagen. Elipse (X-5, Y, X+5, Y-10);

// Detener al llegar al final del formulario

si(X >= Ancho de cliente-20) entonces. Habilitado: = falso;

El primero de estos operadores dibuja un círculo en el lugar donde se dibujó anteriormente, es decir. borra la imagen anterior.

El último operador detiene la imagen en el borde del formulario.

Ahora agregue un botón al formulario. Botón y coloque los operadores en el controlador de clic en él

X: =10;: =100;. Elipse (X-5, Y, X+5, Y-10);. Habilitado: =verdadero;

Los dos primeros operadores especifican las coordenadas iniciales del círculo. El tercer operador dibuja el círculo en su posición inicial y el cuarto operador inicia el cronómetro.

Transmita la aplicación, ejecútela, haga clic en el botón. Verá una imagen de un círculo que se mueve a lo largo de la forma de izquierda a derecha. Y luego usa tu imaginación y transforma esta aplicación no muy interesante en algo más emocionante.

El lienzo puede mostrar no solo imágenes creadas mediante programación, sino también imágenes almacenadas en archivos gráficos. Sólo el lienzo en sí no tiene un método para cargar una imagen desde un archivo. Por tanto, el archivo debe cargarse en algún otro objeto gráfico que pueda recibir información de archivos gráficos. Y luego reescribe la imagen de este objeto en el lienzo usando el método del lienzo. Dibujar. Su descripción:

Draw(X, Y: Entero; Gráfico: TGraphic);

Aquí están los parámetros. X Y Y determinar las coordenadas de la esquina superior izquierda de la ubicación de la imagen en el lienzo, un Gráfico- un objeto que almacena información. Un objeto de este tipo puede ser, por ejemplo, un objeto de tipo TBitMap, diseñado para almacenar matrices de bits. Veamos cómo se ve todo esto en la práctica.

Abra una nueva aplicación, arrastre un componente al formulario Abrir cuadro de diálogo de imagen desde la página Diálogos (este es un componente del cuadro de diálogo para abrir archivos gráficos; consulte la sección 8.2 ) y botón Botón. Lugar Abrir cuadro de diálogo de imagen en cualquier parte del formulario, ya que este componente no es visual, y coloque el botón en la parte inferior del formulario. Agregue el siguiente código a su controlador de clic de botón:

procedimiento TForm1. Botón1Clic(Remitente: TObject);

var: TBitMap;

// selección de usuario archivo gráfico

si Abrir cuadro de diálogo de imagen1. Ejecutar entonces

// Crea un objeto BitMap de tipo TBitMap: = TBitMap. Crear;

//Transfiere la imagen al lienzo del formulario. Dibujar(10, 10, mapa de bits);

//Destruyendo el objeto BitMap. Gratis;

fin;

Este código crea un objeto temporal de tipo TBitMap con nombre mapa de bits. Entonces se llama el cuadro de diálogo para abrir un archivo gráfico. Abrir cuadro de diálogo de imagen 1 y, si el usuario ha seleccionado un archivo, entonces se descarga a mapa de bits método Carga del archivo. Luego usando el método Dibujar la imagen cargada se copia en el lienzo en el área con las coordenadas de la esquina superior izquierda (10,10). Después de esto el objeto temporal mapa de bits Esta destruido.

Inicie su aplicación y haga clic en su botón. Verás que puedes subir cualquier tipo de archivo gráfico. bmp y se mostrará en el contorno del formulario (ver Fig. 4.2 a). Puede encontrar archivos gráficos en el directorio Imágenes. En Delphi 5 y 4 suele estar ubicado en un directorio. \archivos de programa\Archivos comunes\Borland Shared. En Delphi 3 está ubicado en un directorio. \program files\Borland\Delphi 3, y en Delphi 1 - en el directorio Delphi 16. En el directorio Images hay, en particular, un subdirectorio \Images\Splash\16Color\, que almacena el archivo cargado en el ejemplo de la Fig. 4.2

Ha creado una buena aplicación para ver archivos gráficos. Pero ahora intentemos ver su mayor inconveniente. Sin cerrar su aplicación, vaya a algún otro programa, por ejemplo, regrese a Delphi. Luego, sin hacer nada allí, regrese a la aplicación en ejecución. Si la ventana del programa a la que entró cubrió completamente la ventana de su aplicación, cuando regrese a ella verá que la imagen en la ventana ha desaparecido. Si la ventana de su aplicación se superpuso solo parcialmente, cuando regrese a su aplicación, puede ver un resultado similar al que se muestra en la Fig. 4.2 b.

Verá que si la ventana de alguna otra aplicación se superpone temporalmente a la ventana de su aplicación, entonces la imagen dibujada en el contorno del formulario se estropea. Veamos cómo podemos eliminar este inconveniente.

Si una ventana se ha ocluido y la imagen se ha dañado, el sistema operativo le dice a la aplicación que algo ha cambiado en el entorno y que la aplicación debe tomar las medidas adecuadas. Tan pronto como se requiere una actualización de ventana, se genera un evento para ello En pintura. En el controlador de este evento (en nuestro caso, el evento de formulario), es necesario volver a dibujar la imagen.

Se puede volver a dibujar diferentes caminos dependiendo de la aplicación. En nuestro ejemplo, sería posible declarar una variable mapa de bits(operador var BitMap: TBitMap) más allá del procedimiento anterior, es decir Haga que esta variable sea global colocándola directamente en la sección implementación. Operador Mapa de bits. Gratis podría moverse al controlador de eventos del formulario En destrucción, que ocurre cuando se cierra la aplicación. Luego durante toda la ejecución de tu aplicación tendrás una copia de la imagen en el componente mapa de bits y solo necesitas ingresar al controlador de eventos En pintura formulario solo hay un operador:

Dibujar(10, 10, mapa de bits);

Haga esto y verá que la imagen en el formulario no se deteriora debido a la superposición de ventanas.

Además del método considerado. Dibujar el esquema también tiene un método de copia CopiarRect:

CopyRect(Dest: TRect; Lienzo: TCanvas; Fuente: TRect);

El método copia el parámetro especificado. Fuenteárea de imagen en el lienzo de origen de la imagen Lienzo al parámetro especificado destinoárea de este lienzo. Tipo TRecto, caracterizando áreas rectangulares Fuente Y destino, ya descrito en la sección 3.2 .

Por ejemplo, el operador

CopyRect(MyRect2, mapa de bits. Canvas, MyRect1);

copias al esquema del formulario en el área MiRect2 imagen del área MiRect1 lienzo componente mapa de bits.

Método de copia CopiarRect se realiza en el modo especificado por la propiedad Modo de copia. Por defecto esta propiedad tiene el valor cmSrcCopiar, que simplemente significa reemplazar la imagen previamente contenida en el área destino, a la imagen copiada. Otros valores posibles Modo de copia le permiten combinar imágenes, pero su consideración está más allá del alcance de este libro.

Nos limitaremos a esta información básica sobre cómo mostrar información gráfica en el lienzo. En la sección 3.2 Se proporcionó información sobre la salida del texto al esquema. En general, el lienzo es un objeto complejo que tiene muchas más propiedades y métodos. Pero esto requiere una discusión más amplia que va más allá del alcance de este libro. El próximo libro de la serie Todo sobre Delphi explorará estos temas con más detalle.

Un componente de ventana que tiene la propiedad Lienzo- lienzo.

Componentes de imagen y PaintBox

Componentes Imagen Y Caja de pinturas representar una superficie limitada con un lienzo en el que se pueden escribir imágenes, como se describe en la sección 4.2 . En este caso, el componente Caja de pinturas, estrictamente hablando, no aporta nada nuevo respecto a dibujar una forma sobre un lienzo. Dibujar en Caja de pinturas en lugar de forma, no tiene ninguna ventaja, excepto, quizás, algún relieve en la disposición de uno o más dibujos en el área de la ventana.

Pero además de estas capacidades, el componente Imagen Hay propiedades que te permiten trabajar con varios tipos archivos gráficos Admite tres tipos de archivos: matrices de bits, iconos y metarchivos. Los tres tipos de archivos almacenan imágenes; la diferencia radica únicamente en la forma en que se almacenan dentro de los archivos y en los medios para acceder a ellos. Matriz de bits (archivo con extensión . bmp) muestra el color de cada píxel de la imagen. En este caso, la información se almacena de tal forma que cualquier ordenador pueda mostrar una imagen con una resolución y número de colores correspondientes a su configuración.

Pictogramas (archivos con extensión . ico) son matrices de bits pequeños. Se utilizan comúnmente para representar íconos de aplicaciones, en botones rápidos, en elementos de menú, en varias listas. El método de almacenar imágenes en iconos es similar al almacenamiento de información en matrices de bits, pero también existen diferencias. En particular, el icono no se puede escalar; sigue teniendo el tamaño en el que fue creado.

Los metarchivos no almacenan la secuencia de bits que componen la imagen, sino información sobre cómo se creó la imagen. Almacenan secuencias de comandos de dibujo, que pueden repetirse al recrear la imagen. Esto hace que estos archivos sean generalmente más compactos que las matrices de bits.

Componente Imagen le permite mostrar información contenida en archivos gráficos de todos los tipos especificados. Esto se logra por su propiedad. Imagen- tipo objeto TImagen.

Fig.4.3 Ventana del editor de imágenes


Para familiarizarse con esta propiedad, abra una nueva aplicación y arrastre un componente al formulario Imagen. Estírelo o establezca su propiedad Alinear igual alCliente de modo que ocupe toda el área de cliente del formulario. Haga clic en el botón con puntos suspensivos al lado de la propiedad. Imagen en la ventana del Inspector de objetos o simplemente haga doble clic en Imagen. La ventana del Editor de imágenes se abrirá frente a usted (Fig. 4.3), lo que le permitirá cargar la propiedad. Imagen algún archivo gráfico (botón Cargar), y también guardar abrir documento bajo un nuevo nombre o en un nuevo directorio. Haga clic en Cargar para cargar el archivo gráfico. Verá una ventana para abrir un archivo gráfico, como se muestra en la Fig. 4.4 A medida que mueve el cursor en la lista de archivos gráficos, las imágenes que contienen se muestran en la ventana derecha y encima de ellas hay números que caracterizan el tamaño de la imagen. . Puede seleccionar cualquier tipo de archivo gráfico que necesite. Le recordamos que puede encontrar los archivos gráficos suministrados con Delphi en el directorio Imágenes. En Delphi 5 y 4 suele estar ubicado en un directorio. \archivos de programa\Archivos comunes\Borland Shared. En Delphi 3 está ubicado en un directorio. \program files\Borland\Delphi 3, y en Delphi 1, en el directorio de Delphi 16. Una vez que el archivo se haya cargado, haga clic en Aceptar en la ventana del Editor de imágenes y en su componente. Imagen Se mostrará la imagen que seleccionó. Puede iniciar su aplicación y admirarla. Sin embargo, ya ves la imagen sin siquiera ejecutar la aplicación.

Cuando cargó una imagen de un archivo en un componente durante el proceso de diseño Imagen, no sólo lo muestra, sino que también lo guarda en la aplicación. Esto le brinda la posibilidad de entregar su aplicación sin un archivo de gráficos separado. Sin embargo, como veremos más adelante, en Imagen También puedes cargar archivos gráficos externos mientras la aplicación se está ejecutando.

Volvamos a considerar las propiedades de los componentes. Imagen.

Si configura la propiedad Tamaño automático V verdadero, entonces el tamaño del componente Imagen se ajustará automáticamente al tamaño de la imagen colocada en él. si la propiedad Tamaño automático instalado en FALSO, entonces es posible que la imagen no encaje en el componente o, por el contrario, el área del componente puede ser mucho mayor que el área de la imagen.

Otra propiedad - Estirar le permite ajustar no el componente al tamaño de la imagen, sino la imagen al tamaño del componente. Instalar Tamaño automático V FALSO, estirar o reducir el tamaño del componente Imagen e instalar Estirar V verdadero. Verá que el dibujo ocupará toda el área del componente, pero como es poco probable que pueda determinar las dimensiones de manera realista Imagen exactamente proporcional al tamaño de la imagen, la imagen se distorsionará. Instalar Estirar V verdadero Puede que sólo tenga sentido para algunos patrones, pero no para las imágenes. Propiedad Estirar no afecta las imágenes de iconos que no se pueden cambiar de tamaño.

Propiedad - Centro, ajustado a verdadero, centra la imagen en el área Imagen, si el tamaño del componente es mayor que el tamaño de la imagen.

Consideremos una propiedad más: Transparente(transparencia). Si Transparente es igual verdadero, entonces la imagen en Imagen se vuelve transparente. Esto se puede utilizar para superponer imágenes una encima de otra. Coloque el segundo componente en el formulario. Imagen y cargue otra imagen en él. Intente tomar una fotografía de contorno escasamente llena. Puede, por ejemplo, tomar una fotografía de entre las que normalmente se encuentran en los botones, por ejemplo, una flecha (archivo.\archivos de programa\archivos comunes\borland compartido\images\botones\arrow1l. bmp). Mueve el tuyo Imagen para que se superpongan entre sí, y en el conjunto de componentes superior Transparente igual verdadero. Verás que la imagen superior ya no oscurece la inferior. Uno de los posibles usos de esta propiedad es superponer sobre una imagen inscripciones realizadas en forma de matriz de bits. Estas inscripciones se pueden realizar utilizando el programa Image Editor integrado en Delphi.

Tenga en cuenta que la propiedad Transparente sólo afecta a las matrices de bits. En este caso, el color del píxel inferior izquierdo de la matriz de bits se vuelve transparente de forma predeterminada (es decir, se reemplaza por el color de la imagen ubicada debajo de él).

Cubrimos la carga de una imagen desde un archivo durante el proceso de diseño. Pero la propiedad Imagen También facilita la organización del intercambio con archivos gráficos de cualquier tipo durante la ejecución de la aplicación. Para explicar la técnica de tal intercambio, primero debemos considerar con más detalle la propiedad Imagen.

Esta propiedad es un objeto que a su vez tiene subpropiedades que apuntan al objeto gráfico almacenado. si en Imagen se almacena una matriz de bits y se indica mediante la propiedad Imagen. mapa de bits. Si se almacena un icono, la propiedad lo señala Imagen. Icono. El metarchivo almacenado está indicado por la propiedad Imagen. Metarchivo. Finalmente, un objeto gráfico de cualquier tipo está indicado por la propiedad Imagen. Gráfico.

Un objeto Imagen y sus propiedades mapa de bits, Icono, Metarchivo Y Gráfico tener métodos de lectura y escritura de archivos Carga del archivo Y Guardar en archivo:

procedimiento Carga del archivo( constante Nombre del archivo: cadena);

procedimiento Guardar en archivo( constante Nombre del archivo: cadena);

Para propiedades Imagen. mapa de bits, Imagen. Icono Y Imagen. Metarchivo El formato del archivo debe corresponder a la clase de objeto: matriz de bits, icono, metarchivo. Al leer un archivo en la propiedad Imagen. Gráfico el archivo debe estar en formato metarchivo. Y para el objeto mismo Imagen Los métodos de lectura y escritura se ajustan automáticamente al tipo de archivo. Expliquemos esto con un ejemplo.

Construyamos una aplicación similar al ejemplo de visualización de archivos gráficos analizado en la sección 4.2. Para variar, puedes controlarlo usando algo más que un botón. Botón y el menú. Colocar un componente en el formulario. Imagen. Estírelo o establezca su propiedad Alinear igual alCliente de modo que ocupe toda el área de cliente del formulario. Arrastre el componente del diálogo de apertura del archivo gráfico al formulario Abrir cuadro de diálogo de imagen(ver sección 8.2 ). Coloque también un componente del menú principal en el formulario Menú principal(ver sección 6.1 ) y establezca una sección en él: Archivo. En el controlador de esta sección, escriba la declaración

(OpenPictureDialog1.Ejecutar) entonces. Imagen. LoadFromFile(.NombreDeArchivo);

Este operador llamará un cuadro de diálogo para abrir un archivo gráfico (ver Fig. 4.4) y lo cargará en el componente. Imagen1 imagen de un archivo seleccionado por el usuario (ver Fig. 4.5). Además, el archivo puede ser de cualquier tipo: matriz de bits, icono o metarchivo.

Fig.4.5 Imagen en componente Imagen matriz de bits (a) y pictograma (6)



En esta aplicación el método Carga del archivo aplicado a Imagen1. Imagen. Si solo se abrirán archivos de matriz de bits, entonces el operador de carga de archivos se puede reemplazar con

Imagen. mapa de bits LoadFromFile(.NombreDeArchivo);

Para los pictogramas se podría utilizar un operador. Imagen. Icono. LoadFromFile(.NombreDeArchivo);

y para metarchivos: el operador. Imagen. Metarchivo. LoadFromFile(.NombreDeArchivo);

o. Imagen. Gráfico. LoadFromFile(.NombreDeArchivo);

Pero en todos estos casos, si el formato del archivo no coincide con el deseado, se producirá un error. El método funciona de manera similar. Guardar en archivo con la diferencia que se aplica a Imagen o para Imagen. Gráfico guarda una imagen de cualquier formato en un archivo. Por ejemplo, si amplía su aplicación con un cuadro de diálogo Guardar cuadro de diálogo de imagen(ver sección 8.2 ), ingrese a la sección Guardar como en el menú y coloque el operador en su controlador

Guardar cuadro de diálogo1. Ejecutar entonces. Imagen. SaveToFile(SavePictureDialog1. NombreDeArchivo);

entonces el usuario podrá guardar una imagen de cualquier formato en un archivo con un nuevo nombre. Solo en este caso, para evitar confusiones en el futuro, la extensión del archivo guardado debe corresponder al formato de la imagen guardada.

El programa funcionará de manera absolutamente idéntica para imágenes de cualquier formato si reemplaza el operador de guardar con

Imagen. Gráfico. GuardarEnArchivo(.NombreDeArchivo);

usando la propiedad Imagen. Gráfico. Y si conoce el formato de lo que se almacena en el componente Imagen imágenes, entonces puedes aplicar el método Guardar en archivo a propiedades Imagen. mapa de bits, Imagen. Icono Y Imagen. Metarchivo.

Para todos los objetos considerados Imagen, Imagen. mapa de bits, Imagen. Icono Y Imagen. Metarchivo Se definen métodos para asignar valores de objetos:

Asignar (Fuente: TPersistent);

Sin embargo, para mapa de bits, Icono Y Metarchivo Solo puede asignar valores de objetos homogéneos: respectivamente, matrices de bits, iconos, metarchivos. Se lanza una excepción al intentar asignar valores a objetos heterogéneos EConvertError. Un objeto Imagen- universal, se le pueden asignar valores de objetos de cualquiera de las otras tres clases. y el significado Imagen solo se puede asignar a un objeto cuyo tipo coincida con el tipo del objeto almacenado en él.

Método Asignar También se puede utilizar para intercambiar imágenes con el búfer del Portapapeles. Por ejemplo, el operador

Asignar(Imagen1.Imagen);

guardará la imagen almacenada en el portapapeles en el portapapeles Imagen1. Operador similar

aplicación de imagen gráfica delphi

Imagen1. Imagen. Asignar (Portapapeles);

leer en Imagen1 una imagen en el portapapeles. Además, puede ser cualquier imagen e incluso texto.

Solo necesita recordar cuando trabaje con el portapapeles para pegar en el operador usos su módulo enlace al módulo Clipbrd. Delphi no inserta automáticamente este enlace.

Volviendo a las propiedades del componente Imagen, podemos notar un inconveniente inherente a nuestra aplicación de prueba, que se muestra en la Fig. 4.5 Al cargar diferentes imágenes, el tamaño de la ventana de la aplicación puede ser demasiado pequeño y luego verá solo una parte de la imagen, o demasiado grande, y entonces la imagen se colocará de manera poco atractiva en la esquina superior izquierda del formulario, dejando mucho espacio vacío. Este inconveniente se puede eliminar utilizando las propiedades Altura(altura) y Ancho(ancho) componente Imagen. con propiedad Tamaño automático instalado en verdadero dimensiones Imagen se configuran automáticamente al mismo tamaño que la imagen cargada. Y estas dimensiones se pueden utilizar para cambiar el tamaño del formulario en consecuencia. Por ejemplo, el código anterior para cargar una imagen desde un archivo se puede reemplazar por lo siguiente:

Abrir cuadro de diálogo de imagen1. Ejecutar entonces

comenzar. Imagen. LoadFromFile(.NombreDeArchivo); Altura del cliente: = Imagen1. Altura+10;. Arriba:=Formulario1. ClienteRect. Arriba

+ (Form1. ClientHeight - Imagen1. Altura) div 2;. Ancho de cliente:=Imagen1. Ancho+10;. Izquierda: = Formulario1. ClienteRect. Izquierda

+ (Form1. ClientWidth - Imagen1. Ancho) div 2;

fin;

Este código establece que el tamaño del área de cliente del formulario sea ligeramente mayor que el tamaño del componente. Imagen1, que a su vez se adaptan al tamaño de la imagen gracias a la propiedad Tamaño automático. Realice estos cambios en su aplicación, ejecútela y verá cómo el formulario se adapta automáticamente al tamaño de la imagen cargada.

Componente de forma

Componente Forma Sólo puede clasificarse condicionalmente como un medio para mostrar información gráfica, ya que simplemente representa varias formas geométricas, adecuadamente sombreadas. La propiedad principal de este componente es Forma(formulario), que puede tomar los siguientes valores:

Ejemplos de estas formas se muestran en la Fig. 4.7.

Fig.4.7 Ejemplos de componentes Forma


Otra propiedad esencial del componente es Cepillar(cepillar). Esta propiedad es un objeto de tipo TBrush, que tiene varias subpropiedades, en particular: color ( Cepillar. Color) y estilo ( Cepillar. Estilo) rellena la forma. Llenando en algunos valores Estilo Puedes ver en la Fig. 4.7 la tercera de las propiedades específicas del componente. Forma - Bolígrafo(bolígrafo) que define el estilo de línea. Esta propiedad es como una propiedad. Cepillar, ya han sido discutidos en la sección 4.2 . Puede encontrar datos de referencia sobre estas propiedades en el Capítulo 10*.

Componente de gráfico

Ahora veamos el componente. Cuadro. Este componente le permite crear varios cuadros y gráficos que lucen muy impresionantes (Fig. 4.8). Componente Cuadro tiene muchas propiedades, métodos, eventos, de modo que si los consideráramos todos, tendríamos que dedicarle un capítulo completo. Por tanto, nos limitaremos a considerar únicamente las características principales. Cuadro. Puede encontrar el resto en la ayuda integrada de Delphi, o simplemente probarlos experimentando con los diagramas.

Componente Cuadro es un contenedor de objetos Serie tipo Serie TChart- serie de datos caracterizados por diferentes estilos de visualización. Cada componente 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 (como los gráficos circulares) probablemente se verá feo. Sin embargo, en este caso también puede configurar para un componente Cuadro varias series de los mismos datos con diferentes tipos de gráficos. Luego, al activar uno de ellos en cada momento, puede brindarle al usuario la opción de elegir el tipo de gráfico que muestra los datos que le interesan.

Coloque uno o dos (si desea reproducir la Fig. 4.8) componentes Cuadro en el formulario y observe las propiedades que se abren en el Inspector de objetos. A continuación se ofrecen algunas explicaciones de algunos de ellos.

Determina si el usuario puede desplazarse por la parte observada del gráfico durante la ejecución haciendo clic con el botón derecho del mouse. Valores posibles: pmNone: el desplazamiento está prohibido, pmHorizontal, pmVertical o pmBoth: el desplazamiento está permitido, respectivamente, solo en dirección horizontal, solo en dirección vertical o en ambas direcciones.

Permite al usuario cambiar la escala de la imagen durante la ejecución, recortando fragmentos de un cuadro o gráfico con el cursor del mouse (la Fig. 4.8 b a continuación muestra el momento de ver un fragmento del gráfico, presentado en su totalidad en la Fig. 4.8 a).

Define el título del gráfico.

Define la etiqueta del gráfico. Ninguno por defecto. El texto de la firma está determinado por la subpropiedad Texto.

Define un borde alrededor del diagrama.

La leyenda del diagrama es una lista de símbolos.

MargenIzquierdo, MargenDerecho, MargenSuperior, MargenInferior

Valores de margen izquierdo, derecho, superior e inferior.

Eje inferior, eje izquierdo, eje derecho

Estas propiedades determinan las características de los ejes inferior, izquierdo y derecho, respectivamente. Establecer estas propiedades tiene sentido para gráficos y algunos tipos de cuadros.

Pared izquierda, pared inferior, pared trasera

Estas propiedades determinan las características de los bordes izquierdo, inferior y posterior del área de visualización tridimensional del gráfico, respectivamente (ver Fig. 4.8 a, gráfico inferior).

Lista de series de datos mostradas en el componente.

Activa o desactiva la visualización de gráficos 3D.

Características de la visualización tridimensional.

Escala tridimensional (en la Fig. 4.8, este es el grosor del diagrama y el ancho de las franjas del gráfico).


Junto a muchas de las propiedades enumeradas en el Inspector de objetos, hay botones con elipses que le permiten abrir 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 se puede acceder al Editor de diagramas haciendo doble clic en el componente Cuadro o haciendo clic derecho sobre él y seleccionando el comando Editar gráfico en el menú emergente.

Si desea intentar reproducir la aplicación que se muestra en la Figura 4.8, haga doble clic en el componente superior Cuadro. Se le dirigirá a la ventana del Editor de gráficos (Fig. 4.9) 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. Se le dirigirá a una ventana (Fig. 4.10), en la que podrá seleccionar el tipo de cuadro o gráfico. En este caso, seleccione Circular: un gráfico circular. Usando la pestaña Títulos, puede configurar el título del gráfico, la pestaña Leyenda le permite establecer parámetros para mostrar la leyenda del gráfico (lista de símbolos) o eliminarla de la pantalla por completo, la pestaña Panel determina la apariencia del panel en donde se muestra el gráfico, la pestaña 3D le brinda la oportunidad de cambiar la apariencia de su gráfico: inclinación, desplazamiento, grosor, etc.

Cuando está trabajando en el Editor de gráficos y ha seleccionado un tipo de gráfico, los componentes Cuadro Su formulario muestra su apariencia con los datos condicionales ingresados ​​en él (ver Fig. 4.11).

Fig.4.10 Seleccionar un tipo de gráfico en el Editor de gráficos


Por lo tanto, puede ver inmediatamente 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 brinda la posibilidad de seleccionar opciones 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, que garantizará que, en cualquier tamaño del componente, Cuadro muestre el gráfico en forma de círculo. En la pestaña Marcas, los botones del grupo Estilo determinan lo que se escribirá en las etiquetas relacionadas con segmentos individuales del gráfico: Valor - valor, Porcentaje - porcentajes, Etiqueta - nombres de datos, etc. En el ejemplo de la Figura 4.8, el botón Porcentaje está habilitado y en la pestaña General, se configura una plantilla de porcentaje para garantizar que solo se muestren valores enteros.

Puede, si lo desea, agregar a este componente Cuadro otra serie idéntica haciendo clic en el botón Clonar en la pestaña Serie de la página Gráfico y luego, para esta nueva serie, haciendo clic en el botón Cambiar y seleccionando un tipo de gráfico diferente, por ejemplo, Barra. Por supuesto dos diferentes tipos Los diagramas en una imagen se verán mal. Pero puede desactivar el indicador para esta nueva serie en la pestaña Serie y luego dejar que el usuario elija uno u otro tipo de visualización del gráfico (a continuación le mostraremos cómo se hace esto).

Salga del Editor de diagramas, seleccione el componente inferior de su aplicación Cuadro y repita la configuración de propiedades usando el Editor de diagramas. En este caso, deberá especificar dos series si desea mostrar dos curvas en el gráfico y seleccionar el tipo de gráfico de líneas. Dado que estamos hablando de gráficos, puede utilizar las pestañas Eje y Paredes para especificar las características de las coordenadas de los ejes y los bordes tridimensionales del gráfico.

Esto completa el diseño de la apariencia de la aplicación. Todo lo que queda es escribir el código que especifica los datos que desea mostrar. Para la aplicación de prueba, establezcamos solo algunos datos constantes en el gráfico circular y funciones seno y coseno en los gráficos.

Para configurar los valores mostrados, debe utilizar métodos de serie. Serie. Centrémonos sólo en tres métodos principales.

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

Método Agregar:

(Const AValue: Doble; Const ALabel: Cadena;: TColor)

le permite agregar un nuevo punto al diagrama. Parámetro Un valor corresponde al valor añadido, parámetro Una etiqueta- el nombre que aparecerá en el diagrama y en la leyenda, Un color- color. Parámetro Una etiqueta- opcional, se puede dejar vacío: "".

Método AgregarXY:(Const AXValue, AYValue: Doble; ALabel: Cadena; AColor: TColor)

le permite agregar un nuevo punto al gráfico de la función. Opciones Valor AX Y Valor AY Corresponden al argumento y a la función. Opciones Una etiqueta Y Un color lo mismo que en el método Agregar.

Por tanto, el procedimiento para cargar datos en nuestro ejemplo podría verse así:

155;=251;=203;=404;

var: palabra;

comenzar Serie1 hacer

comenzar;(A1, "Taller 1", clAmarillo);(A2, "Taller 2", clAzul);(A3, "Taller 3", clRojo);(A4, "Taller 4", clPúrpura);

fin;. Claro;. Claro;

para yo: =0 a 100 hacer

comenzar. AddXY (0.02*Pi*i, sin (0.02*Pi*i), "", clRed);. AddXY (0,02*Pi*i, cos (0,02*Pi*i), "", clBlue);

Si, por ejemplo, ha dado los datos mostrados en un gráfico, dos series Serie1 Y Serie4 diferentes tipos - Tarta Y Bar, entonces se puede introducir un procedimiento que cambie el tipo de diagrama según la solicitud del usuario. Este procedimiento se puede introducir en un evento. Al hacer clic algún botón, un comando de menú o, por ejemplo, simplemente procesar un clic en un componente Cuadro. Para cargar datos en Serie4 y hacer que este diagrama sea invisible en el primer momento, puede insertar los operadores al final del procedimiento anterior

Asignar (Serie1); Activo: =falso;

El primero de estos operadores reescribe los datos colocados en Serie1, en series Serie4. Y el segundo operador hace invisible la serie. Serie4. El cambio del tipo de diagrama se realiza mediante el procedimiento.

Activo: = no Serie1. Activo;. Activo: = no Serie4. Activo;

En la Fig. 4.8 b puede ver el resultado cuando el usuario cambia a otra vista de diagrama.

"Visualización de información gráfica en Delphi"
Plan temático:
1. Métodos de salida gráfica.
información en Delfos.
2. Muestre imágenes.
3. Visualización geométrica
cifras.

1. Métodos para mostrar información gráfica.
Hay varias formas en Delphi.
salida de información gráfica:
Salida de productos preparados
imágenes (componentes de imagen,
Forma);
Construyendo gráficos y diagramas.
(Componente de gráfico, etc.);
Imágenes
programáticamente (objeto
Lienzo).

2. Muestre imágenes.
Visualización de imágenes utilizando
Observamos el componente Imagen en
uno de los temas anteriores.
Aquí veremos un ejemplo.
implementación de animación simple
por cambio periódico
imagen mostrada en
Componentes de la imagen.
Vaya al ejemplo.


Visualización de protozoos
formas geométricas en la forma
proporciona el componente Forma.

3. Visualización de formas geométricas.
Propiedades básicas del componente Forma:
Cepillar
Bolígrafo
Forma
Color (.Color) y estilo (.Style) para
llenando la figura.
Color (.Color), estilo (.Style), ancho
(.Width) y método de salida (.Mode) de líneas
cifras.
Tipo de figura geométrica.

3. Visualización de formas geométricas.
De varios componentes de forma
Puedes crear dibujos simples.
Cambio de posición programáticamente
(.Izquierda, .Superior) tamaño (.Ancho, .Alto) y
color (Brush.Color) de los componentes de la forma
en el dibujo es posible implementar
Elementos de animación simple.
Considere un ejemplo.

4. Construcción de gráficas y diagramas.
Los diagramas son para
más representación visual
matrices de datos numéricos, sus
visualización y análisis visual.
Ejemplo.
Para crear diagramas en Delphi
hay varios componentes
uno de ellos es el componente Gráfico (sección
TeeChart estándar).

4. Construcción de gráficas y diagramas.
Vista del componente Gráfico después de él
Configuraciones en el formulario:

4. Construcción de gráficas y diagramas.
Además del Inspector de objetos, el acceso a
Las propiedades del componente Gráfico pueden ser
obtener abriendo una ventana especial
cuadro de diálogo (botón derecho en el componente \
Editar gráfico...)
Agregar
serie de datos
Tipo de cambio
diagramas

4. Construcción de gráficas y diagramas.
Elegir un tipo de gráfico:

4. Construcción de gráficas y diagramas.
Establecer propiedades para ejes de coordenadas
(Eje):

4. Construcción de gráficas y diagramas.
Los datos mostrados suelen ser
transferido a Chart mediante programación,
ejemplo:
Serie1.Claro; (serie clara)
para i:=1 a N hacer
Series1.addxy(i, A[i], '', clGreen);
Valor por
eje x
Valor por
eje y
Firma
eje x
Color de datos
en el diagrama
Considere un ejemplo de construcción.
gráfica de la función y = Sin(x)

Más:
Trabajo de laboratorio № 13.1.
"Exhibición de imágenes y formas geométricas.
figuras, su animación”.
Ejercicio:
1) Desarrollar una aplicación para implementar
animación más simple por periódico
cambia la imagen mostrada en
Componentes de la imagen. (El número de imágenes no es
menos de tres, seleccione imágenes
por propia cuenta).

Ejercicio:
2) Crea y haz un dibujo de
Componentes de forma. programáticamente
cambiar de posición, tamaño o color
Componentes de forma en un dibujo.
implementar los elementos del más simple.
animación.

Más:
Trabajo de laboratorio No. 13.2.
“Construcción de gráficos y diagramas”.
Ejercicio:
1) Modificar la aplicación de
trabajo de laboratorio No. 9 (Exhibición
datos de la tabla). Agregar una oportunidad
mostrando algunos datos de la tabla
en un histograma o gráfico circular.
2) Construya una gráfica de la función dada.


Arriba