Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

нить необходимые вычисления, согласно алгоритму метода наименьших квад-

ратов. Пусть это действие будет называться "Вычисления". Затем, необходимо дать пользователю возможность просмотреть график, построенный по задан-

ным экспериментальным точкам. Назовем это действие "Построение графика по заданным экспериментальным точкам". И, наконец, необходимо построить совмещенный график. График по экспериментальным точкам и график подоб-

ранной кривой для того, чтобы пользователь мог визуально оценить точность полученных результатов. Присвоим этому действию название "Построение со-

вмещенного графика". Предусмотрим еще одно стандартное действие – выход из программы. После того, как список действий составлен, уже более или менее ясно, как будет выглядеть главное меню нашей программы. Отмечаем для себя,

какие пункты меню следует продублировать в инструментальной панели. Так-

же обязательно отметьте, какие пункты меню и кнопки инструментальной па-

нели должны быть вначале доступны, а какие нет. И когда следует недоступные пункты и кнопки сделать доступными.

Конечно, при разработке больших и сложных программ невозможно все заранее предусмотреть и учесть. По мере продвижения работы над программой будут добавляться новые действия и, быть может, удаляться некоторые старые.

Но составление хотя бы приблизительного списка действий перед началом ра-

боты совершенно необходимо. Это позволит вам мысленно обозреть общую структуру вашей будущей программы и значительно поможет вам в дальней-

шей работе.

Итак, используя составленный список действий, в редакторе списка дейст-

вий создайте следующие действия, рис. 6.103.

746

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

Рис.6.103. Список действий

Перенесите на форму компонент TMainMenu. Создайте пункт меню

"Файл". Присвойте ему имя Menu_File. Создайте подпункт. Присвойте имя

Menu_Open. Другие свойства пока не заполняйте! Рис. 6.104.

Рис. 6.104. Создание меню приложения

Теперь в свойстве Action раскройте список и выберите действие FileOpen1. Свойство Caption Menu_Open вместо New Item2 автоматически изменилось на "Открыть…", рис. 6.105, 6.106.

747

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

Рис. 6.105. Создание меню приложения

Рис. 6.106. Свойства

Кроме того, автоматически заполнились свойства Hint, ImageIndex и ShortCut! Нам теперь осталось написать обработчик для действия

FileOpen1. Поскольку это стандартное действие – открытие файла, нужно написать обработчик события OnAccept.

procedure TForm1.FileOpen1Accept(Sender: TObject);

// процедура выбора, открытия и чтения файла данных var

f: TextFile; i: integer; Fname: string;

begin

Fname:= FileOpen1.Dialog.FileName;

Fname:= UTF8ToSys(Fname); //преобразование в системную кодировку

AssignFile(f, Fname);

Reset(f);

748

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

// отключение контроля ошибок ввода/вывода

{$I-}

// чтение количества экспериментальных точек

Readln(f, n);

if IOResult <> 0 then

begin

ShowMessage('Ошибка при чтении из файла!');

exit;

end;

// распределение памяти под массивы

SetLength(x, n);

SetLength(y, n);

for i:= 0 to n - 1 do begin

read(f, x[i]);

if IOResult <> 0 then begin

ShowMessage('Ошибка при чтении из файла!'); exit;

end;

end;

for i:= 0 to n - 1 do begin

read(f, y[i]);

if IOResult <> 0 then begin

ShowMessage('Ошибка при чтении из файла!'); exit;

end;

749

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

end;

{$I+}

CloseFile(f);

A_Calculate.Enabled:= true;

end;

Обработчик практически совпадает с обработчиком Menu_OpenClick

предыдущей программы. Но есть существенные различия. Во-первых, как мы уже отмечали, мы компонент TOpenDialog в явном виде вообще не использу-

ем. А имя файла мы получаем с помощью свойства FileName класса TFileOpen. Во-вторых, чтобы сделать доступными пункт меню "Вычислить" и

соответствующую кнопку на панели инструментов в предыдущей программе в обработчике Menu_OpenClick мы вынуждены были записывать два операто-

ра

MCalculate.Enabled:= true;

TB_Calculate.Enabled:= true;

А здесь достаточно написать один

A_Calculate.Enabled:= true;

Сформируйте теперь остальные пункты меню и назначьте им соответст-

вующие действия из TActionList. Напишите требуемые обработчики.

Теперь поместите на форму TToolBar. Добавьте необходимые кнопки и точно так же для каждой кнопки в свойстве Action установите соответствую-

щие действия.

Окончательный код программы будет следующим:

750

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2N4264RE
3773