procedure GetForms(Forms: TStrings)
Заполняет список формами, отсортированными по алфавиту. Элементы списка Strings содержат имена форм. Причем в именах подчиненных форм стоит 4 ведущих пробела. Элементы списка Objects содержат сами объекты форм TdxForm.
Программа использует эти формы в служебных целях. Формы неактивны, поэтому вызывать методы и обращаться к некоторым свойствам (например, EditWindow) нельзя - это приведет к ошибке.
Когда в базу данных входит обычный пользователь (не разработчик), объекты списка будут содержать «урезанные» формы. В формах будут только компоненты-поля (текст, число, дата и т. п.), простые формы вовсе будут без единого компонента.
Параметры:
Пример:
// Вывод имен всех форм и компонентов. var Forms: TStringList; i, j: Integer; Fm: TdxForm; begin Forms := TStringList.Create; GetForms(Forms); for i := 0 to SL.Count - 1 do begin Debug(SL[i]); Fm := TdxForm(SL.Objects[i]); for j := 0 to Fm.ComponentCount - 1 do Debug(Fm.Components[j].Name); end; Forms.Free; end;
//Функция находит форму, проверяет её параметра и возвращает //результат проверки (истина/ложь) function MyFormCheck (FormName: string): boolean; var Forms: TStringList; i, j: Integer; Fm: TdxForm; begin Result := false; //заранее инициализируем переменную Result Forms := TStringList.Create; //создаём список всех форм GetForms(Forms);//заполняем список for i := 0 to Forms.Count - 1 do //листаем список в поисках чего-то begin //если в списке есть искомая форма if FormName = Forms[i] then begin //мы можем её инициализировать, чтобы что- там проверить Fm := TdxForm(Forms.Objects[i]); for j := 0 to Fm.ComponentCount - 1 do begin //тут разыскиваете нужный вам компонент и проверяете его параметры end; //уничтожаете созданную форму Fm.Free; //возвращает нужный результат Result := true; //прерываете цикл для выхода break; end; end; end;