Munka a fájlokkal a Delphi

Fájlok fontos dolog bármilyen programozási nyelv. Munka a fájlokkal a Delphi segítségével olvasni, információt tároljon, és más műveleteket fájlokat. A Delphi támogat minden fájlműveleteket - létrehozása, keresés, írni és olvasni, átnevezése mind a fájlok és könyvtárak. A Delphi, számos módja van, hogy működjön együtt a fájlokat.

A „lírai” bejegyzést kell említeni Delphi komponensek, amelyek képesek együttműködni fájlokat. Azt olvasni, és megtartják tartalmát, például egy karaktersorozatot. egy szöveges fájl formátumban. Ez a komponens ListBox. ComboBox és Memo. található, az első fülön a komponens palettán.

Minden sor ListBox és ComboBox komponensek egyik tárgya tételek [i]. és Memo - Lines [i]. ahol i - sorszám, amely számolása nullával. Hozzátéve alkatrészek végezzük sorokban módszerek hozzáadása és Betét:

Munka a fájlokkal a Delphi

kezdődik
Memo1.Lines.Add ( 'első sor');
ComboBox1.Items.Add ( 'első sor');
ComboBox1.Items.Add ( 'második string');
ListBox1.Items.Add ( 'első sor');
ListBox1.Items.Add ( 'második string');
végén;

Az Add eljárás egy új vonalat ad a végére. Insert eljárás egy további paramétert, jelezve, hogy melyik vonal a feladás után egy új sort. Hozzáférés a sorokat a következőképpen zajlik:

ComboBox1.Items [0]: = 'első sor megváltozott';
ListBox1.Items [1]: = 'második sor megváltozott';

A ComboBox komponens ezenkívül egy Text tulajdonság. ahol (mint az Edit Component) a bemeneti szöveg:

ComboBox1.Text: = 'Input text';

A jelenleg kiválasztott sor azt jelzi, ComboBox alkatrész tulajdonság ItemIndex Integer. azaz, hogy egy dedikált vonal számát. Következésképpen, így nagyon ComboBox kiválasztott komponenst vonal lehet az alábbi konstrukciót:

vagy kapcsolatban szereplő

A ComboBox1 do
S: = Elemek [ItemIndex];

Itt van, hogy nyomja meg az Enter billentyűt tárolható a komponens be az információs vonalat, és a gombbal törölje menekülési:
Jelölje ki a Forma ComboBox, és menjen az Object Inspector, az Események lapon. Kattintson duplán a felvezető onkeypress. Delphi rendszer létrehoz egy üres kezelő. Írja:

kezdődik
ha Key = # 13 majd
ComboBox1.Items.Add (ComboBox1.Text);
ha Key = # 27 majd
ComboBox1.Items.Delete (ComboBox1.Items.Count-1);
végén;

Kulcs - határozza meg ezt a kimeneti változó kódot tartalmazó, a lenyomott gomb, # 13 és # 27 - kulcskódoknak Enter és a menekülés volt. Items.Count - szám komponens által tartalmazott vonalak. Mivel a gróf vonalak megy nulla, akkor elvesz egy. Miután a következő eltávolítása a sorok száma változik, így Items.Count-1 mindig mutat az utolsó sor. Ismételt megnyomásával Escape. tudjuk eltávolítani az összes sort. csapat
ComboBox1.Items.Delete (0);
lehet elérni ugyanazt a hatást, csak az első sora törlődik. Ahhoz azonban, hogy törölje az összes egyszerre, ott van a Tiszta módszer!

És most valójában a megőrzése a fájl tartalmát. Ehhez a következő parancsot

A meghosszabbítás azonban a kínálat minden opcionális, nem kötelező. txt, és hogyan kell csinálni nélküle. De a terjeszkedés. txt megkönnyíti, hogy megnyitja a fájlt a Jegyzettömb vindovskim szabvány, ami nagyon kényelmes a színpadon az írás a programot!
Töltse le a LoadFromFile módszer:

Mi van, ha a programban nem működnek alkatrészek Combobox. ListBox, vagy Memo. és tárolja a szükséges információkat? Vegyük az egyik összetevője, és ez a láthatatlan ezen az Object Inspector beállítani a Visible tulajdonságát False. A funkcionalitás nem változik!

Az utolsó érintés - egy olyan programot létrehozni, amely megőrizte pozícióját a képernyőn a zárás és nyitás ugyanaz. Meg kell tartani a két paraméter - értékeit ingatlan képezi a bal és felső, a távolság a bal felső a képernyő szélein, ill. Ezek az értékek fejezik ki pixel és Integer. Szükséges, hogy ezeket a számokat egy string (String) alkalmazásával IntToStr operátor. Tehát fel a forma láthatatlan ListBox. kattintson egy üres tér keletkezik. svystva hogy megjelent az Object Inspector, majd kattintson az Események fülre. Kattintson a felvezető OnClose és létrehozott beszerzési write:

kezdődik
ListBox1.Items.Clear;
ListBox1.Items.Add (IntToStr (Form1.Left));
ListBox1.Items.Add (IntToStr (Form1.Top));
ListBox1.Items.SaveToFile ( 'MyFormPos.txt');
végén;

Ez a processzor fenntartja álláspontját alakzatok a képernyőn. Most írjuk a felvezető, forgalomba alakzatok egykori kezdetén helyezkednek el a program. Hozzon létre egy üres felvezető OnCreate esemény. Ez az esemény bekövetkezik idején „teremtés” formái az operációs rendszer. Ezen a ponton, és meg kell rendelni a szükséges tulajdonságokat. E-mail:

