logo search
Posobie_Ravino_Atamanov

2.5.5.11. Дополнительные элементы программы

Дополнительные элементы программы не оказывают принципиального влияния на работу программы в целом, но позволяют повысить комфортность работы с программой. Ниже приведено несколько подобных примеров.

Пример 1. Подтверждающий запрос при выходе из программы (рисунок 15).

Рисунок 15 – Запрос при выходе из программы

procedure TFormHaupt.FormCloseQuery(Sender: TObject;

var CanClose: Boolean);

begin

if Application.MessageBox(

'Действительно завершить работу?',

'Подтверждение',MB_YESNO)=IDYES

then CanClose:=True;

else CanClose:=False;

end;

Пример 2. Разделитель между целой частью и дробной

DecimalSeparator:='.';

Пример 3. Создание «бегущей» строки. Для этого понадобятся компоненты Label и Timer . Пример программы.

procedure TForm1.Timer1Timer(Sender: TObject); Const

LengthGoString = 10;

GoString = 'В конце стpоку желательно повтоpить,'+

' чтоб получить эффект кольцевого движения! В конце ст';

Const

i: Integer = 1;

begin

Label1.Caption:=Copy(GoString,i,LengthGoString);

Inc(i);

If Length(GoString)-LengthGoString < i then i:=1;

end;

Пример 3. Отключение (включение) системного меню формы и кнопок Minimize, Maximize, и Close во время выполнения программы.

procedure TForm1.Button1Click(Sender: TObject);

begin

{Выключение}

Form1.BorderIcons := Form1.BorderIcons –

[biSystemMenu, biMinimize, biMaximize];

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

{Включение}

Form1.BorderIcons := Form1.BorderIcons +

[biSystemMenu, biMinimize, biMaximize];

end;

Пример 4. Автоматическое изменение ширины колонок, в StringGrid чтобы вместить самую длинную строчку в колонке.

procedure AutoSizeGridColumn(Grid : TStringGrid; column : integer);

var

i : integer;

temp : integer;

max : integer;

begin

max := 0;

for i := 0 to (Grid.RowCount - 1) do

begin

                temp := Grid.Canvas.TextWidth(grid.cells[column, i]);

                if temp > max then max := temp;

        end;

        Grid.ColWidths[column] := Max + Grid.GridLineWidth + 3;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

AutoSizeGridColumn(StringGrid1, 1);

{Вызов процедуры автоматического изменения ширины колонок}

end;

Студент может самостоятельно использовать или добавлять, понравившиеся ему дополнительные элементы программы.