Текстов редактор Цел За изучаване на компонентите Panel, Memo, OpenDialog, SaveDialog, MainMenu,

Кратка теоретична информация.

В компонента Memo форматът (шрифт, неговите атрибути, подравняване) е еднакъв за целия текст и се определя от свойството Font. Ако запишете текст, въведен или редактиран от потребителя във файл, ще бъде създаден текстов файл, съдържащ само знаци и без форматиране. Когато файлът впоследствие бъде прочетен в Memo, форматът ще се определя от текущото състояние на свойството Font на Memo, а не от формата, в който текстът е бил въведен преди това.

Свойствата Alignment и WordWrap определят подравняването на текста и позволяват обвиване на дълги редове. Задаването на свойството ReadOnly на true прави текста само за четене.

Основното свойство на Memo е Lines, което съдържа текста на прозореца като списък от редове и е от тип TStrings. Първоначалната текстова стойност може да бъде зададена по време на проектиране, като щракнете върху бутона с многоточие до свойството Lines в прозореца на инспектора на обекти.

По време на изпълнение можете да въведете текст в прозореца за редактиране, като използвате методите на свойството Lines от типа TStrings. Можете да получите достъп до един ред текст, като използвате свойството Strings[Index: Integer]. Индексите, както навсякъде другаде в Delphi, започват от 0. Така че Memo1.Lines.Strings[0] е текстът на първия ред. Свойството Count само за четене указва броя на редовете в текста. За да изчистите текста в прозорец, изпълнете процедурата Clear. Този метод се отнася до самия прозорец, а не до неговото свойство Lines.

Можете да използвате методите Add или Append на свойството Lines, за да вмъкнете нов ред в края на текста в полето за редактиране. Методът LoadFromFile се използва за зареждане на текст от файл. Запазването на текст във файл се извършва чрез метода SaveToFile.

Delphi има два компонента на менюто: MainMenu, главното меню иPopupMenu - изскачащо меню. И двата компонента се намират на страницата Standard. Тези компоненти имат много общи неща. Това са невизуални компоненти, т.е. разположението му върху формуляра по време на процеса на проектиране няма значение за потребителя - той все още ще вижда не самия компонент, а само генерираното от него меню.

Основното свойство на компонента е Items. Попълва се с помощта на Menu Builder, извикан чрез двойно щракване върху компонента или чрез натискане на бутона с многоточие до свойството Items в прозореца на Object Inspector.

Контекстното меню (PopUpMenu) е свързано със специфични компоненти. Изскача, ако потребителят щракне с десния бутон, докато този компонент е на фокус. Компонентите на прозорци: панели, прозорци за редактиране, както и етикети и т.н. имат свойството PopupMenu, което е празно по подразбиране, но където можете да поставите името на компонента PopupMenu, с който този компонент ще бъде свързан.

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

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

Свойството DefaultExt дефинира стойността на файловото разширение по подразбиране. Ако това свойство не е зададено, потребителяттрябва да посочи в диалоговия прозорец пълното име на файла с разширение . Ако зададете стойността DefaultExt, тогава потребителят може да напише име без разширение в диалоговия прозорец. В този случай даденото разширение ще бъде прието. Свойството Title ви позволява да зададете заглавието на диалоговия прозорец. Свойството Options определя условията за избор на файл.

SpeedButtons имат способността да показват икони и могат да се използват като нормални контролни бутони или като фиксиращи бутони. Изображението на бутона се задава от свойството Glyph.

Характеристика на бутоните SpeedButton са свойствата GroupIndex (индекс на група), AllowAllUp (разрешаване на натиснато състояние на всички бутони в групата) и Down (първоначалното състояние е натиснато). Ако GroupIndex = 0, тогава бутонът се държи по същия начин като Button и BitBtn. Когато потребителят натисне бутона, той потъва, а когато се пусне, се връща в нормалното си състояние. В този случай свойствата AllowAllUp и Down не влияят на поведението на бутона.

Ако GroupIndex > 0 и AllowAllUp = true, тогава бутонът потъва, когато потребителят щракне върху него и остава натиснат. Когато потребителят щракне отново върху бутона, той се освобождава и се връща в нормално състояние (за да бъде освободен бутонът е необходимо да зададете AllowAllUp = true). Ако свойството Down е зададено на true по време на проектиране, първоначалното състояние на бутона е надолу.

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

Състоянието на бутона по време на изпълнение може да се определи отстойност на свойството Down: ако стойността е true, тогава бутонът се натиска. По време на събитието OnClick стойността на Down вече е равна на състоянието, което бутонът ще приеме в резултат на щракване върху него.

1. Поставете компонента Panel върху формуляра, задайте свойството Align на alTop. Премахване на низ от свойството Caption.

2. Поставете четири компонента на бутона в панела и задайте тяхното свойство Caption съответно на &Open, &Save, Save &As..., E&exit. Задайте свойството Font за лентата с бутони на "удебелено"

3. Променете заглавието на формуляра (свойство Caption) - например My Editor

4. Поставете компонента Memo във формуляра и задайте свойствата му, както следва:

Align - alClient, Scroll bar - ssBoth, Lines (премахнете текста от свойството, като щракнете върху свойството Lines и след това върху бутона с три точки).

5. Поставете компонента OpenDialog във формуляра, който се намира на страницата Dialog и задайте следните стойности на свойствата му: