képzés

Megszerzett tudás előző leckében elég kezdeni a tanulmány a bemeneti és kimeneti mechanizmusok. Az általános rendszer a program körülbelül a következő: a felhasználó beírja az adatok, a program beolvassa őket, teszi őket valamilyen műveletet, és eredményt. Leegyszerűsítve: input, feldolgozás és output. Mi már tudjuk? Adatbeviteli szükségünk van más elemek, mint például a szövegbeviteli mezőben (tSzerkesztés) vagy többvonalas -. TMemo, CheckBox vagy RadioButton paraméterek kiválasztására, stb használható kimeneti szöveges címke (TLabel). Most vizsgáljuk meg a programozás részét. Azt már tudjuk, hogyan állapítsa változók, hogy milyen típusú adatokat, és mik a típus (szám, vonósok, stb) Már csak azt, hogy megtudja, hogyan kell megkötni a vizuális elemeket a programkódot. A tárgyalt példák az előző leckéket, kértük a változók értékét manuálisan (a kód), de ez természetesen nem elfogadható sem a program. A program legyen az egyetemes és az adatok feldolgozására, amely továbbítja a felhasználó. Egyes funkciók a Delphi fogják használni bemeneti és kimeneti. Mi a szerepe, miért van szükség, és hogyan kell velük dolgozni, megbeszéltük az előző leckét. Nos, inkább az a pont?







Bevitele a példa tSzerkesztés

Szövegbeviteli mezőben (tSzerkesztés) - egyszerű és ugyanakkor könnyen kezelhető alkatrész adatbevitel. A területen tudjuk be a számot és a szöveget - nem ismer határokat. Tehát az első feladat -, hogy megtudja, mi a mezőbe írt. Ehhez meg kell fordulni a objektum tulajdonságait. A szöveg, amely a területen megfelel a Text tulajdonság. Ez nekik fogjuk használni. Próbáljuk számolja, hogy felveszik. Található az alak a területen is (tSzerkesztés) és a nyomógomb (TButton). Hozzon létre egy gombot kattintással felvezető és tegye a következőket: állapítsa meg egy változó típusú értéke, majd próbálja meg tedd az érték, amelyet a mezőbe írt.

eljárás TForm1.Button1Click (Sender: TObject);
var A: egész;
kezdődik
A: = Edit1.Text;
végén;

Kazaloos legalábbis, hogy így van - már bejelentett egy változó, és csak azt szeretném tudni, hogy mi a mezőbe írt. Próbáljuk futtatni (F9) - ez nem ilyen egyszerű! A fordító hibát jelez:

[Error] Unit1.pas: összeférhető típusok: 'Egész' és 'TCaption'

Itt azt írják, hogy az adattípusok Egész és TCaption nem egyezik egymással. TCaption - az ilyen típusú adatokat a Text tulajdonság tSzerkesztés. Ez a fajta „azt jelenti:” szöveget, vagyis minden karakter. Ez világosabbá válik? A területen, tudjuk be nem csak számokat, hanem betűket, vagy akár bármilyen jelét, ami a billentyűzeten (és valójában - tegye a karaktereket kód táblázat). Azonban a változó - számot! Kiderült, hogy szeretnénk a karakterek számát írva. Betegség! Igen, azt mondják, de mi lesz, hogy adja meg a számok, nem betűk. Igaz, de ha a fordító tud róla? Természetesen nem. És ez nem lesz lehetséges, hogy meggyőzze :-)

Adat típus hibás - gyakori hiba. Átalakítás egy adattípust másik gyakran van szükség. Példánk - egyértelmű megerősítést. Együttműködik a szám már beírt szöveget (ezt a szöveget) konvertálni egy számot.

Átváltása különböző módon. Ezek közül az egyik - a különleges funkciókat. Funkciók hogy az egyik több paraméter (érvek), amelyek közül az egyik változó vagy a átváltandó értéket. Függvény a néhány művelet, és visszaadja az értékét a kívánt típust.

Történő átalakítását az a szöveg (vonal) egy egész szám StrToInt () függvény. Név pontosan tükrözi a célja a funkciót. Mi jellemző egyetlen paramétert - a húr, és a kimenet egy szám. Ezért, hogy a példánkban a munka, meg kell írni ezt:

eljárás TForm1.Button1Click (Sender: TObject);
var A: egész;
kezdődik
A: = StrToInt (Edit1.Text);
végén;

Most a program futtatásához. Próbáljunk meg egy számot, majd nyomja meg a gombot - nincs válasz figyelhető meg. Igaz, ahogy olvashatjuk amellett, hogy a megadott szám nem lett programozva. És most megpróbálja bemutatni felesleges karaktert (azaz szám) - a „repülni” a hibaüzenet jelenik meg:

A jelentés megállapította, az a hiba okát: „»abc«- téves szám.” Hogyan kerüljük el ezeket az üzeneteket, hanem végezni tevékenységét, nézzük meg később.

Adatkimenetet példáját TLabel

