Komponent för att visa grafisk information i delphi. Presentation om ämnet "Visa grafisk information i Delphi." Lista över komponenter för att visa grafisk information

LABORATORIEARBETE

ÄMNE: « Grafik iDelphi– konstruktion av det enklaste
geometriska former"

Kort information från teorin

Delphi ger utvecklaren tre sätt att visa grafik:

    plotta medan programmet körs

    användning av förskapad grafik

    skapa bilder med hjälp av grafiska komponenter

För att bygga grafer har speciella klasser skapats som ger verktyg och metoder för att rita: verktygen beskrivs i tre klasser - Tfont, Tpen, Tbrush; Ritområdet och metoderna tillhandahålls av klassen Tcanvas.

KlassTfont– anger egenskaperna för det teckensnitt som används för att visa text på duken. Klassens egenskaper beskrivs i avsnittet "Grundläggande egenskaper tillgängliga för de flesta komponenter."

KlassTpen– anger egenskaperna hos pennan (pennan) med vilken linjer ritas.

Egenskaper klass Tpen:

Färg:Tcolor – linjefärg (standard – svart)

Bredd:integer – linjetjocklek i pixlar;

Stil = (psSolid, psDash, psDot, psdashDot, psClear) – definierar linjestilen (heldragen, streckad, prickad, streckprickad, osynlig)

KlassTbrush– ställer in egenskaperna för penseln som målar bildens yta.

Egenskaper klass Tbrush:

Färg:Tcolor – penselfärg (standard – vit)

Stil– borstmönster, kan anta följande värden:

BsSolid – enfärgad

BsClear – brist på skuggning

BsVertikal – vertikala linjer

BsBdiagonal – höger diagonala linjer

BsDiagCross – sned cell

BsHorizontal – horisontella linjer

BsFdiagonal – vänster diagonala linjer

BsCross – bur

KlassTcanvas– bestämmer ytan som den skapade bilden placeras på, och verktygen som bilden skapas med: typsnitt, penna, pensel.

Som standard används hela klientområdet i formuläret som arbetsområde (canvas) (utan formulärets rubrik, huvudmeny och rullningslinjer), men mindre arbetsområden kan allokeras inuti formuläret med hjälp av komponenter PaintBox eller Bild. Ursprunget för dukkoordinaten är det övre vänstra hörnet av arbetsområdet, bredden på arbetsområdet bestäms av egenskapen ClientWidth, höjd – egendom Klienthöjd.

Egenskaper klass Tcanvas:

Duk:Tcanvas – definierar ritytan

Borsta:Tbrush – pensel för att måla slutna former

Font:Tfont – typsnitt för att visa text på duken

Penna:Tpen – penna (penna) för att rita

PenPos:Tpoint – aktuell position för den osynliga markören på duken

Kommentar : Tpoint-typ – definieras enligt följande:

Typ Point = rekord

Pixels: Tcolor - ställer in färgerna på canvaspixlarna, X, Y - pixelkoordinater. Egenskapen Pixels är bekväm att använda för att rita grafer med punkter i den valda färgen.

Huvudmetoder i TCanvas-klassen

    procedur Flytta till(x,y:heltal); - flyttar pennan utan att dra en linje till en punkt med koordinater (x, y).

    Procedur LineTo(x,y:heltal); - drar en linje från den aktuella punkten till punkten med koordinater (x, y).

Exempel : Rita en diagonal blå linje på formen från det övre vänstra hörnet av formen till det nedre högra hörnet.

Pen.färg:= clblue;

Flytta Till(0,0); LineTo(ClientWidth, ClientHeight);

    procedur Rektangel(xl,yl,x2,y2:heltal); - ritar en rektangel: x1,y1 – koordinaterna för det övre vänstra hörnet; x2, y2 är koordinaterna för det nedre högra hörnet.

Exempel : Rita en gulskuggad fyrkant med en sida på 60 pixlar i mitten av formen.

var Xc,Yc: heltal; //

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.color:=clyellow;

Canvas.rectangle(xc-30,Yc-30,xc+30,Yc+30);

    procedur Ellips(xl,yl,x2,y2:heltal); - ritar en ellips inskriven i en rektangel med de angivna koordinaterna.

Exempel : rita en ellips inskriven i PaintBox-komponenten.

PaintBox1.Canvas.Pen.Width:=4; //linjebredd = 4 pixlar

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

    procedur Polygon(); - ritar en sluten polygon specificerad av en array av koordinater.

Exempel : rita en fylld diamant som förbinder mittpunkterna på formens sidor

Var Xc,Yc:heltal; // koordinater för mitten av formulärets klientområde

Xc:=ClientWidth div 2;

Xy:=ClientHeight div 2;

Canvas.Brush.Color:=Rgb(275,140,70); // orange Färg skuggning

Canvas.Polygon();

slutet;

    Procedur Båge(xl,yl,x2,y2,x3,y3,x4,y4:heltal); - visar bågen för en ellips som begränsas av en rektangel (x1, y1, x2, y2). Bågen visas från en punkt med koordinater (x3,y3) till en punkt med koordinater (x4,y4) mot medurs.

Exempel : rita en ellipsbåge som förbinder mitten av ovansidan av komponenten
PaintBox med mitten av sin högra sida.

Procedur Tform1.Button1Click(Sender:Tobject);

Var X3,y3,x4,y4: Heltal;

Med PaintBox1 gör det

Canvas.Pen.Color:= clWhite;

Canvas.Pen.Width:= 3;

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

X3:= ClientWidth div 2;

X4:= ClientWidth;

Y4:= ClientHeight div 2;

Canvas.Pen.Color:= clMaroon;

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

