ПредишенСледващото

Работа с файлове важно нещо, на всеки език за програмиране. Работа с файлове в Delphi позволява да четете, информация за магазина, както и извършване на други действия с файлове. В Delphi поддържа всички файлови операции - да създават, за търсене, да четат и пишат, преименуване на файлове, така и на директории. В Делфи, има няколко начина за работа с файлове.

За "лирично" влизането трябва да спомена Delphi компоненти, които са в състояние да работи с файлове. Те четат и да запази тяхното съдържание, като например String. в текстов формат на файла. Този компонент ListBox. ComboBox и Memo. Намира се на първия раздел на Компонент палитра.

Всеки ред ListBox и ComboBox компоненти е обект на артикули, [I]. и Допълнителни - Линии [I]. където I - номер на ред, който се брои от нула. Добавянето на компоненти се извършва в редове методи Добавете и Insert:

Работа с файлове в Делфи

започвам
Memo1.Lines.Add ( "първи ред");
ComboBox1.Items.Add ( "първи ред");
ComboBox1.Items.Add ( "вторият низ ');
ListBox1.Items.Add ( "първи ред");
ListBox1.Items.Add ( "вторият низ ');
приключи;

Методът на Add добавя нова линия до края. Поставете метод има допълнителен параметър, показващ кой ред след публикуване на нов ред. Достъп до линии се извършва, както следва:

ComboBox1.Items [0]: = "първа линия променя;
ListBox1.Items [1]: = "втора линия променени;

В ComboBox компонент допълнително има Текст собственост. където (както в Edit компонент) е входния текст:

ComboBox1.Text: = "Въведеният текст";

В момента избран ред показва ComboBox компонент имот тип ItemIndex число. това означава, че е специален брой на линия. Следователно, за да се получи много ComboBox компонент, избран линия може да бъде следната конструкция:

или, по-оператор връзка

С ComboBox1 правя
S: = артикули [ItemIndex];

Ето как, като натиснете бутона за въвеждане може да се съхранява в компонента въведени в информационната линия и да изтриете, като натиснете Escape:
Маркирайте върху Форма ComboBox и отидете на инспектор на обекта, в раздела Събития. Кликнете два пъти върху OnKeyPress на манипулатор. Delphi система ще създаде празен манипулатор. Напиши:

започвам
ако Key = # 13 тогава
ComboBox1.Items.Add (ComboBox1.Text);
ако Key = # 27 тогава
ComboBox1.Items.Delete (ComboBox1.Items.Count-1);
приключи;

Key - определени в този изход променлива, съдържаща кода на натискане на бутона, # 13 и # 27 - ключови кодове Въведете и да избяга, съответно. Items.Count - номер, съдържаща се в редовете на компонента. Тъй като броят на линиите отива от нула, ние се изважда един. След следващото отстраняване на броя на редовете варира, като по този начин, Items.Count-1 винаги сочи към последния ред. Многократното натискане Escape. можем да премахнем всички редове. екип
ComboBox1.Items.Delete (0);
можете да постигнете същия ефект, само на първия ред ще бъдат изтрити. Въпреки това, за да изтриете всички наведнъж, там е ясен метод!

И сега всъщност запазване на съдържанието на даден файл. За да направите това, изпълнете командата

Въпреки това, разширяването може да предостави всякаква по избор, не е задължително. TXT, и как да се направи без него. Но разширяването. TXT ще направи по-лесно за отваряне на файла в Notepad vindovskim стандарт, което е много удобно на сцената на писане на програмата!
За да изтеглите е метод LoadFromFile:

Какво става, ако в програмата не работи с компоненти ComboBox. ListBox, или бележка. и съхраняване на информацията, която ви трябва? Вземете един от компонентите и да я направи невидими за това в инспектора на обекта, за да зададете Видим собственост на False. Нейната функционалност няма да се промени!

Крайният докосване - да се създаде програма, която запазва позицията си на екрана по време на затваряне и отваряне на едни и същи. Ние трябва да се запазят двата параметъра - стойностите на имоти образува левицата и Top, разстоянието от левия и най-краищата на екрана, съответно. Тези стойности са изразени в пиксели и имат тип число. Необходимо е да се преведат тези номера в низ (тип String), използвайки IntToStr оператор. Така че, се облича с форма на невидим ListBox. кликнете върху празно място форми. svystva да го появи в инспектора на обекта, и след това върху раздела Събития. Кликнете върху манипулатор OnClose и установени пишат поръчки:

започвам
ListBox1.Items.Clear;
ListBox1.Items.Add (IntToStr (Form1.Left));
ListBox1.Items.Add (IntToStr (Form1.Top));
ListBox1.Items.SaveToFile ( "MyFormPos.txt ');
приключи;

Този процесор поддържа форма позиция на екрана. Сега пиша на водача, пускане форми на бивш място в началото на програмата. Създаване на празен манипулатор OnCreate събитие. Това събитие се случва по време на "Създаване" форми на операционната система. В този момент, и е необходимо да се възложи необходимите качества. Е-мейл:

започвам
ако FileExists ( "MyFormPos.txt") след
започвам
ListBox1.Items.LoadFromFile ( "MyFormPos.txt ');
Form1.Left: = StrToInt (ListBox1.Items [0]);
Form1.Top:=StrToInt(ListBox1.Items[1]);
приключи;
приключи;

Първият ред е проверка на наличието на файла, защото ако не е, ще възникне грешка. Въпреки това, след издаването на програмата за превенция ще се отвори в мястото, където тя е в етап на проектиране и желания файл ще бъдат пресъздадени, когато затворите!
След това, логичното се започне / крайните скоби съдържа в самия код, който ще бъде изпълнен само prinalichii MyFormPos.txt файл в папката с програмата, защото използва относителен път. Можете да зададете на определено място, например, C: \ Program Files \ MyProg \ MyFormPos.txt.

Проверка за файл suschestvovovanie може да се извърши с помощта на контролните изключения. Ако файлът не съществува, няма да има изключение. прехващане със специален оператор, ние можем да се избегнат грешките в програмата.

Разбира се, професионални програми запазват позицията си в Регистъра на Windows. Но всичко си има време.

Memo1.Lines.Add ( "първи ред");
ComboBox1.Items.Add ( "първи ред");
ComboBox1.Items.Add ( "вторият низ ');
ListBox1.Items.Add ( "първи ред");
ListBox1.Items.Add ( "вторият низ ');

процедура TForm1.Button1Click (Sender: TObject);
започвам
MP1.DeviceType: = dtAutoSelect;
MP1.FileName: = "име";
ако не MP1.AutoOpen тогава MP1.Open;
MP1.Play;
приключи;

процедура TForm1.Button2Click (Sender: TObject);
започвам
MP1.Display: = Panel1;
с OpenDialog1 правя
ако Execute след това
започвам
MP1.FileName: = FileName;
MP1.Open;
MP1.Play;
приключи;
приключи;

Тук трябва да добавим OpenDialog, че е възможно и в предишния пример, за да го поставите. И още. Размерът на площадката за игра, която е на панела, което трябва да се види по-рано в свойствата на файла върху раздела "Информация". Но това е по-добре да направите панела повече, и настроите своята собственост и BevelInner BevelOuter в bvNone, така че не се виждаше. Както и за размерите на различни файлове.

Ами да продължи да се превърнат в часове, минути и секунди, като се използва

функция Таим (Дължина: цяло число): String;
VAR Час, мин, сек: цяло число;
режим функция (Дължина: цяло число): String;
започвам
Резултати: = IntToStr (дължина);
ако Дължина
Толкова за дължината. А сегашната позиция връща имота. - правилно, позиция! Ние измерваме на таймера и дисплея в ProgressBar (по-добре да TrackBar). Отново TrackBar.Max имот предварително настроен равен Mediaplayer.Length.

Има позьор превърта. За да превъртате, първо трябва да се спре на играча, и таймер. След това се започва с различна стойност:

Бях изненадан, но не TrackBar imeeet събития на мишката. И това ще бъде възможно да се спре на събитието OnMouseDown. И все пак, можете да използвате OnEnter на събитието! Но все още се управлява след това е необходимо.

И да се промени по време на рамките бърза мишка, е необходимо да се въведе втори таймер за изпълнение, когато възпроизвеждането е спряло, и помоли

но по някаква причина не работи, грешка в началото на Александър, добави 01.05.12, 15:31:21
aaaaaaaa, е необходимо във формата на два пъти върху и пишат и разбират. Александър, добави 05.01.12, 17:11:13
помогне.

написана от добавите всичко е наред, тогава се използва командата Insert.

грешка отнема "Debugger уведомление изключение на проекта Project1.exe вдигна изключение клас EAccessViolation с" нарушаване на достъпа на адрес 0056D0FD в модул "съобщение Project1.exe'.Read на адрес 0000030C.Process спря. Използвайте Стъпка или Run да продължи."

Anonymous, добавя 05/01/12, 17:36:26
Грешките, които нямат време да се справят. Ето как можете да:

Memo1.Lines.Insert (0 'Първият низ');
Александър, добави 05.01.12, 17:44:33
направихте в началото на урока, който каже нещо подобно:

ComboBox1.Items [0]: = "първа линия променя;
ListBox1.Items [1]: = "втора линия променени;

Аз като се копира в програмата и поставете бъг изкачва Александър, добави 01.05.12, 17:54:49
и не е ясно защо

когато пиша Memo1.Lines.Insert (0 'Първият низ'); или има comboBox1.Items.Insert (0 'vaoloashlo)

всичко е наред, но Stith напишете "Memo2.Lines.Insert (1," втората Throk '); " без "Memo1.Lines.Insert (0 'Първият низ');" след това се изкачва opyadzhe точно същия грешка.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!