KNOW INTUIT, Лекция, Колекции (масиви) от низове и компоненти за тях
Целта на лекцията
Изследване на типа TStrings и компонентите TMemo, TListBox и TComboBox.
TMemo компонент
След това в разделаСтандартни на палитрата с компонентинамерете компонента TMemo:
Инсталирайте го във формуляра. Сега нека разгледаме правилно свойствата на компонента TMemo - няма да разглеждаме свойствата, които вече са известни от други компоненти, ще се съсредоточим само върху нови и специфични за TMemo (компонентът трябва да бъде избран).
BorderStyle | - Активира / деактивира рамката около компонента и може да бъде:
|
CharCase | - задава регистър на символите, показвани в компонента. Може би:
ВObject Inspectorлипсва друго важно свойство: Text. Това свойство е от тип String и съдържа целия текст, всички редове наведнъж, включително нови редове. И така, нека настроим компонента TMemo. Ще оставим името по подразбиране: Memo1 . Задайте свойствата Left и Top на 5. Задайте свойството Height на 400 и Width на 740. Компонентът заема почти цялата форма, оставяйки някои малки рамки и място за бутоните отдолу. Сега трябва да обвържем компонента със страните, така че автоматично да преоразмерява, когато потребителят преоразмерява прозореца. За да направите това, разгънете свойството Anchors и задайте всичките му четири подсвойства на True. След това по някакъв начин трябва да премахнем текста „Memo1“ от компонента, който беше автоматично добавен към полето. За товаизберете свойството Lines и щракнете върху неговия бутон "…". Това ще отвори диалогов прозорец за въвеждане на низ. Изтрийте целия текст там и щракнете върху "OK" - текстът в компонента е изчезнал. Сега задайте вертикална лента за превъртане ( ScrollBars = ssVertical ) и се уверете, че WordWrap е настроен на True - компонентът автоматично ще обвие текста в нови редове. Тук всъщност са всички настройки. Сега трябва да получим три неща от компонента: така че да записва текста във файл, така че да чете текста от файла и така че да изчиства целия текст. За да направим това, ще трябва да използваме някои методи на свойството Lines на компонента. Освен това имаме нужда от три прости бутона, за които има място отдолу. Нека наречем първия бутон bSave (в свойството Name), втория bRead и третия bClear. Малкото b означава бутон ( бутон ), въпреки че можете да измислите свои собствени правила за именуване на компоненти. Също така ще трябва да променим свойството Caption на тези бутони: в първия бутон напишете Save, във втория - Read, а в третия - Clear. За да направите текста по-просторен върху бутоните, задайте свойството Width (ширина) на бутоните на 90. Сега ето още нещо: по подразбиране всички компоненти са "прилепени" към горната и лявата граница на формуляра. Ако потребителят промени размера на прозореца, тогава бутоните ще бъдат на същото разстояние от левия и горния ръб, както са били при проектирането. И тъй като нашата бележка е прикрепена от всички страни и ще се увеличи, тя ще покрие бутоните. За да избегнете това, изберете всички бутони, отворете тяхното свойство Anchors, задайте akTop на False и обратно, задайте akBottom на True. Сега нашите бутони са закотвени отляво и отдолу и винаги ще бъдат на същото разстояние от бележката. Трябва да получите този формуляр: ![]() Остава да програмираме OnClick събитията за тези бутони. Генерирайте ги, като щракнете два пъти върху бутоните. Ето кода за тези събития: Както можете да видите, събитията са много прости, две от тях имат само по един ред. Да, в линията получаваме достъп до компонента Memo1, неговото свойство Lines и извикваме метода SaveToFile() на това свойство. Нека да разгледаме методите на свойството Lines на компонента TMemo. LoadFromFile() - този метод, напротив, чете текста от посочения файл в . Въпреки това, файлът трябва действително да съществува, в противен случай програмата ще изведе грешка. Ето защо първо проверяваме за съществуването на файла: Ако посоченият файл съществува, функцията FileExists() ще върне True. Ако файлът не съществува по някаква причина, тогава няма да има четене. Вместо това ще получите съобщение, че файлът не съществува и процедурата ще излезе. Изчистване – изчиства текста в бележката. В примера осъществихме достъп до свойството Lines, но можем да осъществим достъп и до самия компонент, тъй като той също има метод Clear. Вместо можете просто да пишете Резултатът ще бъде същият. Запазете проекта, стартирайте го и го изпробвайте. Не забравяйте да експериментирате с преоразмеряването на прозореца, за да видите как ще изглеждат компонентите, "прилепени" към страните на формуляра. В допълнение към горните инструменти, TMemo има някои други полезни методи. Сега говорим за методите на компонента TMemo, а не за неговото свойство Lines, имайте това предвид! |
Копиране в клипборда | - копира избрания в компонента текст вКлипборд. Пример: |
CutToClipboard | - изрязва избрания текст и го поставя вКлипборда. Пример: |
PasteFromClipboard | - поставя текста отКлипбордав компонента на позицията, където се намира курсора. Пример: |
Избери всички | - изберете целия текст. Пример: |
Отмяна | - отмяна на последните промени в текста. Пример: Отделно си струва да споменем събитията на компонента TMemo. Изберете го и в инспектора на обекти отидете на раздела Събития. Ние се интересуваме само от основните събития, които могат да ни бъдат полезни в нашата работа. Няма да давам примери, събитията се генерират по същия начин като OnClick, който сме използвали многократно. |
OnChange | - събитието възниква при промяна на текста в компонента. Например, потребителят е въвел или обратно, изтрил е знак, заредил е текст от файл или по друг начин е променил съдържанието на Memo по някакъв начин. |
onclick | - събитието възниква, когато потребителят щракне върху компонента с мишката. |
OnDblClick | - събитието възниква, когато потребителят щракне два пъти с мишката върху компонента. |
OnEnter | - събитието възниква, когато компонентът стане активен. Или, както се казва, получава фокус на входа. |
на излизане | - събитието възниква, когато компонентът загуби входен фокус (друг компонент стане активен). |
OnKeyDown | - събитието възниква, когато потребителят натисне, но все още не е пуснал клавиш на клавиатурата. Манипулаторът обикновено се използва за разпознаване на натиснатия клавиш. |
OnKeyPress | - събитието се задейства, когато потребителят натисне и пусне клавиш на клавиатурата. Манипулаторът обикновено се използва за разпознаване на натиснатия клавиш. Ако потребителят е въвел невалиден знак, той може да бъде забранен или заменен с друг знак. |
OnKeyUp | - събитието възниква, когато потребителят пусне клавиш от клавиатурата. Манипулаторът обикновено се използва за разпознаване на натиснатия клавиш. |
OnUTF8KeyPress | - същото като OnKeyPress, но не за ANSI, а за UTF8 знаци. Когато работите с български символи, трябва да използвате това събитие. |
Запазете проекта, компилирайте и го стартирайте. Опитайте да редактирате, да запазите текст във файл, да го прочетете от файл.