Slutet;

    procedur Ackord(xl,yl,x2,y2,x3,y3,x4,y4:heltal); - ritar ett ackord - en rät linje som förbinder 2 punkter på ellipsen: en punkt med koordinater (x3, y3) med en punkt (x4, y4).

Exempel : Ersätt ARC-metoden med ARC-metoden i exemplet och få följande resultat.

    procedur Paj(xl,yl,x2,y2,x3,y3,x4,y4:heltal); - ritar ett ellipssegment som förbinder mitten av ellipsen med koordinater (x3,y3) och (x4,y4).

Exempel : I exemplet som ges för ARC-metoden, föreställ dig PIE-metoden och få detta resultat.

    procedur TextOut(x,y:heltal;Text:sträng); - matar ut strängen som skickas i parametern Text till en rektangel vars övre vänstra hörn anges x,y koordinater. Teckensnittsegenskaper ställs in av teckensnittsverktyget.

Exempel : skriv namnet på den plottade grafen längst ner i formuläret.

Canvas.Font.Height:=20 ; //teckenhöjd 20 pixlar

Canvas.Font.Color:=clblue;

Canvas.TextOut(10, ClientHeight-24, 'graf av funktion SIN(X)');

Grafiska komponenter

Delphi erbjuder ett antal färdiga komponenter som gör att du kan förbättra dig användargränssnitt. Dessa komponenter finns på sidan Ytterligare Och Systemet komponentpaletter.

KomponentBild(KlassTimage) – skapad för att visa grafiska bilder lagrade i externa filer med tillägg:

    Ico(ikon, piktogram);

    Bmp (bitmapp, bitmapp);

    Wmf, .emf (metafil);

    Jpg, .jpeg (komprimerad JPEG-bild).

Grundläggande egenskaper :

Automatisk storlek:boolean – när den är inställd på true, justerar komponenten sina dimensioner till storleken på den laddade bilden; standard är falskt.

Sträcka:boolean – om det är sant, upptar det laddade värdet hela arean av komponenten; standard är falskt.

Duk:Tcanvas – används för att rita inuti komponenten under programkörning.

Bild:Tbild - Definierar bilden som placeras i komponenten.

Grundläggande metoder klass Tbild:

Procedur LoadFromFile(Filnamn:sträng); - laddar en bild från en fil med namnet Filnamn till komponenten.

Procedur Spara till fil(Filnamn:sträng); -spara bilden från komponenten till en fil med namnet Filnamn.

KomponentPaintBox - definierar ett rektangulärt ritområde. Huvudegendomen är Duk, alla metoder i klassen Tcanvas är tillgängliga, den har inga oberoende egenskaper.

Exempel : rita en gul ellips inskriven i PaintBox1-komponenten.

Procedur Tform1Knapp1Klick(avsändare:objekt);

Med PaintBox1.Canvas göra

Brush.Color:=clyellow;

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

slutet;

KomponentBitBtn rasterknapp

BitBtn-knappen kan, till skillnad från standarden, förutom titeln (Caption), innehålla en bild som specificeras av egenskapen Glyph. Det finns en uppsättning standard BitBtn-knappar, med fördefinierade egenskaper (med en specifik bild, inskription och syfte) - typen av standardknapp väljs genom egenskapen Snäll. Kind=(bkCustom, bkAbort,bkCancel, bkClose …)

Uppgift nr 1

Skapa en applikation som innehåller två bildkomponenter och 4 knappar på huvudformuläret ("Ladda bild", "Bygg en geometrisk figur", "Ändra färg", "Avsluta") och låter dig:

a) ladda den användarvalda grafiska bilden i Image1-komponenten så att bilden upptar hela området av Image-komponenten.

b) under Image1-komponenten visas inskriptionen "Detta är en bild från en fil.

(för varje mätning av komponentens storlek och positionBild1 inskription ska
ligger strikt under komponenten).

c) rita en geometrisk figur inuti Image2-komponenten: ett fyllt ellipssegment som förbinder mitten av Image-komponenten med mitten av den nedre och högra sidan av Image-komponenten.

(för eventuella förändringar i storlek och placering av komponentenBild2 figuren måste vara korrekt konstruerad, dvs. enligt specifikationen för komponentenBild2)

d) ändra färgen på linjen i en figur ritad i Image2 på användarens begäran med hjälp av ColorDialog-komponenten.

Uppgift nr 2

Skapa ett program som låter dig placera flera etiketter slumpmässigt (till exempel ordet "Hurra!") i en bildkomponent. För att implementera detta, använd Randomize slumptalsgeneratorn och Random-funktionen.

Måtten på bildkomponenten, ordet som visas i bilden och antalet ord måste anges av användaren.

Uppgift nr 3

Skapa ett program som låter dig välja namnet på en geometrisk form från en ListBox och rita den valda formen i bildkomponenten. Formens färg väljs från RadioGroup-komponenten.

Uppgift nr 4

Dela PaintBox1-komponenten i 4 lika delar, måla varje del i olika färger, till exempel: blå, gul, grön, röd.

Bredvid varje hörn av PaintBox1, skriv koordinaterna för det hörnet (i förhållande till ursprunget för formuläret där PaintBox1-komponenten finns).

Uppgift nr 5

MED

välj den typ av form som ska ritas från Radiogroup1-komponenten, fyllningsfärgen från Radiogroup2-komponenten och rita den valda formen i Image-komponenten.

Uppgift nr 6

Skapa ett program som låter användaren ställa in dimensionerna för PaintBox1-komponenten (i pixlar).