Mielőtt befejezném, hadd proizvedom megadott szám bármely művelet. Például nézzük vozvedom száma a téren. Hogy ez megtörtént, akkor már tudja. Következtetés megvalósítható egy szöveges címke (TLabel). A címke szövege megfelel a Caption tulajdonság. Ebben az esetben a tetteink kell fordítani: Amikor mi tárolja a változó értéke a mezőbe írt, és a levezetése az értéket meg kell mozgatni, hogy a változó elem. Képaláírás TLabel is jellemezte az TCaption adatokat. azaz ezt a szöveget. Tehát meg kell tennie az ellenkezőjét átalakítás, azaz konvertálni a számot egy szövegből. Mi a neve a funkciója az ilyen átadást, akkor könnyen kitalálható - IntToStr (). A végleges változat a gomb felvezető:

eljárás TForm1.Button1Click (Sender: TObject);
var A: egész;
kezdődik
A: = StrToInt (Edit1.Text);
A: = térnél (A);
Label1.Caption: = IntToStr (A)
végén;

Elindítja a programot és próbálja meg:

Egy egyszerű input-output program készen áll.

Hol lehet tanulni a típusú ingatlan?

Függvény írásakor StrToInt () vonal a Text tulajdonság természetesen jelennek meg.







általánosítása a fenti

Megvizsgáltuk a mechanizmus IO példaként a feldolgozás. Ha a feldolgozás alá szöveget, alakítsa át a adattípusok nem kell. Hasonlóképpen, a bemeneti és kimeneti végzik gyakorlatilag bármilyen adatot, ami a legfontosabb - átalakítani egy típusú a másik.

Belépni egészek is van egy praktikus termék - TSpinEdit. Nem található a minták lapra. A megjelenés hasonló tSzerkesztés, itt is csak a két nyilakkal - az érték módosításához. Margók meghatározása tulajdonságait MINVALUE és MAXVALUE. és a tárolt érték az Érték tulajdon.

Munka valós számok

Meg kell említeni a tört számok, mert néha nem. Általában azok a bemeneti és kimeneti gyakorlatilag ugyanaz, mint a számok, csak StrToFloat () függvényt és FloatToStr (). Ez egyszerű. Van azonban egy probléma valós szám - a tizedes rész. Az a tény, hogy nincs bizonyosság, amit a karakter minősül elválasztó - időszakban vagy vessző. Melyik karaktert választott - ez attól függ az operációs rendszer beállításait (Windows ez a szimbólum meghatározott Vezérlőpult alatt Területi és nyelvi beállítások). Így, ha egy programot, hogy élesíteni a vessző, a rendszerekben, ahol a munkapont, semmi sem fog működni, és a hibák fordulnak elő az üzemeltetés során. Ugyanakkor, egy pont is lehet élesíteni a programot, mert ott lehet, és vessző. Szerencsére van megoldás. Van olyan változó, amely soha nem kell nyilvánítani, de meg lehet változtatni az értékét - egy változó DecimalSeparator. Megállapítást nyer, a SysUtils egység, és tárolja a karaktert kell tekinteni, mint egy elválasztó. Állítsa be a kívánt értéket csak egyszer - például, amikor a program elindul. Itt van, hogyan kell beállítani az elválasztó pont:

eljárás TForm1.FormCreate (Sender: TObject);
kezdődik
DecimalSeparator: = '' ;
végén;

Egyéb kivonási módszerekkel

Amellett, hogy termelés az objektumok (például TLabel) Néha kényelmes kimeneti adatok formájában kis egyedi ablakok. Erre a célra vannak szabványos parancsokat. Az előző leckében találkoztunk velük, de nem bontott őket részletesen.

1. Egy egyszerű üzenet doboz - ShowMessage ()

A legprimitívebb ablak tartalmazza a megadott szöveget, majd kattintson az OK gombra az ablak bezárásához. Ok ilyen adott ablakban ShowMessage () eljárás. paraméternek szöveges - és ez jelenik meg az ablakban. Módosítjuk a mini-programot TLabel eltávolítása és cseréje a kimeneti szöveg:

eljárás TForm1.Button1Click (Sender: TObject);
var A: egész;
kezdődik
A: = StrToInt (Edit1.Text);
A: = térnél (A);
ShowMessage (IntToStr (A));
végén;

Ebben az esetben azt látjuk, a következő:

Meg kell jegyezni, hogy míg az üzenet mezőbe van a képernyőn, a felület blokkolva van, és megáll a végrehajtásban további parancsokat. Csak miután a gombra kattintva a program, hogy folytassa munkáját.

2. A párbeszédablak - MessageDlg ()

Párbeszédpanelek - egy kifinomultabb típusú ablakok. Párbeszédpanelek gyakran használják a „dialógus” a felhasználó. Ha egy ablak már általunk használt - kérjük a felhasználót, hogy zárja be az ablakot igazán záráskor a program ablakát. Most vizsgáljuk meg a munkát az ilyen ablakok részletesen.

