Форум: "Основная";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
Внизметод show для форм Найти похожие ветки
← →
andre_nik (2002-10-29 16:29) [0]подскаждите, пожалуйста, каким образом можно реализовать сей факт:
есть база данных где описаны имена форм и описалово к ним,и в зависимости от того какая запись выбрана-открывается соотвествующая форма. Формы генерятся при запуске программы
Если можно с исходными примерами
Заранее благодарен
← →
TTCustomDelphiMaster (2002-10-29 16:52) [1]
> и описалово к ним
Всмысле информация о том какие компоненты раположены на форме или просто написано зачем эта форма нужна?
← →
Bis (2002-10-29 16:58) [2]Если правильно понимаю, речь идет о сохранении шаблонов, по которым можно построить визуальные формы для ввода информации
← →
Andre_nik (2002-10-30 06:00) [3]пример
база
поле1......поле2
form11 форма картотеки
form_22 форма платежного поручения
ggg_yyy форма еще чего нить
по поле2 делается скрол бар.и в зависимости от того какой итем выбрали, должна открыться соответствующая форма
к примеру выбрали поле "форма картотеки" должна показаться форма "form1". Оператор Case не подходит - слишком уж много записей в базе
← →
Mike_Goblin (2002-10-30 10:56) [4]Создавать класс формы через CreateNew, а не Create, использовать для загрузки и хранения формы мехнизм загрузки/сохранения в dfm
← →
---- (2002-10-30 11:43) [5]Можешь сохранять эти формы в потоки и хранить их (потоки) в блоб полях.
Приблизительно это будет выглядеть так:
сохраняем форму в файл
VAR
fs: TFileStream;
BEGIN
fs:=TFileStream.Create(Filename,какие-то параметры..смотри хелп);
fs.WriteComponent(Form1);
fs.Free;
END;
Потом ты этот файл с формой записываешь в BLOB-поле и при необходимости считываешь. Форма сохраняется со всей своей функциональностью.
Считываешь форму так:
var
my_form: TForm;
begin
//считываем файл из базы в поток
TBlobField(table1.FieldByName("pole3")).SaveToStream(fs);
//считываем форму из потока
TComponent(my_form):=fs.ReadComponent(nil);
//дальше можно работать с твоей формой....
end;
← →
---- (2002-10-30 11:55) [6]А есть еще один способ...наверное он тебе больше понравится, т.к. не нужно хранить ничего в БД кроме имен классов...
{ /* Создание формы по имени класса*/}
var
f: TForm;
AClassName: String;
begin
AClassName:="TForm1";
RegisterClass(TForm1);
f:= TForm( TControlClass(GetClass(AClassName)).Create(nil) );
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c