С кнопкой мы уже разобрались во втором уроке.
Этот компонент представляет из себя текстовое поле ввода. У него есть такие же свойства как и у TButton.
Основные cвойсва:
Text — это текст который введен;
ReadOnly — разрешенн ли ввод;
MaxLength — максимальная длинна текста. Измеряется в колличестве символов;
HideSelection — будет ли сниматься выделение с текста при потере компонентом фокуса;
PasswordChar — символ отображаемый вполе вместо всех других символов - используется для скрытия пароля;
Основные события:
onChange — происходит при любом изменении отображаемого текста;
onClick — происходит при клике по компоненту;
Все остальные свойства аналогичны свойствам формы. Свойства формы рассмотренны в третьем уроке
Научимся программно извлекать введенные данные, а также записывать в поле. Для этого выложиv на форму 2 Button и 1 Edit.
Создаем событие по клику на первую кнопку и пишем следующий код:
ShowMessage('В Edit1 написан текст: '+Edit1.Text);
Текст "В Edit1 написан текст: " будет выводиться всегда во всех сообщениях. К нему мы прибавляем Edit1.Text, т.е. строчку содержащую текст введенный в Edit.
А по нажатию на вторую кнопку будем в поле Edit1 присваивать что-нибудь свое.
Edit1.Text:='Текст изменился';
В итоге у Вас должно получиться 2 процедуры:
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('В Edit1 написан текст: '+Edit1.Text); end; procedure TForm1.Button2Click(Sender: TObject); begin Edit1.Text:='Текст изменился'; end;
Запускаем программу и пробуем.
Основные свойства:
Lines — содержит все строки введенные в компонент;
ReadOnly — разрешенн ли ввод;
MaxLength — максимальная длинна текста. Измеряется в колличестве символов;
HideSelection — будет ли сниматься выделение с текста при потере компонентом фокуса;
ScrollBars — какие полосы прокрутки будут отображаться;
WantReturns — разрешено ли использовать клавишу Enter;
WantTabs — разрешено ли использовать клавишу Tab;
WordWrap — будет ли переноситься текст на новую строчку если не входит;
События аналогичны компоненту TEdit.
Теперь научимся работать с TMemo. Создайте новый проект (File –> New –> Application). Выложите на форму 1 TMemo и 1 TButton. Выделите Memo1 и найдите свойство Lines в инспекторе объектов. Щелкните по этому свойству, а затем по кнопке . Появится окно с текстом "Memo1" — это текст который будет в Memo при запуске программы. Его можно убрать, что и нужно сделать. Теперь создаем событие по нажатию на кнопку:
procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.Add('Была нажата кнопка'); end;
Теперь после нажатия на кнопку в Memo1 добавится новая строчка.
Выложите еще одну кнопку и в событии onClick пишем:
Memo1.Lines.Delete(0);
Теперь после нажатия на вторую кнопку удалится самая первая строчка. "0" и означает что будет удалена нулевая строчка (нумерование ведется начиная с 0)
А если нам нужно взять i-тую строчку и вывести ее на экран мы пишем следующий код:
ShowMessage(Memo1.Lines[0]);
В данном случае мы извлекаем нулевую строчку.
Колличество написанных строк хранится тут:
Memo1.Lines.Count;
Обратите внимание, что тут нумерация идет с 1. А следовательно если будем прогонять все строки в цикле то будем писать так:
For i:=0 to Memo1.Lines.Count-1 do begin {Выполняем то что нужно} end;
Чтобы сохранить весь текст в файл просто пишем:
Memo1.Lines.SaveToFile('C:\Test.txt');
А чтобы загрузить из файла пишем:
Memo1.Lines.LoadFromFile('C:\Test.txt');
Чтобы очистить Memo:
Memo1.Clear;
Основные cвойсва:
Items — коллекция строк;
MultiSelect — разрешено ли выделение нескольких строк;
Columns — колличество колонок;
Color — цвет фона;
Sorted — сортировка по алфавиту;
Остальные свойства были объяснены у других компонентов.
Добавление строчки делается так:
ListBox1.Items.Add('Текст');
А теперь разберемся как же добавить текст из Edit. Выложим на форму TListBox, TEdit и TButton. Создайте событие у кнопки onCreate:
ListBox1.Items.Add(Edit1.Text);
А если мы будем жать кнопку ничего не вводив в Edit, то будут добавляться пустые строки. Для того чтобы такого небыло просто перед добавлением сравним: пустое ли поле Edit. Если не пустое добавим. Сейчас разберем как это можно реализовать. Изменим ту же самую процедуру Button1Click. Вот как все должно выглядеть:
procedure TForm1.Button1Click(Sender: TObject); begin if Edit1.Text<>'' then ListBox1.Items.Add(Edit1.Text); end;
То же самое действие можно сделать немного по другому:
procedure TForm1.Button1Click(Sender: TObject); begin if Edit1.Text<>'' then Exit; ListBox1.Items.Add(Edit1.Text); end;
Exit означает завершение процедуры и прекращение ее выполнения дальше. Сначала проверяем написано ли что-нибудь в Edit1 и если там ничего не написанно то завершаем выполнение процедуры, тем самым строчка ListBox1.Items.Add(Edit1.Text); не будет выполненна, а значит и ничего не добавится.
Для того чтобы узнать номер выделенной строчки пишем:
ShowMessage(IntToStr(ListBox1.ItemIndex));
Если ничего не выделенно то ItemIndex=-1. Так как в процедуре ShowMessage входной параметр строкового типа, а ItemIndex целочисленного, то необходимо перевести из целочисленного типа в строковый. Проще говоря нужно перевести из Integer в String.
IntToStr — это и есть функция перевода из целочисленного типа в строковый, а StrToInt — обратно.
Можно не только получить выделенную строку, но и программно выделить нужную строку. Допустим нужно выделить 2 стрку:
ListBox1.ItemIndex:=1;
Так как нумерация ведется начиная с 0 то присваиваем не 2 а 1.
Чтобы удалить какую-либо строку:
ListBox1.Items.Delete(0);
В данном случае удаляем строку под номером 0 - самую первую в списке.
А как удалить выделенную строку? Очень просто:
ListBox1.Items.Delete(ListBox1.ItemIndex);
Чтобы очистить ListBox не совсем обязательно удалять каждую строчку можно просто вызвать функцию:
ListBox1.Clear;
Урок 5 - Изучаем компоненты TLabel, TPanel, TMainMenu
Просмотров: 46417
Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.
Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.
Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.