Code: Select all
const ConfigMaxItem = (65520 div SizeOf(TFarListItem));
ConfigDialogItems: Array [0..ConfigMaxItem] of TFarDialogItem;
function CreateDialogInit(DPluginNumber: Integer; DX1, DY1, DX2, DY2: Integer;
const DHelpTopic: PWideChar; DItem: PFarDialogItemArray;
DItemsNumber: Integer; DlgProc: TFarApiWindowProc): Integer;
begin
Result := -1;
Result := FARAPI.DialogInit(DPluginNumber, DX1, DY1, DX2, DY2, DHelpTopic, DItem,DItemsNumber, 0, 0, @DlgProc, 0);
end;
procedure CreateDialogItem(DItem: PFarDialogItemArray; DItemType: Integer; DItemIndex: Integer;
DX1, DY1, DX2, DY2: Integer; DFocus: Integer;
DParam_ListItems: PFarList; DParam_Selected: Integer; DFlags: DWORD; DData: PWideChar);
begin
with DItem[DItemIndex] do
begin
ItemType := DItemType;
X1 := DX1;
Y1 := DY1;
X2 := DX2;
Y2 := DY2;
Focus := DFocus;
Param.ListItems := DParam_ListItems;
If ItemType = DI_CHECKBOX then Param.Selected := DParam_Selected;
Flags := DFlags;
PtrData := DData;
end;
end;
CreateDialogItem(@ConfigDialogItems, DI_BUTTON, 8, 18, 7, 0, 7, 1, nil, 0, 0, 'Ok');
CreateDialogItem(@ConfigDialogItems, DI_BUTTON, 9, 25, 7, 0, 7, 0, nil, 0, 0, 'Отмена');
ConfigDialogHandle := CreateDialogInit(FARAPI.ModuleNumber, -1, -1, 51, 9, nil, @ConfigDialogItems, 10, @ConfigDlgProc);
FARAPI.DialogRun(ConfigDialogHandle);
FARAPI.DialogFree(ConfigDialogHandle);