If not Button4.Enabled then begin
Button4.Enabled : = True;
Button1.Caption := ‘ &1: Disable4 ‘ ;
End
Else
Begin
Button4.Enabled := False;
Button1.Caption := ‘ & 1: Enabled ’ ;
end;
end;
По аналогичному алгоритму для кнопки 5 :
Procedure TButtonForm.Button 5.Click ( Sender: TObject );
Begin
Button2.Visible : = not Button2.Visible;
If Button2.Visible then
Button 5.Caption : = ‘& 5 : Hide 2 ’ ;
Else
Button 5.Caption : = ‘ & 5 : Show 2 ‘ ;
end;
Последних две кнопки ( 3 и 6 ) имеют неограниченный код , т.е. можно уменьшить кнопку 6 до такой степени , что она, в конце концов , исчезнет :
Procedure TButtonForm.Button3Click ( Sender : tObject );
Begin
Button6.Height : = Button6.Height + 3 ;
Button6.Width := Button6.Width +3 ;
end;
Procedure TButtonForm.Button6Click ( Sender : TObject );
Begin
Button6.Height : = Button6.Height -3 ;
Button6.Width : = Button6.Width -3 ;
end;
Пример TYPES
Напишем программу, показывающую размерность и длину в байтах различных типов данных.
· Образуем в меню FILE / NEW APPLICATION новую форму.
· В правой части формы через меню Standart организуем 11 кнопок.
* Дадим каждой из кнопок свое имя через Object Inspector / Name
Short_INT, Word,_Cardinal, Small_INT, Word_Bool, _Char, Long_INT, Boolean, _Integer, Byte_Bool, Long_Bool
В первой части формы через меню Standart организуем 2 столбца из 4-х меток каждый.
Для первого столбца через Object Inspector / Name дадим имена меткам :
TYPE :
SIZE :
MAX :
MIN :
Во втором столбце меток имена Name должны быть пустыми, т.е. свойство CAPTION должно быть пустым.
Щелкнем дважды по каждой кнопке, для организации перехода в редактор.
Для кнопок с именами Short_INT , Small_INT , _INTEGER ,_Cardinal , _Word запишем в редакторе следующий текст ( для каждой кнопки - свой тип данных ).
Например:
Procedure TForm1.Short_Int Click ( Sender : T Object ) ;
var Number:ShortInt ;
Begin
TypeLabel.Caption : = ‘ Short_ Int ‘ ;
SizeLabel. Caption : = IntToStr ( Sizeof ( Number ) );
MaxLabel. Caption : = IntToStr ( High ( Number ) );
MinLabel. Caption : = IntToStr ( Low ( Number ) );
end ;
Для других кнопок структура процедур не изменяется, за исключением типа данных и две последних строки запишутся следующим образом :
MaxLabel.Caption : = InttoStr (ORD ( # 0 ) ) ;
MinLabel.Caption : = InttoStr (ORD ( # 0 ) ) ;
Создание списка ListBox
Предварительно необходимо добавить на форму компонент ListBox.
2 способа создания списка:
1. Дважды кликнуть по форме и в процедуре настройки формы procedure FormCreate(Sender: TObject); ввести следующие команды:
procedure TForm1.FormCreate(Sender: TObject);
Begin
ListBox1.Items.Add ('Apples');
ListBox1.Items.Add ('Apes');
ListBox1.Items.Add ('Anchor');
ListBox1.Items.Add ('Antenna');
ListBox1.Items.Add ('Angle');
ListBox1.Items.Add ('Ant');
ListBox1.Items.Add ('Bananas');
ListBox1.Items.Add ('Basket');
ListBox1.Items.Add ('Bandanna');
ListBox1.Items.Add ('Broccoli');
ListBox1.Items.Add ('Brook');
ListBox1.Items.Add ('Cat');
ListBox1.Items.Add ('Catch');
ListBox1.Items.Add ('Cape');
end;
2. На форме выделить ListBox и в Object Inspector на вкладке Propierties справа от свойства Items дважды кликнуть. При этом происходит переход в редактор, где каждая строка будет являться одним элементом списка.
Пример работы со списком
1. на форме создать:
· 3 êíîïêè Button
· 1 ListBox
· 1 Edit
· 1 Label
2. Создать для ListBox список (см. выше).
3. Для Edit1 в Object Inspector свойство Text сделать пустым
4. Для Label1 в Object Inspector в свойстве Captiоn сделать надпись”Выбранный элемент списка”.
5. Для Button1 в Object Inspector в свойстве Captiоn сделать надпись на ней ”Выбрать элемент списка”.
6. Для Button2 в Object Inspector в свойстве Captiоn сделать надпись на ней ”Всего элементов списка”.
7. Для Button3 в Object Inspector в свойстве Captiоn сделать надпись на ней ”Выход”.
8. После инициализации списка в ListBox1 можно выбрать один любой его элемент и нажав Button1 вывести егоназвание :
procedure Tform1.Button1Click(Sender: Tobject);
Begin
ShowMessage (ListBox1.Items[ListBox1.ItemIndex]);
end;
Свойство ItemIndexâîçâðàùàåò ïîçèöèþ òåêóùåãî âûáðàííîãî ýëåìåíòà â ñïèñêå, ïðè÷åì íîìåðàöèÿ íà÷èíàåòñÿ ñ 0. Ïîçèöèÿ, êîòîðóþ âîçâðàùàåò ñâîéñòâî ItemIndex,ìîæíî ðàññìàòðèâàòü êàê èíäåêñ â ñâîéñòâå Item для извлечения выбранного элемента списка через ShowMessage.
Ïðèìå÷àíèå: Åñëè â ñïèñêå íå âûáðàòü íè îäèí ýëåìåíò, òî áóäåò îøèáêà, à ñëåäîâàòåëüíî, ñáîé ïðîãðàììû. ×òîáû ýòîãî èçáåæàòü ìîæíî ñäåëàòü òàê:
procedure Tform1.Button1Click(Sender: Tobject);
Begin
Try
ShowMessage (ListBox1.Items[ListBox1.ItemIndex]);
Except
On EstringListError do
MessageDlg(‘No item selected.’, mtInformation, [mbOk], 0);
end;
end;
9. В элементе Edit1 можно ввести название из списка и курсор покажет этот элемент в списке, аналогично свойству Find любого редактора. Для этого служит:
procedure Tform1.Edit1Change(Sender: Tobject);
{ Search through list box and return closest match to keys typed }
Begin
SearchListItem (Edit1, ListBox1);
end;
Ïðîöåäóðà SearchListItemîñóùåñòâëÿåò ïîèñê â ñïèñêå è ôîçâðàùàåò áëèæàéøåå ñîîòâåòñòâèå ñèìîëàì, ââåäåííûì â ýëåìåíò óïðàâëåíèÿ Edit1. Для этого используется специальный модульLMUtil, который поставляется в дополнительной библиотеке и находится у автора.
10. Кнопка Button2 выводит количество элементов в списке:
procedure Tform1.Button2Click(Sender: Tobject);
Var
S: string;
Begin
S := ‘Total list elements: ‘;
MessageDlg(S + IntToStr(ListBox1.Items.Count), mtInformation,
[mbOk], 0);
end;
11. Кнопка Button3 èñïîëüçóåòñÿ äëÿ âûõîäà èç ïðîãðàììû:
procedure Tform1.Button3Click(Sender: Tobject);
Begin
close;
end;
|
Примечание1: в Object Inspector в свойстве Fonts можно менять шрифты надписей почти для всех элементов, а в свойстве Color менять цвета.
Примечание2:
Функция MessageDlg служит для показа небольшого диалогового окна с сообщением имеет 4 параметра:
1) строка – само сообщение
2) тип окна сообщения
· mtWarning
· mtError
· mtInformation
· mtConfirmation
3) множество значений, указывающее на необходимые кнопки:
· mbYES
· mbNO
· mbOK
· mbCANCEL
· mbHELP
Здесь можно задать не одну, а несколько кнопок.
Для каждого типа автоматически используется свой заголовок и рядом с текстом отображается своя пиктограмма.
4) контекст справки, т.е. число, указывающее какая страница справочной системы должна вызываться, когда пользователь нажмет F1. ( 0 – HELP не включается ).
MessageDlg возвращает (т.е. результатом работы этой функции является) идентификатор кнопки, по которой щелкнул пользователь, чтобы закрыть окно сообщения.