Dela PaintBox1-komponenten i 2 lika delar, inuti varje del rita en ellips, fylld med den färg som valts av användaren i ColorDialog.

Uppgift nr 7

MED Skapa en applikation som låter dig:

välj namnet på en geometrisk form från ListBox och rita den valda formen i bildkomponenten. Formen ska fyllas med den färg som valts av användaren i ColorDialog-komponenten om Ja är valt i RadioGroup-komponenten.

Uppgift nr 8

Skapa ett program som låter användaren ställa in dimensionerna för PaintBox1-komponenten (i pixlar).

Dela PaintBox1-komponenten i 4 lika delar, inuti varje del rita en annan geometrisk form (ellips, romb, triangel och rektangel). Färgen på varje form väljs av användaren i ColorGrid.

Uppgift nr 9

välj namnet på den geometriska formen från ListBox
former (ellips, romb, rektangel) och rita
den valda formen i bildkomponenten. Plats
former i bildkomponenten (I fjärdedel, II fjärdedel,

III eller IV quarter) och färgen på figuren väljs
från RadioGroup-komponenter.

Uppgift nr 10

Skapa ett program som låter användaren ställa in dimensionerna för PaintBox1-komponenten (i pixlar).

Se till att sidstorleken inte kan vara text, inte kan vara ett negativt tal och inte överstiga den mindre formulärstorleken.

Dela PaintBox1-komponenten i 4 lika delar, inuti varje del rita en geometrisk form vald av användaren i Combobox (ellips, romb, triangel och rektangel). Färgen på figuren väljs av användaren i ColorBox.

Uppgift nr 11

Skapa en applikation som låter dig:

välj positionen för ritningen från komponenten Radiogrupp

i bildkomponenten i den högra triangeln, ställ in
färgen på figurens skuggnings- eller konturfärg, beroende på
aktivera kryssruteknappar. Välj färg via
ColorGrid-komponent.

Uppgift nr 12

Skapa ett program som låter användaren ställa in dimensionerna för PaintBox1-komponenten (i pixlar).

Se till att sidstorleken inte kan vara text, inte kan vara ett negativt tal och inte överstiga den mindre formulärstorleken.

Dela PaintBox1-komponenten i 2 lika delar, inuti en av delarna rita en geometrisk form vald av användaren i Combobox (ellips, romb, triangel och rektangel). Färgen på figuren väljs av användaren i ColorBox.

Du kan till exempel ändra färgen på formuläret enligt följande:

form1.Color:= ColorBox1.Colors;

Uppgift nr 13

Skapa en applikation som låter dig:

a) rita en kvadrat i mitten av formen (storleken på sidan av kvadraten skrivs in av användaren). Se till att sidstorleken inte kan vara text, inte kan vara ett negativt tal och inte överstiga den mindre formulärstorleken.

b) dela kvadraten i en diagonal eller två, beroende på inkluderingen av kryssruteknapparna, och måla varje resulterande triangel i en annan färg. Valet av färg görs av användaren.

Uppgift nr 14

Skapa ett program som låter användaren ställa in dimensionerna för PaintBox1-komponenten (i pixlar).

Se till att sidstorleken inte kan vara text, inte kan vara ett negativt tal och inte överstiga den mindre formulärstorleken.

Dela PaintBox1-komponenten i 2 lika stora delar, inuti en del rita en romb, och inuti den andra delen rita valfri triangel. Färgen på figuren väljs av användaren i ColorBox.

Du kan till exempel ändra färgen på formuläret enligt följande:

form1.Color:= ColorBox1.Colors;

Uppgift nr 15

Skapa en applikation som låter dig:

a) ställ in dimensionerna för bildkomponenten horisontellt och vertikalt så att de är samma och lika med det nummer som användaren angett från tangentbordet;

(förutsatt att sidstorleken inte kan vara text, inte kan vara ett negativt tal och inte kan överstiga den mindre formstorleken)

b) dela bildkomponenten i fyra lika stora rutor med två blå linjer;

c) inuti varje resulterande fyrkant, rita en cirkel inskriven i den (låt användaren välja färgen på cirklarna genom färgvalsdialogrutan).

Uppgift nr 16

Skapa ett program som låter användaren ställa in dimensionerna för PaintBox1-komponenten (i pixlar).

Se till att sidstorleken inte kan vara text, inte kan vara ett negativt tal och inte överstiga den mindre formulärstorleken.

Dela PaintBox1-komponenten i 9 lika delar och måla varje resulterande schackbräderektangel. Fyllningsfärgen väljs av användaren i ColorBox.

Du kan till exempel ändra färgen på formuläret enligt följande:

form1.Color:= ColorBox1.Colors;

Uppgift nr 17

Placera två bildkomponenter och fyra knappar på formuläret: Linjefärg, Fyllningsfärg, Ok och Avsluta; och komponenten Redigera.

När du klickar på OK-knappen ritas en fyrkant med sidan X i Bild1, och en rätvinklig triangel med lika ben, som var och en har längden X, ritas i Bild2.

Triangelns vertex sammanfaller med ursprunget till Image2. En av hörnen på kvadraten sammanfaller med ursprunget till Bild1.

OK-knappen blir endast tillgänglig när du har valt en linjefärg och en fyllningsfärg för att rita formen.

X – väljer slumpmässigt med hjälp av Slumpmässiga funktioner och Edit-komponenten ska visa värdet på X.

Uppgift nr 18

Skapa ett program som låter användaren ställa in dimensionerna för PaintBox1-komponenten (i pixlar).

Dela PaintBox1-komponenten i 4 lika delar; inuti den användarvalda delen ska en fylld cirkel byggas, vars storlek bestäms av användaren. Användaren väljer fyllningsfärg i ColorBox.

