Free Pascal | Free Vision – створення діалогового вікна

В цій статті я розповім про те, як за допомогою мови програмування Паскаль та Free Vision – бібліотеки для розробки об'єктно орієнтованих програм із дружнім інтерфейсом користувача, створювати діалогові вікна. Ми розглянемо приклад, в якому діалогове вікно відкривається зразу після запуску програми.

Free Vision – діалогове вікно

Текст програми складається з кількох частин.

Вказуємо стандартний набір модулів Free Vision та створюємо тип даних для використання з полем редагування та селектором діалогового вікна.


Оголошуємо тип TInstApp - стандартний додаток з використанням Free Vision. 

Оголошуємо  потрібні нам змінні та процедури. Формуємо діалогове вікно.

Формуємо діалогове вікно.

Формуємо статусний рядок.

Оголошуємо змінні програми.

Присвоюємо значення змінної, що використовується для заповнення даними діалогового вікна. 

Використовуємо процедуру setdata для заповнення даними полів діалогового вікна. Вставляємо діалогове вікно на робочий стіл програми та активуємо роботу діалогового вікна. 

Якщо натиснута кнопка з ідентифікатором cmOk, використовуємо процедуру getdata для зчитування інформації з полів діалогового вікна. Видаляємо діалогове вікно з робочого столу програми та закриваємо програму.


Запускаємо програму. Після завершення роботи програми ми повернулися до вікна редактора тексту програми.

Повний текст програми.

//
program tv1program;
{ $UNDEF OS2PM}
{$IFDEF OS2PM}
{&PMTYPE PM} { FULL GUI MODE }
{$ENDIF OS2PM}
{$I platform.inc}

USES
{$IFDEF OS2PM}
{$IFDEF OS_OS2} Os2Def, os2PmApi, {$ENDIF}
{$ENDIF OS2PM}

Objects, Drivers, Views, Editors, Menus, Dialogs, App, { Standard GFV units }

FVConsts, AsciiTab,
Gadgets, TimedDlg, MsgBox, StdDlg;

type

dd=record
ps:string[60];
dr:Word;
end;

TInstApp = object(TApplication)

D:PDialog;
procedure InitStatusLine;virtual;
procedure InitDialog;
end;

Procedure TInstApp.InitDialog;

var
R:TRect;
Begin
R.Assign(15,5,65,17);
D:=New(PDialog,Init(R,'Назва програми, Версія 1.0'));
With D^ do
Begin
R.Assign(1,1,49,2);
Insert(New(PStaticText,INit(R,' Вкажіть назву дискуі папку , в які буде')));
R.Assign(1,2,49,3);
Insert(New(PStaticText,INit(R,'встанолена програма :')));
R.Assign(5,3,45,4);
Insert(New(PINputLine,Init(R,60)));
R.Assign(14,5,25,6);
Insert(New(PStaticText,INit(R,' З дискети:')));
R.Assign(26,5,33,7);
Insert(New(PRadioButtons,Init(R,
NewsItem('A:',
NewsItem('B:',
nil)))));

R.Assign(4,8,23,10);

Insert(New(PButton,Init(R,'~В~становити',cmOk,bfNormal)));
R.Assign(27,8,47,10);
Insert(New(PButton,Init(R,'~П~овернення',cmCancel,bfNormal)));

selectNext(False);

end;
end;

procedure TinstApp.InitStatusLine;

var
R: TRect;
begin
GetExtent(R);
R.A.Y := R.B.Y - 1;
R.A.X := -1;
New(StatusLine,
Init(R,
NewStatusDef(0, $EFFF,
StdStatusKeys(nil),nil)));
end;

var

R:TRect;
w:Word;
Instapp:tinstapp;
Dialdat:dd;

Begin

With DialDat do
Begin
ps:='';
dr:=0;
end;

InstApp.Init;

InstApp.InitDialog;
InstApp.D^.Setdata(DialDat);
DeskTop^.Insert(InstApp.D);
w:=DeskTop^.execView(InstApp.D);

if w=cmOk Then

Begin
InstApp.D^.Getdata(dialdat);
end;

DeskTop^.Delete(InstApp.D);

InstApp.Done;

end.

//

Коментарі

Популярні дописи з цього блогу

Антивірусний захист ПК за допомогою безкоштовних антивірусів

Як додати або видалити мову та розкладку клавіатури у Windows 10?

Як відновити роботу Microsoft Store у Windows 10?