Létrehozása párbeszédpanelek MessageDlg () függvényt. Ez a funkció nem eljárás. A visszatérési érték egy gombot, amely a felhasználó kattintott. Mi jellemző 4 bemeneti paraméterek:

  • Üzenet szövege (adattípus - karakterlánc);
  • párbeszédpanelen írja (speciális típusú adatok - TMsgDlgType) - jelzi a ikonra az ablak és az ablak címét. Ez a paraméter az alábbi állandók:
    • mtInformation - információs ablak (az ikon az ablakban - az „i” betűvel);
    • mtConfirmation - doboz egy kérdés (ikon - vosprositelny jel);
    • mtWarning - egy figyelmeztető ablakot (szimbólum - felkiáltójel);
    • mtError - egy ablakot egy hibaüzenettel (ikon - kereszt vörös alapon);
    • mtCustom - ablak nélkül egy ikont, és a cím - a nevét a futtatható fájl (minden egyéb a fejlécben fel a megfelelő típusú nevét párbeszéd - Információ Warning stb)
  • Gombot. amely megjelenik az ablakban. Minden gomb megfelel egy határozott és állandó. A gombok vannak felsorolva, vesszővel elválasztva, és az egész „csomag” szegélyezik szögletes zárójelek (ami azt jelenti, a szögletes zárójelek - lásd később). Itt vannak a konstansok az összes rendelkezésre álló gombok: mbYes. mbNo. mbOK. mbCancel. mbAbort. mbRetry. mbIgnore. mbAll. mbNoToAll. mbYesToAll. mbHelp. Állandó név magáért beszél a gomb nevét.
  • A negyedik paraméter jelzi az index részt a rendszer segítségével. megfelelő a párbeszéd. Általános szabály, hogy nem használt, és mindössze 0.

Mivel a visszaadott értékek a funkció mind ugyanazt a kulcsot állandó, azzal a különbséggel, hogy ahelyett, hogy „mb”, kezdenek „mr” (összehúzódás „modális” gomb és a „modális eredmény” -kal).

Mi változik a program, - akkor is, ha az eredmény ki az információs ablakban. Figyeljük meg, milyen szép ez az ablak néz:

eljárás TForm1.Button1Click (Sender: TObject);
var A: egész;
kezdődik
A: = StrToInt (Edit1.Text);
MessageDlg ( 'négyzet számok' + IntToStr (A) + 'egyenlő' + IntToStr (térnél (A)), mtInformation, [mbOK], 0);
végén;

Megjegyzés: A szöveg húrok lehet kombinálni, csak hozzá őket - „+” jel (lásd a fenti kódrészletet.). Sami sorok íródnak egyetlen idézetek.

És végül, próbálja meg használni a párbeszéd finomítani a felhasználó több információt. Például, ha negatív számot kérünk, hogy szükséges-e tér. Kód lesz körülbelül a következő:

eljárás TForm1.Button1Click (Sender: TObject);
var A: egész;
kezdődik
A: = StrToInt (Edit1.Text);
ha A <0 then
ha MessageDlg ( 'a szám negatív. emelje meg a tér?', mtConfirmation, [mbYes, mbNo], 0) = mrYes majd
MessageDlg ( 'négyzet számok' + IntToStr (A) + 'egyenlő' + IntToStr (térnél (A)), mtInformation, [mbOK], 0);
végén;

És az eredmény a következő lesz:

A megjelenése az ablakok minden fajta:

3. párbeszédablak MessageBox ()

C Funkciók használata MessageBox (), akkor is megjelenik a párbeszéd ablakban. A megjelenés ők gyakorlatilag megkülönböztethetetlen MessageDlg windows (). de lehetséges, hogy meghatározza és ablak címét. Ahhoz, hogy létrehoz a kódsor segítségével MessageBox () függvény Mester MessageBox programot. C Ennek segítségével gyorsan hozhat létre a kívánt párbeszédablak. MessageBox () A probléma az, hogy milyen típusú a párbeszéd és a gombok meg kissé szokatlan módon.

Keresztül belépő egy párbeszédablak

Különleges ablakok nem csak a kijelző, hanem a belépéshez. Egy példa egy ilyen ablak InputBox (). Funkció vezetünk három paraméter: az ablak címét szöveg, szöveg magyarázatok, és az értéket a mezőben, amikor a kijelző a képernyőn. A megadott karakterláncot a függvény egy értéket eredményez. például:

eljárás TForm1.Button2Click (Sender: TObject);
kezdődik
ha InputBox (. „Enigma” „ül nagyapja, száz kabátok, aki viselte levetkőzni -. A könnyek istállót ki.?” „”) = »hagyma«, majd
MessageDlg ( 'Right!', MtInformation [mbOk], 0)
más
MessageDlg (Nem is sejtette. ', MtWarning [mbOk], 0)
végén;

következtetés

Megnéztük, hogy a bemeneti és kimeneti adatok, valamint találkozott párbeszédpanelek. IO technikákat használnak szinte minden alkalmazás: azok, amelyek egy ablak felület, ez történik a vizuális tárgyak, valamint a konzolos alkalmazások - parancssoros módban.

házi feladat

Írja meg a program kéri a felhasználótól a három szám - a hossza az oldalán a háromszög. Ha megnyomja a gombot, a program kell számítani a háromszög területét ezekkel oldalán, és ha egy háromszög nem létezik, kiadja a megfelelő üzenetet.

Kapcsolódó linkek




Kapcsolódó cikkek