Du kan till exempel ändra färgen på formuläret enligt följande:

form1.Color:= ColorBox1.Colors;

För att visa grafisk information tillhandahåller Delphi-biblioteket komponenter, vars lista finns i tabellen. 6.

Tabell 6

Komponenter för att visa grafisk information

Komponent Sida Beskrivning
Bild Ytterligare Används för att visa grafik
PaintBox (fönster för ritning) Systemet Används för att skapa ett område på formuläret där du kan rita
DrawGrid (tabell med ritningar) Ytterligare Används för att visa icke-textdata i rader och kolumner
Diagram (diagram och grafer) Ytterligare Komponenten tillhör TeeChart-familjen av komponenter, som används för att skapa diagram och grafer
Chartfx (diagram och grafer) ActiveX Diagram- och grafredigerare
FIBook (Excel-sidor) ActiveX Numerisk informationsinmatning och bearbetningskomponent
VtChart (diagram) ActiveX Diagramfönster

Dessutom kan du visa och ange grafisk information på ytan av alla fönsterkomponenter som har egenskapen Duk- duk.

Bildtabeller - DrawGrid- och StringGrid-komponenter

Komponent DrawGrid används för att skapa en tabell i applikationen som kan innehålla grafiska bilder. Denna komponent liknar komponenten StringGrid eftersom det senare härrör från DrawGrid. Därför i DrawGrid alla egenskaper, metoder, händelser för komponenten är närvarande StringGrid förutom de som rör texten, dvs. förutom fastigheter Celler, Kolor, rader, objekt. Ur denna synvinkel, komponenten StringGrid har betydligt större kapacitet än DrawGrid eftersom den kan lagra både bilder och texter i celler. Och om du vill skriva in text i vissa celler DrawGrid då måste du använda metoder för att visa text på en disposition för detta, vilket inte är särskilt bekvämt.

Komponenter DrawGrid och StringGrid ha en disposition Duk, som du kan lägga upp bilder på.

Det finns en metod Cell-Rect, som returnerar arbetsytan som tilldelats för en given cell. Denna metod definieras som

function CellRect(ACol, ARow: Longint): TRect;

Var ACol och ARow- kolumn- och radindex från 0, i skärningspunkten där cellen är belägen. Området som returneras av den här funktionen är arbetsytan där den önskade bilden kan ritas. Till exempel operatören

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

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

kopior metoden CopyRect till cell (1,1) i tabellen DrawGridl bild från komponent BitMap. Denna cell är tvåa från vänster och tvåa från toppen i tabellen, eftersom index börjar på 0. Observera att om cellen är mindre än storleken på den kopierade bilden, så kommer endast den övre vänstra delen av bilden att visas i Cellen.

Bild på komponentduken DrawGrid och StringGrid, som på duken för alla komponenter, kan den raderas när applikationsfönstret överlappas av andra fönster eller till exempel när applikationen minimeras.

Ett bekvämt sätt att lägga in bilder i celler DrawGridär att använda en händelsehanterare OnDrawCell. Dessa händelser inträffar för varje tabellcell när den ritas om. Hanterarhuvudet ser ut så här:

procedure TForml.DrawGridlDrawCell(Avsändare: TObject;

ACol, ARow: heltal; Rect: TRect; Delstat: TGridDrawState)

Parameter stat indikerar cellens tillstånd. Det är en uppsättning som kan innehålla följande element: gdSelected- vald cell, gdFocused- cellen som är i fokus, gdFixed- en cell i ett fast område av bordet. Parameter stat kan användas för att visa celler olika i olika tillstånd.

Formkomponent

Formkomponent kan endast villkorligt klassificeras som ett sätt att visa grafisk information, eftersom det helt enkelt representerar olika geometriska former, lämpligt skuggade. Huvudegenskapen för denna komponent är Form(form), som kan ha följande värden:

StRektangel – rektangel;

StSquare – kvadrat;

StRoundRect - rektangel med rundade hörn;

StRouhdSquare - fyrkantig med rundade hörn;

StEllipse – ellips;

StCircle - cirkel.

En annan väsentlig egenskap hos komponenten är Borsta(borsta). Den här egenskapen är ett objekt av typen TBrush, har ett antal underegenskaper, i synnerhet färg (Brush.Color) och stil (Brush.Style) fyller figuren. Du kan se fyllningen för vissa stilvärden i fig. 3.2. Komponentens tredje specifika egenskap Form- Penna(penna) som definierar linjestilen.

Diagramkomponent

Låt oss nu titta på komponenten Diagram. Denna komponent låter dig bygga olika diagram och grafer som ser väldigt imponerande ut. Komponent Diagram har många egenskaper, metoder, händelser, så om vi betraktade dem alla skulle vi behöva ägna ett helt kapitel åt detta. Därför kommer vi att begränsa oss till att endast överväga de viktigaste egenskaperna Diagram. Du kan hitta resten i Delphis inbyggda hjälp, eller bara prova dem genom att experimentera med diagrammen.

Komponent Diagramär en behållare med föremål Serier- klassens arvingar TChartSeries. Varje sådant objekt representerar en serie data som kännetecknas av en viss visningsstil: en viss graf eller diagram. Varje komponent Diagram kan innehålla flera episoder. Om du vill visa en graf kommer varje serie att motsvara en kurva på grafen. Om du vill visa diagram kan du för vissa typer av diagram lägga flera olika serier ovanpå varandra, för andra (som cirkeldiagram) kommer det förmodligen att se fult ut. Men även i det här fallet kan du ställa in en komponent Diagram flera serier av identiska data med olika typer diagram. Sedan, genom att göra en av dem aktiv varje gång, kan du ge användaren ett val av vilken typ av diagram som visar de data de är intresserade av.

