Если таблица не была все
wTableName := FpTInfoCategory.sPrefix + TbNameEdit.Text;
// Создание буферного экземпляра структуры таблицы
// с добавлением ссылки в список ссылочных типов
FDbInterface.Init_NpTTableInfo(wTableName, True);
if not Execute then
Exit;
if TbDefFr = nil then
TbDefFr := TTbDefFr.Create(nil);
try
TbDefFr.DbInterface := FDbInterface;
TbDefFr.ppTTableInfo := FDbInterface.N_pTTableInfo;
TbDefFr.ppTInfoCategory := FpTInfoCategory;
TbDefFr.ShowModal;
// Если таблица не была все же создана..
if not TbDefFr.Execute then
// ..освобождение ресурсов из-под FN_pTTableInfo
begin
// Единичный акт создания таблицы сопровождается обновлением
// списков типов данных системы
FDbInterface.Kill_NpTTableInfo(True);
end;
finally
TbDefFr.Free;
TbDefFr := nil;
end;
Close;
end;
procedure TTbDlgFr.Set_FDbInterface(const Value: TDbInterface);
begin
FDbInterface := Value;
end;
procedure TTbDlgFr.FormCreate(Sender: TObject);
Var
k : Integer;
begin
FpTInfoCategory := nil;
for k := 0 to ComponentCount - 1 do
if TComponent(Components[k]) is TEdit then
TEdit(Components[k]).Clear;
end;
procedure TTbDlgFr.Set_FpTInfoCategory(const Value: pTInfoCategory);
begin
FpTInfoCategory := Value;
end;
Function TTbDlgFr.Init : Bool;
begin
Result := False;
if FDbInterface = nil then
Exit;
// Список категорий информации
TbDbTypeComboBox.Items.Clear;
TbDbTypeComboBox.Items.Assign(FDbInterface.FbDbTypeList);
TbDbTypeComboBox.Sorted := True;
// Если на входе категорию информации на задали - выбрать первую
if FpTInfoCategory = nil then
begin
TbDbTypeComboBox.ItemIndex := 0;
FpTInfoCategory := pTInfoCategory(TbDbTypeComboBox.Items.Objects[0]);
end
else
TbDbTypeComboBox.ItemIndex :=
TbDbTypeComboBox.Items.IndexOfObject(TObject(FpTInfoCategory));
Result := True;
end;
procedure TTbDlgFr.FormActivate(Sender: TObject);
Var
wFullTbName, wS,
wCategPrefix, s : String;
kICateg,
kPrefixL, k : Integer;
wpTInfoCategory : pTInfoCategory;
begin
Init;
kPrefixL := Length(FpTInfoCategory.sPrefix);
Содержание Назад Вперед