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;

If not Button4.Enabled then begin - student2.ru

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;

 
 
If not Button4.Enabled then begin - student2.ru

Примечание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 возвращает (т.е. результатом работы этой функции является) идентификатор кнопки, по которой щелкнул пользователь, чтобы закрыть окно сообщения.

Наши рекомендации