Placera en eller två komponenter Diagram på formuläret och titta på egenskaperna som öppnas i objektinspektören. Här är några förklaringar till några av dem.

AllowPanning - bestämmer användarens förmåga att rulla den observerade delen av grafen under exekvering genom att trycka på höger musknapp. Möjliga värden: pmInga - rullning är förbjuden, pmHori/ontal, pm Vertikal eller pmBåda - rullning är tillåten, respektive, endast i horisontell riktning, endast i vertikal riktning, eller i båda riktningarna.

AhowZoom - låter användaren ändra bildzoom under körning genom att klippa ut fragment av ett diagram eller en graf med muspekaren. Om ramen för ett fragment dras åt höger och nedåt, sträcks detta fragment för att täcka hela grafens fält. Och om ramen dras upp och till vänster, återställs den ursprungliga skalan.

Titel - definierar diagrammets titel.

Fot - definierar bildtexten under diagrammet. Ingen som standard. Signaturtexten bestäms av underegenskapen Text.

Ram - definierar ramen runt diagrammet.

Bredvid många av de listade egenskaperna i objektinspektören finns knappar med ellipser som låter dig anropa en eller annan sida i diagramredigeraren - ett flersidigt fönster som låter dig ställa in alla egenskaper för diagrammen. Diagrameditorn kan också anropas genom att dubbelklicka på komponenten Diagram eller genom att högerklicka på den och välja kommandot Redigera diagram från popup-menyn.

Dubbelklicka på den översta komponenten Diagram. Du kommer att föras till diagramredigerarens fönster på diagramsidan, som har flera flikar. Först och främst kommer du att vara intresserad av seriefliken på den. Klicka på knappen Lägg till - lägg till en serie. Du kommer till ett fönster där du kan välja typ av diagram eller graf. I det här fallet väljer du Cirkel - ett cirkeldiagram. Med hjälp av fliken Titlar kan du ställa in diagrammets titel, fliken Legend låter dig ställa in parametrar för att visa diagramförklaringen (lista med symboler) eller ta bort den från skärmen helt och hållet, panelfliken bestämmer panelens utseende på som diagrammet visas ger 3D-fliken dig möjlighet att ändra utseendet på ditt diagram: lutning, skiftning, tjocklek, etc.

När du arbetar i diagramredigeraren och har valt en diagramtyp, kommer komponenterna Diagram Ditt formulär visar sitt utseende med de villkorliga data som anges i det. Därför kan du omedelbart se resultatet av att tillämpa olika alternativ på din applikation, vilket är väldigt bekvämt.

Seriesidan, som också har ett antal flikar, ger dig möjlighet att välja ytterligare visningsalternativ för serien. I synnerhet för ett cirkeldiagram, på fliken Format, är det användbart att aktivera alternativet Circled Pie, vilket säkerställer att diagrammet visas som en cirkel oavsett storlek på diagramkomponenten. På fliken Marks bestämmer knapparna i Style-gruppen vad som kommer att skrivas på etiketterna som är relaterade till individuella segment i diagrammet: Värde - värde, Procent - procent, Etikett - datanamn, etc.

Du kan, om du vill, lägga till ytterligare en identisk serie till denna diagramkomponent genom att klicka på knappen Klona på fliken Serier på diagramsidan, och sedan för detta ny serie Klicka på knappen Ändra och välj en annan diagramtyp, till exempel stapel.

Avsluta diagramredigeraren, välj den nedersta diagramkomponenten i din applikation och upprepa inställningen av dess egenskaper med hjälp av diagramredigeraren. I det här fallet måste du ange två serier om du vill visa två kurvor på grafen och välja linjediagramtypen. Eftersom den vi pratar om om grafer kan du använda flikarna Axis och Walls för att ange koordinategenskaperna för axlarna och grafens tredimensionella kanter.

Det är det för design utseende ansökan avslutas. Allt som återstår är att skriva koden som anger vilken data du vill visa. För testapplikationen, låt oss bara ställa in några konstanta data i cirkeldiagrammet och några funktioner i graferna.

För att ställa in de visade värdena måste du använda seriemetoder. Låt oss bara fokusera på tre huvudmetoder.

Metod Klar rensar en serie tidigare inmatade data.

Metod Lägg till:

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

låter dig lägga till en ny punkt i diagrammet. Parameter Ett värde motsvarar tilläggsvärdet, parameter En etikett- en etikett som kommer att visas på diagrammet och i förklaringen, En färg- Färg. Parameter En etikett- valfritt, den kan ställas in tom: ' '. Metod AddXY:

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

låter dig lägga till en ny punkt i funktionsdiagrammet. alternativ AXVärde Och AYVärde motsvarar argument och funktion. alternativ ALabel och AColor samma som i metoden Lägg till.

Således kan proceduren för att ladda data i vårt exempel se ut så här:

konst Al=155; A2=251; A3=203; A4=404; var i:ord; Börja

Med serier börjar

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

Add(A2,"Workshop 2",clBlue);

Add(A3,"Workshop 3",clRed);

Add(A4,"Workshop 4",clPurple); slutet;

Serie2.Clear; SeriesS.Clear; för i:=0 till 100 börjar

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

SeriesS.AddXY(0,02*Pi*i,cos(0,02*Pi*i) slut;

ClRed); ,clBlå);

Operatörer Klar behövs om du ska uppdatera data medan programmet körs.

Detta avslutar vår introduktion till komponenten Diagram. Det är sant att vi bara har beaktat en liten del av dess kapacitet.