kezdődik
ha FileExists ( 'MyFormPos.txt'), akkor
kezdődik
ListBox1.Items.LoadFromFile ( 'MyFormPos.txt');
Form1.Left: = StrToInt (ListBox1.Items [0]);
Form1.Top:=StrToInt(ListBox1.Items[1]);
végén;
végén;

Az első sor egy ellenőrzést, hogy létezik a fájl, mert ha nem, akkor egy hibaüzenet jelenik meg. Azonban, miután a kérdést a prevenciós program megnyílik az a hely, ahol ez volt a tervezési fázisban, és a kívánt fájl lesz újra, amikor bezárja!
Ezután a logikai kezdet / vég zárójelben tartalmazza a kódot is, amely végrehajtásra kerül csak prinalichii MyFormPos.txt fájlt a mappában a program, mert használ egy relatív elérési utat. Megadhat egy adott helyen, például C: \ Program Files \ MyProg \ MyFormPos.txt.

Ellenőrzése fájl suschestvovovanie is elvégezhető a vezérlő kivételek. Ha a fájl nem létezik, nem lesz kivétel. Elfogó, hogy egy speciális operátor, tudjuk elkerülni a hibákat a programban.

Természetesen, a szakmai programokat megtartják pozícióját a Windows regisztrálása. De mindennek megvan a maga ideje.

Memo1.Lines.Add ( 'első sor');
ComboBox1.Items.Add ( 'első sor');
ComboBox1.Items.Add ( 'második string');
ListBox1.Items.Add ( 'első sor');
ListBox1.Items.Add ( 'második string');

eljárás TForm1.Button1Click (Sender: TObject);
kezdődik
MP1.DeviceType: = dtAutoSelect;
MP1.FileName: = 'fájlnév';
ha nem, akkor MP1.AutoOpen MP1.Open;
MP1.Play;
végén;

eljárás TForm1.Button2Click (Sender: TObject);
kezdődik
MP1.Display: = Panel1;
A OpenDialog1 do
ha Execute majd
kezdődik
MP1.FileName: = Fájlnév;
MP1.Open;
MP1.Play;
végén;
végén;

Itt hozzá kell tennünk OpenDialog, ez lehetséges, és az előző példában beszúrni. És így tovább. A méret a játék területet, vagyis a panel meg kell látni előre a fájl tulajdonságait a „Névjegy” lapon. De még mindig jobb, hogy a panel nagyobb, és állítsa be a tulajdon és BevelInner BevelOuter a bvNone, így nem volt látható. És a méretek különböző fájlokat.

Nos továbbra is lefordítani óra, perc, másodperc a

funkció TAIM (Hosszúság: Integer): String;
var chas, min, sec: egész;
funkció üzemmód (Hosszúság: Integer): String;
kezdődik
Eredmény: = IntToStr (hossza);
ha hossza
Ennyit a hosszát. A jelenlegi helyzetben visszatér az ingatlan. - helyesen pozíció! Mérjük az időzítő és a kijelző a Folyamatsáv (jobb take trackbar). Ismét TrackBar.Max ingatlan korábban meghatározott egyenlő Mediaplayer.Length.

Ott Poser görgetés. Görgetéshez először le kell állítania a lejátszót, és egy időmérő. Ezután indítsa el egy másik értékkel:

Meglepődtem, de nem trackbar imeeet egér eseményeket. És ez lehetséges lenne megállítani az esemény onMouseDown. És mégis, akkor az esemény OnEnter! De még mindig fut, akkor szükséges.

És megváltoztatni a kereteket alatt gyors egér, akkor be kell vezetni egy második időzítő fut, ha a lejátszás megállt, és megkérdezte

de valamilyen oknál fogva nem működik, egy hiba elején Alexander, hozzáadunk 01/05/12, 15:31:21
aaaaaaaa szükséges formájában kattintson duplán írni és megérteni. Alexander, hozzáadunk 01/05/12, 17:11:13
segíteni.

írta hozzá minden rendben van, akkor azt használjuk a Beszúrás parancsot.

error veszi „Debugger kivétel bejelentés Project Project1.exe emelt kivétel osztály EAccessViolation üzenettel»Hozzáférés megsértése címen 0056D0FD a modul«Project1.exe'.Read cím 0000030C.Process megállt. Használja lépés vagy a Futtatás a folytatáshoz.”

Anonymous, hozzáadott 05/01/12, 17:36:26
A hiba nincs ideje foglalkozni. Itt van, hogy:

Memo1.Lines.Insert (0 'Az első karakterlánc');
Alexander, hozzáadunk 01/05/12, 17:44:33
te elején a leckét, hogy mondjon valamit, mint ez:

ComboBox1.Items [0]: = 'első sor megváltozott';
ListBox1.Items [1]: = 'második sor megváltozott';

Azt, hogy bemásolja a programot, és helyezzen be egy bogár mászik Alexander, hozzáadunk 01/05/12, 17:54:49
és nem világos, hogy miért

amikor írok Memo1.Lines.Insert (0 „Az első karakterlánc”); vagy ott comboBox1.Items.Insert (0 'vaoloashlo')

minden rendben van, de Stith levelet "Memo2.Lines.Insert (1, 'második Throk');" nélkül "Memo1.Lines.Insert (0 'Az első karakterlánc');" majd felmászik opyadzhe pontosan ugyanazt a hibát.

Kapcsolódó cikkek