Нашел ту строчку из-за которой возникает такое странное поведение формы: CloseAllWindows(GetClientName);
Эта инструкция идет последней в моем скрипте по нажатию на кнопку Добавить.
Получается так: форма закрывается автоматически если у кнопки указано действие "Отправить форму", и если в скрипте для отправки формы добавить закрытие всех окон, то это окно закроется (при первой отправке формы) и уже больше не откроется.
Вот скрипт (тип: заполнена форма) на кнопку Добавить целиком:
var
aProgramName, aQuery, aWoodType: string;
begin
if FormData.Window <> wndAddProgram then
Exit;
aProgramName := FormData[fldProgramName_wndAddProgram].AsStr;
aWoodType := FormData[cmbWoodType_wndAddProgram].AsStr; // из комбо-бокса в FormData забирается свойство ItemIndex
if aProgramName.Trim = '' then
begin
FormData.SetError('Введите название программы сушки.');
Exit;
end;
aQuery := ''+
' INSERT INTO programs (name, wood_type_id)'+
' VALUES ('+
QuotedStr(aProgramName) +','+
' (SELECT id FROM wood_types WHERE enum_value = '+ QuotedStr(aWoodType) +')'+
' );';
RunSQL(aQuery, nil, CREATE_PROGRAM);
//HideStagesParamsTables;
// если есть эта инструкция, то после закрытия и отправки формы, эта форма уже больше не откроется!
CloseAllWindows(GetClientName);
end.