"Visa grafisk information i Delphi" Ämnesöversikt: 1.C S pppp ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå mm ahhh tskst iiiiii iiiiii i iv in D D D D eeee llll pppp hhhh iiii O O tttt ooo bbbb rrrrr aaaa zhzhzh eee nnnn iiii eee k k k aaaa rrrrr tttt iiii nnnnn ooooo kkkk O O tttt ooooo bbbb a rrr g eeeeeee oooo mmmm eee ttt rrrr iiii hhchh eee ssss kkkk iiii xxxxx ffff iiii yyyy uuuu rrrrr P Pooooo ssss ttt rrrrr ooooo eee nnnn iiii eee yy g g rrrrr aaaa ffff iiii kkkk ooooo vvvv i i i och d d d d a d iiiaaaaaaaaaaaaaaaaaaaaaaaaaaa


1. Metoder för att visa grafisk information. I Delphi finns det flera sätt att visa grafisk information: Utmatning av förberedda bilder (bild, formkomponenter); P Konstruktion av grafer och diagram (diagramkomponent, etc.); F Bildande av bilder programmatiskt (Canvas-objekt).


2.Visa 2.Visa bilder. Visningen av bilder med hjälp av bildkomponenten undersökte vi i LLC DDDDD DDDD LLC Yiyy och och och ZZZZ P P P P PRRRDDDDDDDDDDDDDDD IIII XXXX T T T T T T T T T TOTEMMM .... Här kommer vi att överväga ett exempel på implementeringen enklaste animationen genom att med jämna mellanrum ändra den visade bilden i bildkomponenterna. PPPP EDURRREEEE YYYE TTTT IIII n N N n AAAAAA PP PRRR IIII MMMMEEEE RRRRR ...






3.Display 3.Visning av geometriska former. OCH Från flera Shape-komponenter kan du skapa enkla ritningar. P Genom att programmatiskt ändra positionen (.Left,.Top), storlek (.Width,.Height) och färg (Brush.Color) för Shape-komponenterna i en ritning, kan du implementera element i den enklaste animationen. R R R R aaaa ssssssss mmmm ooooh tttt rrrrr eee tttt yee p p p p rrrrr iii mmmm eee rrrrr....


4.Konstruktion 4.Konstruktion av grafer och diagram. Diagram är utformade för en mer visuell representation av numeriska datamatriser, deras visuella visning och analys. PPPP rrrrr iiii mmmm eee rrrrr.... För att skapa diagram i Delphi finns det flera komponenter, en av dem är diagramkomponenten (sektion TeeChart Std).










Grafer och diagram. Datan som ska visas skickas vanligtvis till diagrammet programmatiskt, till exempel: Series1.Clear; (rensa serie) för i:=1 till N gör Serie1.addxy(i, A[i], clGrön); X-axelvärde Y-axelvärde X-axeletikett Datafärg på PP-diagrammet aaaa ssssssssssss mmmm ooooo tttt rrrrr eee tttt yee p p p p prrrr iiii mmmm eee rrrrr p p p poooo ssss ttt oeyy iiiyy rrr aaaa ffff iii kkkk aaaa f f f f uuuu nnnn kkkk tsstst iiiiii y y y y = = = = S S S S iiii nnnn ((((xxxx))))


Nästa: Laboratoriearbete ““““ OOOO tttt ooooo bbbb rrrrr aaaa zhzhzh eee nnnn iiii eee k k k k aaaa rrrrr tttt iiii nnnn ooooo kkkk i i i i ååååååååååååååååååååååååååååååååååååååå mmmm eeeeeeeeeeeeeeeeeeeee iiii åååå uuuu rrrrr, och och och xxxx a a a a a nnnn iiii mmmm aaaa tsstst iiii yayayaya """"...Uppgift: 1) Utveckla ett program för att utföra enkel animering genom att med jämna mellanrum ändra den visade bilden i bildkomponenterna. (Antalet bilder är minst tre, välj bilderna själv).




Vidare: Laboratoriearbete ““ ““ “PPP OOOO SSSS TTTTTT RRRR LLODNNNNNNNNNEIIEE IIEE Grrrr AAAAA FFF III KKKK OOO VVVV and IIIA AAAAA GGG RRRR AAAAA MMMMMM” ”” ”” "" "" "" "" " ..uppgift: M ändra applikationen från laboratoriearbete 9 (Visa data i en tabell). Lägg till möjligheten att visa vissa data från en tabell i ett histogram eller ett cirkeldiagram. 2) Konstruera en graf över den givna funktionen.

Visual Component Library (VCL) Delphi förser oss med följande visuella komponenter för att visa grafisk information: Bild (bild), PaintBox (fönster för ritning), DrawGrid (bildtabell), Diagram (diagram och grafer), Animera (utdatavideoklipp). ), samt Form. Dessa komponenter har en Canvas-egenskap (diskuterad ovan) som ger åtkomst till varje pixel. Naturligtvis behöver du inte rita pixel för pixel för att arbeta med grafik i Delphi; Delphi-systemet ger kraftfulla verktyg för att arbeta med grafik.

Låt oss ta en närmare titt på ovanstående komponenter:

Bildkomponent

Är ett objekt i klassen TImage. Används för att visa bilder lästa från grafikfiler. Som standard visas bilder presenterade i *.bmp-format på formulärets yta. För att mata ut bilder i jpg-format måste du inkludera JPEG-modulen i användningsdirektivet. Finns på fliken Ytterligare i komponentpaletten.

Efter att ha placerat bildkomponenten på formuläret tar den formen av ett valt rektangulärt område.

Bild 9 - Bildkomponent på formuläret

För att öppna en dialogruta för att välja önskad bild, måste du göra följande med hjälp av objektgranskaren. För att göra detta, hitta egenskapen Bild och klicka på de tre prickarna till vänster om den. Bildredigeringsfönstret öppnas och i det väljer du Ladda, i fönstret som öppnas väljer du bildfilen.

Detta kan också göras programmatiskt genom att anropa metoden LoadFromFile för egenskapen Picture:

Image1.Picture.LoadFromFile("namn_bild.jpeg");

där name_pic.jpeg är filnamnet.

Tabell 8 - Grundläggande egenskaper för bildkomponenten

Fast egendom

Beskrivning

Bild som visas i komponentfältet

Komponentdimensioner. Om dessa mått är mindre än illustrationsstorleken och egenskaperna Stretch, AutoSize och Proportional är inställda på False, så visas en del av bilden

Gör att du kan skala bilder automatiskt utan förvrängning. För att utföra skalning måste egenskapen AutoSize vara inställd på False

Gör att du automatiskt kan skala (krympa eller sträcka ut) en bild så att den passar storleken på bildkomponenten. Om storleken på komponenten inte är proportionell mot storleken på bilden kommer bilden att förvrängas

Gör att du automatiskt kan ändra storlek på en komponent så att den passar bildstorleken

Låter dig bestämma den horisontella positionen för bilden i fältet för bildkomponenten om bildens bredd är mindre än komponentens bredd.

Yta för visning av grafik

Anger en transparent bakgrundsfärg för bilden

Exempel 1: Skriv ett program för att visa bilder med hjälp av bildkomponenten. Programmet måste ha följande funktioner:

  • · visa bilder i mappen;
  • · visa bilden i full storlek eller i det format som passar bäst för fönsterstorleken;
  • · hantera bildfiler, samt skriva ut, spara, radera och redigera bilder;
  • · vid behov, öppna bilden i ett redigeringsprogram;

Figur 10 - Programfönster innan det startar

Skapa ett projekt:

  • 1. Skapa en mapp för programfilerna och starta Delphis integrerade utvecklingsmiljö.
  • 2. Lägg till komponenter i formuläret:

Först kommer vi att placera bildkomponenten på formuläret, huvudkomponenten som vi måste arbeta med. Utöver detta behöver vi följande komponenter:

  • · ScrollBox Det är nödvändigt när bilden är i fullstorleksläge överskrider bilden. Vi tilldelar värdet alClient till dess Aling-egenskap så att dess dimensioner ändras proportionellt med fönstrets storlek. Och placera bildkomponenten på den;
  • · Vi kommer också att lägga till dialogkomponenter SavePictureDialog och OpenPictureDialog, designade för att spara och öppna bilder. Vi behöver den första för att kopiera bilden till den valda katalogen, den andra - för att anropa öppningsdialogrutan grafisk fil. De finns på dialogsidan i komponentpaletten. Från den här sidan behöver vi även PrintDialog-komponenten, som vi behöver kalla dialogen för att välja en skrivare för utskrift.
  • · Lägg till MainMenu för att lägga till en huvudmeny till programmet och XPManifest för en mer färgstark design
  • · Vi måste också lagra namnen på bilderna som finns i arbetskatalogen någonstans. ListBox-komponenten är bekväm för dessa ändamål; den kan döljas när du bearbetar Skapa-händelsen i Form1.
  • · För att placera navigeringsknappar och bekvämt arbeta med dem kommer vi att lägga till en Veil-panel på vilken vi kommer att placera dessa knappar (Föregående bild, Nästa bild, True size, Anpassa till storlek, Ta bort, Kopiera till, Skriv ut, Redigera). SpeedButton väljs som en komponent för dem.
  • · Lägg till en timer för att fånga tangenttryckningarna "Vänster" (föregående bild), "Höger" (nästa bild) och "Del"-tangenten (ta bort bild).
  • · Och ytterligare en komponent - ProgressBar, som visar processen att ladda stora *.Jpg-filer.
  • 3. Skriv kod för att bearbeta knappklickshändelsen (Föregående bild, Nästa bild, True size, Anpassa till storlek, Ta bort, Kopiera till, Skriv ut, Redigera). Skriv kod för att bearbeta händelsen att klicka på huvudmenyn menyalternativ (Avsluta, Öppna, Stäng, Skapa).
  • 4. Ange de ursprungliga inställningarna för att skapa formuläret. Dubbelklicka på fritt utrymme formulär och skriv proceduren kodproceduren TForm1.FormCreate(Sender:TObject), se modulkoden i bilaga 1.
  • 5. Skriv procedurer av följande typ:

procedure FindFileInFolder(sökväg, ext: sträng);

Denna procedur skannar sökvägsmappen efter filer med hjälp av ext-masken.

Den fullständiga listan över programmodulkoden finns i Bilaga 1 (Programlista 3).

  • 1. Lista funktionerna för bildkomponenten.
  • 2. Vilken klass är bildkomponenten ett objekt av?
  • 3. 3. Vilken filtyp stöder Image-komponenten som standard?
  • 4. 4. Lista huvudegenskaperna för bildkomponenten.
  • 5. 5. Vilken egenskap lagrar bilden av Image-komponenten?

Beskrivning av presentationen med individuella bilder:

1 rutschkana

Bildbeskrivning:

2 rutschkana

Bildbeskrivning:

Visuellt medium Delphi programmering, som Windows, stöder GUI användare (GDI – Graphic Delphi Interface). I Delphi finns det två sätt att visa grafisk information: visa förberedda bilder; rita från programmet.

3 rutschkana

Bildbeskrivning:

Den första metoden är baserad på användningen av bild- och formkomponenterna. Du kan använda en färdig bild (ikon) eller skapa dem själv med hjälp av bildredigeraren. Det andra sättet är att skapa bilder programmatiskt med Canvas-objektet.

4 rutschkana

Bildbeskrivning:

Delphi har till sitt förfogande speciellt föremål, som är utformad som en Canvas-egendom. Det är endast tillgängligt medan programmet körs, så det kan endast styras från programmet genom att skriva nödvändig kod på Object Pascal-språk. Om ett objekt har egenskapen Canvas kan du rita på dess yta. De mest lämpliga kandidaterna för denna roll är själva formuläret och den speciella PaintBox-komponenten.

5 rutschkana

Bildbeskrivning:

Canvasobjekt Egenskaper: Penna – egenskap för att rita linjer och kanter av geometriska former. Pennan följer den grafiska markörens kommandon och har i sin tur sina egna kapslade egenskaper: Färg – bestämmer färgen på linjen (svart som standard); Läge – ritstil (har många betydelser som inte ges här); Stil – linjestil, som kan ha följande värden: рsSolid – solid (standard); рsDosh – streckad; psPunkt – prickad; рsDoshDot – prickad linje (och andra egenskaper); Widh – linjetjocklek (standard 1 pixel);

6 rutschkana

Bildbeskrivning:

Pensel – en egenskap för att fylla former med följande kapslade egenskaper: Färg – penselfärg (vit som standard); Stil – penselmönster, som kan ha följande värden: bsClear – enfärgad; bsHorisontell – horisontella linjer; bsVertikal – vertikala linjer; bsFDiagonal – vänster diagonala linjer; bsBDiagonal – höger diagonala linjer; bsCross – cell; bsDiagCross – sned cell;

7 rutschkana

Bildbeskrivning:

Font – en egenskap för att visa text som har följande kapslade egenskaper: Färg – teckenfärg; Höjd – teckensnittshöjd i pixlar; Namn – teckensnittsnamn; Storlek – teckenstorlek; Stil – teckensnittsstil, som kan ha följande värden: fsBold – fet; fsItalic – kursiv; fsUnderstrecka – understruken; fsStrikeOut – överstruken;

8 glida

Bildbeskrivning:

PenPos (Pen Position) – en egenskap för att lagra den aktuella ritpositionen (definierar pennans position i ritningsområdet i det här ögonblicket tid); Pixels – en array-egenskap för att skriva och läsa koordinaterna för enskilda punkter i ritytan ("canvas").

Bild 9

Bildbeskrivning:

Metoder för Canvas-objektet MoveTo(x,y: heltal) – flyttar pennan från den aktuella positionen till en punkt med de angivna x, y-koordinaterna utan att dra en linje; LineTo(x.y: heltal) - flyttar pennan från den aktuella positionen till en punkt med de givna koordinaterna x, y, ritar en linje; Arc(x1, y1, x2, y2, x3, y3, x4, y4: heltal) – ritar bågen av en ellips inskriven i en rektangel med koordinater (x1, y1) och (x2, y2). Bågen bestäms av radierna för ellipsen som går genom punkterna (x3,y3) och (x4,y4);

10 rutschkana

Bildbeskrivning:

Ackord(x1, y1, x2, y2, x3, y3, x4, y4: heltal) – ritar ett ackord av en ellips enligt beskrivningen för Arc-metoden; Ellips(x1, y1, x2, y2: heltal) – ritar en ellips inskriven i en rektangel med det övre vänstra hörnet vid punkten (x1, y1) och det nedre högra hörnet vid punkten (x2, y2); FillRect(Rect (x1, y1, x2, y2: heltal)) – fyller rektangeln med den färg som anges i den aktuella penseln. Använder funktionen Rect, som representerar en rektangel vid de givna koordinaterna;

11 rutschkana

Bildbeskrivning:

FloodFill(x,y: heltal; Färg: TColor; FillStyle: TFillStyle) – fyllning med den aktuella färgen som anges i Brush-egenskapen: med FillStyle=fsBorder – ett slutet område från punkten med koordinaterna x, y till gränsen som definieras av Färg; med FillStyle=fsSurface – den del av ytan som har färgfärgen; Pie(x1, y1, x2, y2, x3, y3, x4, y4: heltal) – ritar en sektor av en ellips inskriven i en rektangel med koordinater (x1, y1) och (x2, y2). Sektorn definieras av två ellipsradier som passerar genom punkterna (x3, y3) och (x4, y4);

12 rutschkana

Bildbeskrivning:

Polyline (Points: array av TPoint) – ritar en polyline som sekventiellt förbinder punkterna i Points arrayen; Polygon (Points: array av TPoint) – ritar polygoner genom att sekventiellt koppla ihop punkter i Points arrayen. Den skiljer sig från Polyline-metoden genom att den automatiskt kopplar slutet av polyline till dess början; Rektangel (x1, y1, x2, y2: heltal) – ritar en rektangel med det övre vänstra hörnet vid punkten (x1, y1) och det nedre högra hörnet vid punkten (x2, y2);

Bild 13

Bildbeskrivning:

Retresh – metoden kallas när det är nödvändigt att rita om bilden; RoundRect (x1, y1, x2, y2, x3, y3: heltal) – ritar en rektangel med rundade hörn. Hörnen är ritade som fjärdedelar av en ellips med en bredd av x3 och en höjd av y3; TextOut (x, y:integer, Text:String) – matar ut texten som anges i parametern Text. Texten passar in i en rektangel vars övre vänstra hörn har x, y-koordinater.




Topp